作者darkseer ()
看板Old-Games
标题Re: [心得] 航空霸业2心得笔记
时间Tue Feb 2 12:36:11 2016
1F:推 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
六. 停机坪
每个城市的停机坪有两种资料,第一种有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://webptt.com/cn.aspx?n=bbs/Old-Games/M.1454387774.A.9E6.html
※ 编辑: darkseer (192.16.204.244), 02/02/2016 12:42:31
2F:推 MOONTWOFISH: 感谢,我是用游戏修改大师的锁定,每次都要改 02/02 21:34
3F:推 MOONTWOFISH: 我来试试修改剧本的数值 02/02 21:36
4F:→ darkseer: 锁定听起来蛮好的,我其实只是自己怕有看不见的效果XD 02/02 23:11
5F:→ darkseer: 锁定可以超过100吗XDDD 那样的话听起来很有吸引力 :p 02/02 23:12
6F:→ darkseer: 改剧本的数值因为也是改在暂存,也是每开程式就要改一次 02/02 23:13
7F:→ darkseer: 只是有会让实际值跟着关系企业/事件连动的好处.. 02/02 23:14
※ 编辑: darkseer (192.16.204.244), 02/02/2016 23:17:26
8F:推 MOONTWOFISH: 锁定应该可以锁255,一个位元最高值 02/03 19:56
9F:→ MOONTWOFISH: 但我有点忘记每次开游戏位址会不会跑掉 02/03 19:57
10F:→ MOONTWOFISH: 觉得麻烦,才想要有一劳永逸的办法 02/03 19:57
11F:推 yamaplover: 这两篇都要推 d^^b 02/03 21:24
12F:→ darkseer: 那锁定应该挺好的,我说的也是要每次游戏开就改一次, 02/04 04:57
13F:→ darkseer: 我的实验结果(dosbox 0.71, 不知道有无关系)是位址的 02/04 04:58
14F:→ darkseer: 相对位置是恒定的,所以我都用DC06飞机资料作为标竿XD 02/04 04:59
15F:→ darkseer: 但是位址的绝对位置还是每次都会跑掉@@ 02/04 04:59
16F:→ darkseer: 晚一些再补上城市现状值的记忆体位置 :p 02/04 05:00
17F:→ darkseer: 感谢Y大的启发 :D 02/04 05:18
※ 编辑: darkseer (192.16.204.244), 02/04/2016 09:31:57
18F:推 MOONTWOFISH: 改剧本的城市数值也要每次改吗? 02/05 22:18
19F:→ darkseer: 是的 :( 02/06 01:10
20F:→ darkseer: 飞机&城市资料都会每次重开游戏重置(读档倒是维持) 02/06 01:18
※ 编辑: darkseer (192.16.204.74), 06/17/2016 09:35:36