轩辕春秋文化论坛 » 运筹帷幄 » 三国志9PK武将能力上限的修改办法


2012-3-4 16:37 chenjywz
三国志9PK武将能力上限的修改办法

修改办法,改成下图所示,从4C5A0到4C650行为止, 另外,搜索打虎能力上升的上限修改在1883B1,将64 改成FF即可。

[color=Silver][[i] 本帖最后由 chenjywz 于 2012-3-19 19:14 编辑 [/i]][/color]

2012-3-4 19:56 豪杰兴邦
修改san9的exe也可以实现的

2012-3-4 20:02 chenjywz
是的啊,最好的办法就是修改exe,可惜不知道怎么改,大致弄懂了优化伴侣对上限的设置方法,可惜最高只能是127

2012-3-4 22:03 chenjywz
终于决定用ollydbg调试,但不知道方法是否正确,希望论坛里的前辈们能不吝赐教。

2012-3-4 23:03 豪杰兴邦
可能exe里面上限处理就是127,超过就变成负数。
曾经看到过三国志8的修改,修改跳转,就可以突破127的限制,达到255.
当然这些都需要调试程序才可以找到。

2012-3-4 23:06 豪杰兴邦
[url]http://tieba.baidu.com/f?kz=827835163[/url]

这里是一个关于三国志8的修改,可以参考参考。

2012-3-5 09:24 chenjywz
谢谢,好好看看,有空会去调试一下。

2012-3-5 22:12 chenjywz
经过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位。未仔细测试过。

2012-3-5 22:14 chenjywz
将所有搜索到得6A 64 51 50 FF 15 0C F3 5F 00 改成 6A FF 51 50 FF 15 E4 F2 5F 00 。 如果开着优化伴侣,最好是把优化伴侣也改了。

[color=Silver][[i] 本帖最后由 chenjywz 于 2012-3-5 22:31 编辑 [/i]][/color]

2012-3-5 22:32 zzmax
回复 #9 chenjywz 的帖子

lz神人也!

不过把能力上限改到200+有些不习惯,如果只是想把能力上限改到120(不用优化),是不是把搜索到的6A 64 51 50 FF 15 0C F3 5F 00 改为6A 78 51 50 FF 15 E4 F2 5F就可以了?

2012-3-5 23:19 chenjywz
如果是上限不超过127的话,将64 改成78就可以了,后面的改不改无所谓

[color=Silver][[i] 本帖最后由 chenjywz 于 2012-3-5 23:28 编辑 [/i]][/color]

