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