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

看板Old-Games (懷舊遊戲 - 經典遊戲 - 老遊戲)作者時間8年前 (2016/02/02 12:36), 7年前編輯推噓5(5014)
留言19則, 3人參與, 最新討論串2/2 (看更多)

02/01 22:25,
請問改城市的觀光人口數值是不是還會跳回原數值?
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 六. 停機坪 每個城市的停機坪有兩種資料,第一種有2 bytes,第一個byte紀錄這個城市 現在的總停機坪數,第二個byte紀錄這個城市已經被談判走的停機坪數。 倫敦的這兩個bytes在[+12104],之後巴黎的在[+12106],以此類推.. 城市的第二種停機坪資料有8 bytes,第一個byte紀錄玩家1擁有的停機坪總數, 第二個byte紀錄玩家1使用中的停機坪總數,第三四個bytes則是玩家2,... 倫敦的這八bytes在[+11008],之後巴黎的在[+11016],以此類推。 七. 有待研究 我相信每個玩家對每個城市的友好度應該有筆資料,對廠商說不定也是。 另外每個關係企業的所有者應該也是一筆資料,就有待研究啦~XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.16.204.244 ※ 文章網址: https://www.ptt.cc/bbs/Old-Games/M.1454387774.A.9E6.html ※ 編輯: darkseer (192.16.204.244), 02/02/2016 12:42:31

02/02 21:34, , 1F
感謝,我是用遊戲修改大師的鎖定,每次都要改
02/02 21:34, 1F

02/02 21:36, , 2F
我來試試修改劇本的數值
02/02 21:36, 2F

02/02 23:11, , 3F
鎖定聽起來蠻好的,我其實只是自己怕有看不見的效果XD
02/02 23:11, 3F

02/02 23:12, , 4F
鎖定可以超過100嗎XDDD 那樣的話聽起來很有吸引力 :p
02/02 23:12, 4F

02/02 23:13, , 5F
改劇本的數值因為也是改在暫存,也是每開程式就要改一次
02/02 23:13, 5F

02/02 23:14, , 6F
只是有會讓實際值跟著關係企業/事件連動的好處..
02/02 23:14, 6F
※ 編輯: darkseer (192.16.204.244), 02/02/2016 23:17:26

02/03 19:56, , 7F
鎖定應該可以鎖255,一個位元最高值
02/03 19:56, 7F

02/03 19:57, , 8F
但我有點忘記每次開遊戲位址會不會跑掉
02/03 19:57, 8F

02/03 19:57, , 9F
覺得麻煩,才想要有一勞永逸的辦法
02/03 19:57, 9F

02/03 21:24, , 10F
這兩篇都要推 d^^b
02/03 21:24, 10F

02/04 04:57, , 11F
那鎖定應該挺好的,我說的也是要每次遊戲開就改一次,
02/04 04:57, 11F

02/04 04:58, , 12F
我的實驗結果(dosbox 0.71, 不知道有無關係)是位址的
02/04 04:58, 12F

02/04 04:59, , 13F
相對位置是恆定的,所以我都用DC06飛機資料作為標竿XD
02/04 04:59, 13F

02/04 04:59, , 14F
但是位址的絕對位置還是每次都會跑掉@@
02/04 04:59, 14F

02/04 05:00, , 15F
晚一些再補上城市現狀值的記憶體位置 :p
02/04 05:00, 15F

02/04 05:18, , 16F
感謝Y大的啟發 :D
02/04 05:18, 16F
※ 編輯: darkseer (192.16.204.244), 02/04/2016 09:31:57

02/05 22:18, , 17F
改劇本的城市數值也要每次改嗎?
02/05 22:18, 17F

02/06 01:10, , 18F
是的 :(
02/06 01:10, 18F

02/06 01:18, , 19F
飛機&城市資料都會每次重開遊戲重置(讀檔倒是維持)
02/06 01:18, 19F
※ 編輯: darkseer (192.16.204.74), 06/17/2016 09:35:36
文章代碼(AID): #1Mi38-dc (Old-Games)
討論串 (同標題文章)
文章代碼(AID): #1Mi38-dc (Old-Games)