Re: [心得] 航空霸業2心得筆記

作者: darkseer   2016-02-02 12:36:11
推 MOONTWOFISH: 請問改城市的觀光人口數值是不是還會跳回原數值? 02/01 22:25
感謝MOONTWOFISH網友的問題,讓我好好研究了一番XD
以下就修改來完整寫一篇文章,首先四年多前yamaplover的文章的內容我原則上不重複,
倒是這裡講的許多內容都是實作從他的文章學來的idea。
這裡講的都是修改即時記憶體的方法,也可以修改存檔SAVE1.SAV等等,
不過這個我就沒有研究了。
現在我都玩所有城市最快談判停機坪,然後電腦起手一百億.. :p
一. 定位
請搜尋array of bytes 0 8 0 19 78 5 2F (十六進位),
(yamaplover推薦cheat engine,我自己也是用這個)
這是第一台飛機DC6的前七碼。我習慣以此定位。
以下以[+11]表示第一個0往後11個bytes的位置,以此類推。
定位的原理是因為我試出來的任何兩個筆資料的記憶體相對位置都是一樣的,
(希望這點大家都一樣..)
所以就可以用一筆每次遊戲都固定的值來查其他的值。
二. 飛機
一台飛機11 bytes,因此第二台飛機的資料在[+11]...以此類推,
第五十一台飛機在[+550],總共有53台飛機。
每個byte表示的資料請參閱yamaplover以及我的文章。
(但是我們都不知道其中一個byte是什麼...到底是什麼呢O_O)
飛機的順序就是我上一篇飛機表裡打出來的順序,
事實上我的飛機表資料就是用修改器提取出來的 :p
三. 城市
每一個城市有至少三組數值:第一劇本的起始值,第四劇本的起始值,和當下的數值。
每個季結束時電腦會重新利用前兩個值來計算第三個。
第一個城市倫敦的劇本1起始值在[+1344],有4個bytes,分別是01 38 2A 2E,
第一位表示倫敦屬於編號1的國家英國,第二位人口560,第三位觀光42,然後商業46。
下一個城市(巴黎)的劇本1資料則在[+1348],...,總共89個城市,依照所在州排列。
於是這麼一說第89個城市就在[+1696],下一位[+1700]是什麼勒?
答案是倫敦的劇本4起始值,然後[+1704]是巴黎的劇本4起始值,以此類推...
(劇本4的國家起始值跟劇本1一樣,但實際上不同,肯定還有沒找到的..)
劇本2和劇本3的起始值是用劇本1和劇本4平均來的,其他遊戲中會用到的值,
目前看到的也都是用這兩個算出來,簡單說就是改這兩個值就對啦XDDD
這樣修改的話,城市的觀光/商業計算後的數值超過100會被拉回100。
另外倫敦的現在值在[+10618],類似前面每後一個城市就是往後4 bytes,
要修改這一項的話需要像MOONTWOFISH板友解說的,用修改器鎖定數值才有效果,
否則每一季結尾計算旅客數的時候會重置,用這一項修改可以達到255。
在劇本1&5可以用修改國家來達成讓所有城市談判都最快或最慢,
要這麼做的話,要開遊戲開始之前就先改好所有城市的國家,
儲存之後關掉dosbox再重開,會發現每個城市的國家變正常了,
(就跟其他城市資料一樣,堅持要改就得每開遊戲就重改一次..)
不過跟城市的談判關係還是維持被修改後的樣子,真是好消息呀XD
事實上這個遊戲好像有個bug: 每次有新國家出現(例如獨立),
跟那個新國家的關係就會是最好,但是儲存重開就會變正常。
這個bug大概跟以上的修改原理有些關係...
四. 金錢
玩家1的錢在[+9927],從溢位情況來看這是筆4 bytes的signed int。
如同預期的,玩家2的錢在[+9931],然後[+9935], [+9939]。
因為9927不是4的倍數,直接搜尋錢的話有些修改器可能會找不到@@
解決這個問題的一種方法是改搜尋(錢/256)...
五. 職員
玩家1的職員現狀在[+11846],這筆資料有32個bytes,每個職員8 bytes。
可以想見的,玩家2在[+11878]...以此類推
譬如說我現在的32個bytes分別為
25 01 05 00 00 00 00 00 | 24 05 00 01 00 00 00 00
25 05 01 01 00 00 00 00 | 00 01 0E 00 00 00 00 00
以下是相當不完整的解讀:
.第一個25(十六進位,表示41)表示我的職員1現在在第42座城市幹活,第2個01表示
他正在談判停機坪,第三個05表示他要了五個。
.第二個職員的第二位05表示他正在買關係企業,第三位00表示他在買第一個關係企業,
第四位01表示他還有一季就會回來(這一位在停機坪談判是別的原理,不明)
這樣子有什麼用呢..理論上我們可以用來讓停機坪趕快要到,或是讓宣傳提早結束。
不過根據我的實驗,宣傳的人一回來效果也就結束了,
沒辦法釋放出宣傳的人力..
兩個用途:(i) 用修改的辦法買走敵方的關係企業,確實那個關係企業會變你的,
不過這樣可能會產生新的bug,我沒有好好研究,請小心使用..
(ii) 如果你把一個職員改成00 05 00 FF 00 00 00 00,
那麼他就會在倫敦買一個要買255季的關係企業..
也就是說,你可以用來把電腦的職員全部封印起來XDDDDD
譬如用這項功能達成兩人遊戲的效果...一開始選玩家把所有停機坪賣掉,
然後修改器做職員封印再交給電腦託管,就少一個玩家啦XD
六. 有待研究
有一些yamaplover大已經提到的,例如停機坪數量。除此之外,
我相信每個玩家對每個城市的友好度應該有筆資料,對廠商說不定也是。
另外每個關係企業的所有者應該也是一筆資料,就有待研究啦~XD
作者: MOONTWOFISH (溺水雙魚)   2015-02-01 22:25:00
請問改城市的觀光人口數值是不是還會跳回原數值?感謝,我是用遊戲修改大師的鎖定,每次都要改我來試試修改劇本的數值
作者: darkseer   2016-02-02 23:11:00
鎖定聽起來蠻好的,我其實只是自己怕有看不見的效果XD鎖定可以超過100嗎XDDD 那樣的話聽起來很有吸引力 :p改劇本的數值因為也是改在暫存,也是每開程式就要改一次只是有會讓實際值跟著關係企業/事件連動的好處..
作者: MOONTWOFISH (溺水雙魚)   2016-02-03 19:56:00
鎖定應該可以鎖255,一個位元最高值但我有點忘記每次開遊戲位址會不會跑掉覺得麻煩,才想要有一勞永逸的辦法
作者: yamaplover (YP趕快剪頭髮)   2016-02-03 21:24:00
這兩篇都要推 d^^b
作者: darkseer   2016-02-04 04:57:00
那鎖定應該挺好的,我說的也是要每次遊戲開就改一次,我的實驗結果(dosbox 0.71, 不知道有無關係)是位址的相對位置是恆定的,所以我都用DC06飛機資料作為標竿XD但是位址的絕對位置還是每次都會跑掉@@晚一些再補上城市現狀值的記憶體位置 :p感謝Y大的啟發 :D
作者: MOONTWOFISH (溺水雙魚)   2016-02-05 22:18:00
改劇本的城市數值也要每次改嗎?
作者: darkseer   2016-02-06 01:10:00
是的 :(飛機&城市資料都會每次重開遊戲重置(讀檔倒是維持)

Links booklink

Contact Us: admin [ a t ] ucptt.com