原帖由 优化伴侣 于 2012-7-21 14:00 发表
首先,感谢“zhubajiex”和“szfsg55”两位朋友,你们给我发的游戏存档,我已分析并找到了bug的原因。
明天,准备发布最新版的优化伴侣,希望得到更多的反馈。
这个版本也是测试版,最终版大致要到8月份,因 ...
exe里搜索:
3D 5E 01 00 00 89 44 24 04 0F 8C E8 00 00 00
这个5E 01就是350年
如果要跳过的话,可以把后边的
0F 8C E8 00 00 00
改成
E9 E9 00 00 00 90
就可以跳过350年了;
9代没有明确的年代,是以每10为单位来计算的;就是旬,然后加上一个基础年代82H,就是130年
四个字节可以表示11930464年了,所以玩到2012年不是问题。
那顺便把武将不死给出来吧:
exe里搜索:
6A 01 6A 0B 50 FF D3 83 C4 10 85 C0 74
把最后的74改成EB就可以不老死了
见http://www.xycq.net/forum/viewth ... %C8%FD%B9%FA%D6%BE9
这两个修改可以整合进去,其中武将不死做一个选项。
能力上限255修改
经过3个小时的调试及测试,终于搞定。下面提供方法, 用Ultraedit打开exe文件,搜索 6A 64 51 50 FF 15 0C F3 5F 00, 这串代码的含义是将100, 当前的属性值,及增加值作为参数 调用sancalc.dll中的limadd(int,int,int)(地址为0C F3 5F 00),由于参数是有符号的,所以将100改成255时就变成了-1, 最简单的办法就是将调用的函数地址改成 E4 F2 5F 00即调用limadd的无符号版本limadd(ulong, ulong, ulong),同时把64 改成 FF,这样属性值就可以超过127. 到达255。 如果想突破255 的限制,就要自己写代码了,直接inc即可,然后多余的部分补NOP, 理论上属性值可以到达2的31次方-1,即2147483647。但看代码好像只能显示3位。未仔细测试过。
将所有搜索到得6A 64 51 50 FF 15 0C F3 5F 00 改成 6A FF 51 50 FF 15 E4 F2 5F 00 。 如果开着优化伴侣,最好是把优化伴侣也改了。
修改了一下代码,现在武力:
搜索代码 56 8b f1 8B 4C 24 08 8B 46 4C 6A 64, 应该只有一个而且是在4C5A0H,然后开始修改为:(一直往后覆盖即可)
56 8b 74 e4 08 8B 41 4C 01 F0 BE FF 00 00 00 39 F0 76 06 89 F0 90 90 90 90 50 E8 F1 EB FF FF 8B 41 4C , 这里FF 00 00 00 就是武力的上限,但超过255 没有意义,因为存档时还会变成255以内。
测试比较费时,武力增加的机会太少了。
续上,在Ultraedit中,往后移两行,还是56 8b f1 8B 4C 24 08 8B 46 开头(地址为4C5D0H),从头开始修改为
56 8b 74 e4 08 8B 41 54 01 F0 BE FF 00 00 00 39 F0 76 06 89 F0 90 90 90 90 50 E8 D1 EB FF FF 8B 41 54
在往后移两行,开始的10个字节同上(地址为4C600H),然后修改为
56 8b 74 e4 08 8B 41 5C 01 F0 BE FF 00 00 00 39 F0 76 06 89 F0 90 90 90 90 50 E8 B1 D4 01 00 8B 41 5C
往下地址4C630H,修改为
56 8b 74 e4 08 8B 41 64 01 F0 BE FF 00 00 00 39 F0 76 06 89 F0 90 90 90 90 50 E8 D1 D4 FF FF 8B 41 64
这种修改方式和优化伴侣是相兼容的。
来源http://www.xycq.net/forum/viewth ... %C8%FD%B9%FA%D6%BE9
这个修改也可以做成供选择的选项。
当然,这些修改都是我从其他人那里获取的,呵呵。
然后就是兼容性问题,部分版本有这种问题,尤其是修改版的,建议将游戏的exe文件也放到优化伴侣里面,这样可以减少这种兼容性问题。
补丁[attach]120743[/attach]
另外,启动游戏的按钮也可以放上去,这样就不需要双击san9的主程序启动了。