2012-3-5 23:53 豪杰兴邦
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-5 22:12 发表
经过3个小时的调试及测试,终于搞定。下面提供方法, 用Ultraedit打开exe文件,搜索 6A 64 51 50 FF 15 0C F3 5F 00, 这串代码的含义是将100, 当前的属性值,及增加值作为参数 调用sancalc.dll中的limadd(int, ... [/quote]
要注意其他部分的处理,数值过大会溢出的。
以我做三国志10的修改为例,用存档修改器,属性改成255没有问题,然后道具附加255,可以达到510,机动力100多,战斗力几千,但是将数值改成1万,那么处理会出问题,现象是机动力超强有几千,但是攻击力很弱,改成10万,机动力也有几万了,但是攻击力变成零了,估计已经是负值。
所以估计500以内没有问题,超过500就要考虑是否溢出了。

2012-3-6 00:26 豪杰兴邦
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-5 23:19 发表
如果是上限不超过127的话,将64 改成78就可以了,后面的改不改无所谓 [/quote]
加我的QQ:624201446
密商

2012-3-6 09:20 chenjywz
[quote]原帖由 [i]豪杰兴邦[/i] 于 2012-3-5 23:53 发表

要注意其他部分的处理,数值过大会溢出的。
以我做三国志10的修改为例,用存档修改器,属性改成255没有问题,然后道具附加255,可以达到510,机动力100多,战斗力几千,但是将数值改成1万,那么处理会出问题 ... [/quote]

是的,毕竟游戏的逻辑还是满复杂的,但相信255以内是没有问题的,用修改器改成不超过1000的数值好像也没问题,攻击力成倍提升,但不知道这个界限在哪,可以用修改器来测试

2012-3-6 12:08 bergkamp
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-6 09:20 发表


是的,毕竟游戏的逻辑还是满复杂的,但相信255以内是没有问题的,用修改器改成不超过1000的数值好像也没问题,攻击力成倍提升,但不知道这个界限在哪,可以用修改器来测试 [/quote]
我把原来琅琊论坛 海涛兄做的 EXE文件和你的修改整合了一下
现在有以下功能
1、培养小兵有选项让你选的时候一定成功,小兵年龄15野心义气15寿命7,性格和相性跟君主完全一样;
2、武将受伤的话有人搜索必定见华佗;
3、玩家势力内政效果必定加倍
4、玩家手下武将做事(流言掠夺等)成功的话,必定增加相应能力1,电脑的概率没有变;
5、玩家兵法发动几率增加(极大增加)而电脑减少;而且兵法发动的多,相应武力统帅 涨的也快
6、武将能力上限 255 配合以上 只要久经战阵 超级武将很快就会诞生

测试过LZ的修改 真的很有效果 但是测试下来还有问题!
能力超过255后归0的BUG 用我这个EXE(发动战法频繁 能力很容易涨)试下  你设置下断点 相信能查找到相应位置 控制能力如果超过255后 回归255

2012-3-6 12:09 bergkamp
[quote]原帖由 [i]bergkamp[/i] 于 2012-3-6 12:08 发表

我把原来琅琊论坛 海涛兄做的 EXE文件和你的修改整合了一下
现在有以下功能
1、培养小兵有选项让你选的时候一定成功,小兵年龄15野心义气15寿命7,性格和相性跟君主完全一样;
2、武将受伤的话有人搜索必定 ... [/quote]
忘了放地址了
[url]http://115.com/file/e7qsoxya[/url]

2012-3-6 13:14 chenjywz
超过255确实会回来。回去再调试一下。我也是好玩才尝试着修改。

2012-3-6 13:29 chenjywz
大致知道怎么修改了,回去试一下

2012-3-6 13:35 豪杰兴邦
[quote]原帖由 [i]bergkamp[/i] 于 2012-3-6 12:08 发表

我把原来琅琊论坛 海涛兄做的 EXE文件和你的修改整合了一下
现在有以下功能
1、培养小兵有选项让你选的时候一定成功,小兵年龄15野心义气15寿命7,性格和相性跟君主完全一样;
2、武将受伤的话有人搜索必定 ... [/quote]
呵呵,这个是正常的,单个字节最大255,超过要么溢出,要么从零开始。
比较类似的就是三国志6时间修改,时间用两个字节储存,默认上限2000年,超过2000年,时间复归到2000年,改成上限65535年之后,过了65535年,时间变成0了,后来改成10000年,就不会出现时间变成0年的问题了。
游戏程序有上限检测机制的,超过上限则还原成上限,但是单个字节255就是上限,不可能被超过,所以修改上限到255就导致上限检测机制失效。
同理,双字节是2^16-1,即65535,四字节是2^32-1,8字节是2^64-1。

这个问题,可以设置上限250,那么超过250之后会变成250,除非一次增加6点,才会归零。

2012-3-6 13:47 豪杰兴邦
像钱粮储备,游戏用4个字节储存,但是100万粮食就是2^30,那么上限即2^32相当于粮食400万,但是如果改成400万粮食,则容易因为粮食数量超过400万导致溢出,资金也是一样的处理,所以一般修改钱粮上限300万。

2012-3-6 13:52 豪杰兴邦
通常要给寄存器留一定的数据余量,防止数据溢出。
像数据赋值的上下限,不是内存数据一定不能超过限制,是在内存数据超过限制的时候将数据返回限制区间。

2012-3-6 14:12 bergkamp
[quote]原帖由 [i]豪杰兴邦[/i] 于 2012-3-6 13:52 发表
通常要给寄存器留一定的数据余量,防止数据溢出。
像数据赋值的上下限,不是内存数据一定不能超过限制,是在内存数据超过限制的时候将数据返回限制区间。 [/quote]
原来如此

2012-3-6 14:56 bergkamp
[quote]原帖由 [i]豪杰兴邦[/i] 于 2012-3-6 13:35 发表

呵呵,这个是正常的,单个字节最大255,超过要么溢出,要么从零开始。
比较类似的就是三国志6时间修改,时间用两个字节储存,默认上限2000年,超过2000年,时间复归到2000年,改成上限65535年之后,过了6553 ... [/quote]
我把 6A 64 51 50 FF 15 0C F3 5F 00 改成 6A C8 51 50 FF 15 E4 F2 5F 00 即200
结果 发现 发动几次战法后原来武力 是199和 200的 都 突破了200 达到了 201和 203
原来 校验的代码没有生效 也就是超过200后自动归200的没有生效

2012-3-6 15:34 chenjywz
不是这样的,我那种改法理论上那个FF没有用了,因为被解释成了-1,传进limadd(ulong, ulong,ulong)后就变成最大的数,所以会一直+1, 超过255后归0是因为其他的原因或者是显示的问题。

2012-3-6 16:18 豪杰兴邦
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-6 15:34 发表
不是这样的,我那种改法理论上那个FF没有用了,因为被解释成了-1,传进limadd(ulong, ulong,ulong)后就变成最大的数,所以会一直+1, 超过255后归0是因为其他的原因或者是显示的问题。 [/quote]
估计是使用了不同的函数导致的吧,还有其他函数限制,但是超过127之后是负数,所以判断没有超过上限。

2012-3-6 16:19 豪杰兴邦
先在127以内修改看看,就是不修改函数,看限制因素有哪些,比如还有哪个函数导致数据回到限制区间的。

2012-3-6 16:40 豪杰兴邦
我就发布一个没有经过修改的exe文件分享。
可以根据需要进行修改了。

2012-3-6 22:38 bergkamp
[quote]原帖由 [i]豪杰兴邦[/i] 于 2012-3-6 16:40 发表
我就发布一个没有经过修改的exe文件分享。
可以根据需要进行修改了。 [/quote]
建议把 直接把武将能力值改为 255 然后 发动战法能力上升  通过校验限制代码会 变成100  在这个过程中找出这个校验限制代码 改变校验参数 就能解决问题

2012-3-6 23:09 豪杰兴邦
[quote]原帖由 [i]bergkamp[/i] 于 2012-3-6 22:38 发表

建议把 直接把武将能力值改为 255 然后 发动战法能力上升  通过校验限制代码会 变成100  在这个过程中找出这个校验限制代码 改变校验参数 就能解决问题 [/quote]
呵呵,目前应该是使用函数的问题了,使用原来的函数没有问题,但是使用新函数才出现这个问题。

付在游侠论坛看到一些修改
[quote]个人尝试过三九武将属性修改,利用新武将登陆器可将新武将属性设为255,加上宝物属性15、官爵属性5,最大数值为275,但极不稳定,因为每过一段时间,武将属性便随机加点,在开优化情况下会变为115,不开则会变回100;另一种方法则更为稳定,利用剧本编辑器将官爵属性设为255,新武将初始属性设为115,加上宝物的15,最大数值为385。前一种方法是武将自身属性,因此所拔擢的士兵初始值大多为四维全满,后一种则为附加属性,所以士兵初始值较为随机,极少出现四维杰出的情况。用属性385的武将战斗,率1000士兵牺牲50可以拆毁石兵,率10000井阑攻打异民族可在一月内占领该城,前提是队内配备混乱兵法武将,否则虽然高统普通攻防极高,但对敌方兵法攻击抵御较为一般。[/quote]

2012-3-7 00:13 bergkamp
[quote]原帖由 [i]豪杰兴邦[/i] 于 2012-3-6 23:09 发表

呵呵,目前应该是使用函数的问题了,使用原来的函数没有问题,但是使用新函数才出现这个问题。

付在游侠论坛看到一些修改
[/quote]
这是一种讨巧的修改方法 改exe才是解决根本 这样的话有个问题就是 武将还是不能成长

2012-3-7 09:59 chenjywz
重新写了代码,但暂时没有时间测试。晚上再看看。另外一个是改了超过255后,存档后读取应该也会有问题,这周有空再改。上班比较忙

2012-3-7 16:36 豪杰兴邦
[quote]原帖由 [i]bergkamp[/i] 于 2012-3-7 00:13 发表

这是一种讨巧的修改方法 改exe才是解决根本 这样的话有个问题就是 武将还是不能成长 [/quote]

呵呵,只是来探讨一下问题,能力总值能够超过255说明内存里面是两个字节储存的。

[color=Silver][[i] 本帖最后由 豪杰兴邦 于 2012-3-7 16:38 编辑 [/i]][/color]

2012-3-7 16:39 豪杰兴邦
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 09:59 发表
重新写了代码,但暂时没有时间测试。晚上再看看。另外一个是改了超过255后,存档后读取应该也会有问题,这周有空再改。上班比较忙 [/quote]
建议基本属性限制在254以内,因为基本能力只有一个字节。

2012-3-7 20:42 chenjywz
修改了一下代码,现在武力:
搜索代码 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以内。
测试比较费时,武力增加的机会太少了。

2012-3-7 20:52 chenjywz
续上,在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

这种修改方式和优化伴侣是相兼容的。

[color=Silver][[i] 本帖最后由 chenjywz 于 2012-3-7 21:00 编辑 [/i]][/color]

2012-3-7 21:02 chenjywz
回复 #16 bergkamp 的帖子

能不能提供修改的办法,我好改了测试一下。

2012-3-7 22:00 豪杰兴邦
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 21:02 发表
能不能提供修改的办法,我好改了测试一下。 [/quote]
那些修改是另外一个高手做的,他会自己编写代码,估计是插入代码实现的。
当时我向他请教三国志9的时间上限修改,结果他也迷上了三国志9,做了很多修改了。

2012-3-7 22:18 chenjywz
嗯。现在是属性能够到255了,但感觉探索出现武力+1的概率变小了,不知道哪里没弄好。

2012-3-7 22:20 豪杰兴邦
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 22:18 发表
嗯。现在是属性能够到255了,但感觉探索出现武力+1的概率变小了,不知道哪里没弄好。 [/quote]
估计是武力越高,概率越低吧

2012-3-7 22:21 chenjywz
回复 #37 豪杰兴邦 的帖子

说实话我看到汇编代码也很头疼,一些复杂的就直接略过了。耐心不够。

2012-3-7 22:23 chenjywz
回复 #39 豪杰兴邦 的帖子

至少现在属性是固定在255以内了。但这个几率还需要看检查一下。

2012-3-7 22:25 zzmax
回复 #40 chenjywz 的帖子

lz可以试试在[url]http://www.xycq.net/forum/viewthread.php?tid=213092&highlight=%C5%B0%B4%FD%B5%E7%C4%D4[/url]这个帖子附件里面的exe文件上修改测试,基本上每天发一次兵法,每出一次兵法加一点武力

2012-3-7 22:32 bergkamp
[quote]原帖由 [i]zzmax[/i] 于 2012-3-7 22:25 发表
lz可以试试在[url]http://www.xycq.net/forum/viewthread.php?tid=213092&highlight=%C5%B0%B4%FD%B5%E7%C4%D4[/url]这个帖子附件里面的exe文件上修改测试,基本上每天发一次兵法,每出一次兵法加一点武力 [/quote]
这个我已经整合LZ的代码发给他过了 [url]http://115.com/file/e7qsoxya[/url]

2012-3-7 22:34 bergkamp
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 21:02 发表
能不能提供修改的办法,我好改了测试一下。 [/quote]
请用 这个修改 [url]http://115.com/file/e7qsoxya[/url]
这个已经整合你的第一次的代码过了

我把原来琅琊论坛 海涛兄做的 EXE文件和你的修改整合了一下
现在有以下功能
1、培养小兵有选项让你选的时候一定成功,小兵年龄15野心义气15寿命7,性格和相性跟君主完全一样;
2、武将受伤的话有人搜索必定见华佗;
3、玩家势力内政效果必定加倍
4、玩家手下武将做事(流言掠夺等)成功的话,必定增加相应能力1,电脑的概率没有变;
5、玩家兵法发动几率增加(极大增加)而电脑减少;而且兵法发动的多,相应武力统帅 涨的也快
6、武将能力上限 255 配合以上 只要久经战阵 超级武将很快就会诞生

2012-3-7 22:35 bergkamp
[quote]原帖由 [i]豪杰兴邦[/i] 于 2012-3-7 22:20 发表

估计是武力越高,概率越低吧 [/quote]
用以前海涛兄做的那个 发动一次战法就加1

2012-3-7 22:41 豪杰兴邦
回复 #42 zzmax 的帖子

呵呵,那个帖也是我转来的,当时和海涛商讨三国志6和三国志9的修改。
而大部分的san9pk.exe是加壳了的,所以我特地找来一个脱壳后的san9pk.exe来给他修改。

2012-3-7 22:50 chenjywz
回复 #42 zzmax 的帖子

谢谢,这个太变态的。不过属性加的确实很爽,现在测了一下确实不会超过255了。我再试试把上限改成65536.。

2012-3-7 22:54 chenjywz
回复 #44 bergkamp 的帖子

刚刚用zzmax发的exe修改了,如果把上限改为FF 00 00 00, 则属性不会超过255, 如果改成FF FF 00 00, 属性可以超过256了,不过因为保存的时候最大只能保存255, 超过的话会被截断。

2012-3-7 22:54 chenjywz
回复 #44 bergkamp 的帖子

你的那个下不了,文件未共享。

2012-3-7 22:58 chenjywz
照着图修改吧。应该比较简单。下次有空改改宝物的上限

2012-3-7 22:59 bergkamp
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 22:54 发表
你的那个下不了,文件未共享。 [/quote]
[url]http://115.com/file/e7qsoxya#San9PK.rar[/url]
不好意思 已设置分享

2012-3-7 23:00 bergkamp
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 22:58 发表
照着图修改吧。应该比较简单。下次有空改改宝物的上限 [/quote]
我刚才按照你说的修改了 结果 一出兵 就跳出?

2012-3-7 23:03 chenjywz
我这边不会啊。你试试这个在zzmax提供的基础上修改的exe

2012-3-7 23:06 zzmax
回复 #47 chenjywz 的帖子

个人感觉把上限提高到110或120就可以了,提高太多会严重影响平衡,建议你看一下优化伴侣的这个帖子[url]http://www.xycq.net/forum/viewthread.php?tid=223362&highlight=[/url]


另外,lz可否研究一下修改exe实现优化里面的同系联动效果。

2012-3-7 23:08 chenjywz
回复 #52 bergkamp 的帖子

发现你发的那个exe那段代码有很大的不同,是不是改过的?

2012-3-7 23:10 bergkamp
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 23:03 发表
我这边不会啊。你试试这个在zzmax提供的基础上修改的exe [/quote]
已测试 很有效 估计是我改代码时 有错误!

2012-3-7 23:10 chenjywz
回复 #54 zzmax 的帖子

我修改的初衷是我的几个武将属性会超过120, 但不会大于200,有时候突然属性会变回115或110,(用优化伴侣的话),所以很不爽才决定改的。其他的就要看水平和时间了,毕竟上班比较忙

2012-3-7 23:11 bergkamp
[quote]原帖由 [i]chenjywz[/i] 于 2012-3-7 23:08 发表
发现你发的那个exe那段代码有很大的不同,是不是改过的? [/quote]
改过你第一次突破255归0的代码

2012-3-7 23:14 zzmax
优化的默认上限好像是115

2012-3-7 23:20 chenjywz
回复 #59 zzmax 的帖子

我这修改的方法和优化伴侣没有冲突

页: [1] 2


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.