红色警戒2修改器原理百科(十)
(二十一)轉換陣營——很炫酷卻很簡單
??? 這個功能,貌似當初很火很轟動,感覺很強大——聯網對戰中控制對手單位,賣掉對手建筑!右邊的建造選項也是對手的,你可以替對手建造單位。可是這個原理很簡單,游戲中一個很重要的指針CurrentPlayer(即game.exe+635DB4這個基址)指向本地玩家的數據,你所有的操作依據最終都來源于此。如果你把這個指針指向某對手的數據,游戲就認為你原本就是該玩家,從而正常把操作同步給其他玩家,加之游戲并沒有對來源進行檢查的設計缺陷,導致這種現象的發生。
??? 但是只在聯網對戰中有效。單機時也有一定作用,能看到電腦的科技是全開的……當然除了超級武器是受游戲開始前選項控制的。
(二十二)遭遇戰參數修改
??? 在遭遇戰界面,使用最基本的CE查找數值就可以了。不過對于搜索初始金錢的時候,要減去5000,因為這個值是從5000開始的。不要問我為什么,這是個msctls_trackbar32控件,所以基址也找不到。或許可以嘗試發送MESSAGE消息修改,沒測試。這功能意義不大,因為你和對手仍在一條起跑線上。
(二十三)心靈探測
??? =========
??? 占位符
??? 我一點也不想嘗試!!
? ? 能實現不用造心靈探測器,即可不限范圍探測——聯網對戰時判斷對手行動,對單機的我沒吸引力。
??? 歡迎分享。
??? =========
(九十八)最后的補充
??? 筆者一直認為游戲中對單位的分類有點亂。
??? 游戲中有4個建造選項卡,分別是建筑選項卡、武器選項卡、步兵選項卡和車輛選項卡。
??? 單位種類細分為:建筑(對應建筑選項卡);武器(對應武器選項卡);步兵(對應步兵選項卡);飛機、戰車和戰船(這三個對應車輛選項卡)。
??? 建造選項類別:編號0x03(對應飛機,歸屬車輛選項卡。其實送傘兵的飛機、V3發射的導彈和航母的飛機本質也是一個建造選項)、編號0x07(對應建筑和武器,分別歸屬建筑和武器選項卡。這個可以理解都是建筑物)、編號0x10(對應步兵,歸屬步兵選項卡)、編號0x28(對應戰車和戰船,歸屬車輛選項卡。為什么飛機在這里被拋棄了?)。編號0x1F(對應超級武器和傘兵,歸屬武器選項卡,這個尚未找到對應的ConstructionDescriptor對象數組,可能不是用此類描述的)。
??? 有建造能力的建筑:基地(可加速建造建筑和武器)、兵營(加速步兵)、戰車工廠(加速戰車)、空指部(加速飛機)、船塢(加速戰船)。
??? 我發現單位的第一個虛函數表的+2C偏移的函數,很可能是返回對象類型的一個虛函數:戰車和戰船=0x01、飛機=0x02、建筑=0x06、步兵=0x0F。在一個被很多地方調用,不知什么作用的地方,確定就只有這4個值:
??? 凡是總有但是,我仍然不知道如何確定一個單位具體編號,是兵營,發電廠還是間諜衛星。。。
(九十九)結束,卻不知——何處是起點,何時能出發
??? 前后慢慢分析加寫博文大概有近兩周的時間,完結了自己想能自己修改明白紅色警戒這款游戲的愿望。
??? 然而本系列只能算作個冰山一角。沒有比較完善的類圖,也不了解這個游戲的框架(只知道一個主循環),解析封包是不是能解決作弊聯網不同步……當足夠了解的時候,就可以用內存修改的方法實現MOD而不用改配置文件,動態的增刪地圖的觸發器,甚至修改地圖,徹底玩壞。在沒有源碼的情況下,或許上述想法都太奢侈,沒有價值去分析一個不會再更新的游戲。或許有機會我會簡單分析一下游戲觸發器的流程,前幾天剛找到一個大概位置。
??? 如果有人能在筆者基礎上,做出一個通殺各版本的史上最強大的內存修改器,一定要給我發一份可好?
相關資源:
主要是兩個CT表和文章中的代碼,點此下載。
?
??? 本百科,或許是目前中文版的最全RA2修改器百科,到此就結束了,感謝你的耐心及對筆者拙劣寫作的忍耐。
The End.
轉載請注明來源,http://www.cnblogs.com/viewll/p/4779465.html
轉載于:https://www.cnblogs.com/viewll/p/4779465.html
總結
以上是生活随笔為你收集整理的红色警戒2修改器原理百科(十)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: eval解析
- 下一篇: 关于Socket建立长连接遇到的bug信