标题: 三国志9PK武将能力上限的修改办法
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-4 16:37 资料 短消息 只看该作者
三国志9PK武将能力上限的修改办法

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

[ 本帖最后由 chenjywz 于 2012-3-19 19:14 编辑 ]


图片附件: 20120307_61d8be4088d01263513eBjsQrXYINNqr.jpg (2012-3-8 09:24, 88.55 K)



顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-4 19:56 资料 个人空间 短消息 只看该作者 QQ
修改san9的exe也可以实现的


顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-4 20:02 资料 短消息 只看该作者
是的啊,最好的办法就是修改exe,可惜不知道怎么改,大致弄懂了优化伴侣对上限的设置方法,可惜最高只能是127
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-4 22:03 资料 短消息 只看该作者
终于决定用ollydbg调试,但不知道方法是否正确,希望论坛里的前辈们能不吝赐教。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-4 23:03 资料 个人空间 短消息 只看该作者 QQ
可能exe里面上限处理就是127,超过就变成负数。
曾经看到过三国志8的修改,修改跳转,就可以突破127的限制,达到255.
当然这些都需要调试程序才可以找到。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-4 23:06 资料 个人空间 短消息 只看该作者 QQ
http://tieba.baidu.com/f?kz=827835163

这里是一个关于三国志8的修改,可以参考参考。
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-5 09:24 资料 短消息 只看该作者
谢谢,好好看看,有空会去调试一下。
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-5 22:12 资料 短消息 只看该作者
经过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位。未仔细测试过。
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-5 22:14 资料 短消息 只看该作者
将所有搜索到得6A 64 51 50 FF 15 0C F3 5F 00 改成 6A FF 51 50 FF 15 E4 F2 5F 00 。 如果开着优化伴侣,最好是把优化伴侣也改了。

[ 本帖最后由 chenjywz 于 2012-3-5 22:31 编辑 ]
顶部
性别:未知-离线 zzmax
(zzmax)

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 17
编号 378988
注册 2010-5-31


发表于 2012-3-5 22:32 资料 短消息 只看该作者
回复 #9 chenjywz 的帖子

lz神人也!

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

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-5 23:19 资料 短消息 只看该作者
如果是上限不超过127的话,将64 改成78就可以了,后面的改不改无所谓

[ 本帖最后由 chenjywz 于 2012-3-5 23:28 编辑 ]
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-5 23:53 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 chenjywz 于 2012-3-5 22:12 发表
经过3个小时的调试及测试,终于搞定。下面提供方法, 用Ultraedit打开exe文件,搜索 6A 64 51 50 FF 15 0C F3 5F 00, 这串代码的含义是将100, 当前的属性值,及增加值作为参数 调用sancalc.dll中的limadd(int, ...

要注意其他部分的处理,数值过大会溢出的。
以我做三国志10的修改为例,用存档修改器,属性改成255没有问题,然后道具附加255,可以达到510,机动力100多,战斗力几千,但是将数值改成1万,那么处理会出问题,现象是机动力超强有几千,但是攻击力很弱,改成10万,机动力也有几万了,但是攻击力变成零了,估计已经是负值。
所以估计500以内没有问题,超过500就要考虑是否溢出了。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 00:26 资料 个人空间 短消息 只看该作者 QQ


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

加我的QQ:624201446
密商
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-6 09:20 资料 短消息 只看该作者


QUOTE:
原帖由 豪杰兴邦 于 2012-3-5 23:53 发表

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

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

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 75
编号 15481
注册 2004-8-14


发表于 2012-3-6 12:08 资料 短消息 只看该作者


QUOTE:
原帖由 chenjywz 于 2012-3-6 09:20 发表


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

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

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

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 75
编号 15481
注册 2004-8-14


发表于 2012-3-6 12:09 资料 短消息 只看该作者


QUOTE:
原帖由 bergkamp 于 2012-3-6 12:08 发表

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

忘了放地址了
http://115.com/file/e7qsoxya
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-6 13:14 资料 短消息 只看该作者
超过255确实会回来。回去再调试一下。我也是好玩才尝试着修改。
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-6 13:29 资料 短消息 只看该作者
大致知道怎么修改了,回去试一下
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 13:35 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 bergkamp 于 2012-3-6 12:08 发表

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

呵呵,这个是正常的,单个字节最大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点,才会归零。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 13:47 资料 个人空间 短消息 只看该作者 QQ
像钱粮储备,游戏用4个字节储存,但是100万粮食就是2^30,那么上限即2^32相当于粮食400万,但是如果改成400万粮食,则容易因为粮食数量超过400万导致溢出,资金也是一样的处理,所以一般修改钱粮上限300万。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 13:52 资料 个人空间 短消息 只看该作者 QQ
通常要给寄存器留一定的数据余量,防止数据溢出。
像数据赋值的上下限,不是内存数据一定不能超过限制,是在内存数据超过限制的时候将数据返回限制区间。
顶部
性别:未知-离线 bergkamp

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 75
编号 15481
注册 2004-8-14


发表于 2012-3-6 14:12 资料 短消息 只看该作者


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

原来如此
顶部
性别:未知-离线 bergkamp

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 75
编号 15481
注册 2004-8-14


发表于 2012-3-6 14:56 资料 短消息 只看该作者


QUOTE:
原帖由 豪杰兴邦 于 2012-3-6 13:35 发表

呵呵,这个是正常的,单个字节最大255,超过要么溢出,要么从零开始。
比较类似的就是三国志6时间修改,时间用两个字节储存,默认上限2000年,超过2000年,时间复归到2000年,改成上限65535年之后,过了6553 ...

我把 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的没有生效
顶部
性别:未知-离线 chenjywz

Rank: 1
组别 百姓
级别 在野武将
功绩 0
帖子 37
编号 338775
注册 2009-9-12


发表于 2012-3-6 15:34 资料 短消息 只看该作者
不是这样的,我那种改法理论上那个FF没有用了,因为被解释成了-1,传进limadd(ulong, ulong,ulong)后就变成最大的数,所以会一直+1, 超过255后归0是因为其他的原因或者是显示的问题。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 16:18 资料 个人空间 短消息 只看该作者 QQ


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

估计是使用了不同的函数导致的吧,还有其他函数限制,但是超过127之后是负数,所以判断没有超过上限。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 16:19 资料 个人空间 短消息 只看该作者 QQ
先在127以内修改看看,就是不修改函数,看限制因素有哪些,比如还有哪个函数导致数据回到限制区间的。
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 16:40 资料 个人空间 短消息 只看该作者 QQ
我就发布一个没有经过修改的exe文件分享。
可以根据需要进行修改了。


附件: 三国志9威力加强版升级免CD补丁V1.01.rar (2012-3-6 16:40, 828.47 K)
该附件被下载次数 23980
顶部
性别:未知-离线 bergkamp

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 75
编号 15481
注册 2004-8-14


发表于 2012-3-6 22:38 资料 短消息 只看该作者


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

建议把 直接把武将能力值改为 255 然后 发动战法能力上升  通过校验限制代码会 变成100  在这个过程中找出这个校验限制代码 改变校验参数 就能解决问题
顶部
性别:男-离线 豪杰兴邦
(超哥)

Rank: 6Rank: 6Rank: 6
组别 校尉
级别 军师将军
功绩 14
帖子 921
编号 401645
注册 2010-10-31
来自 三湘四水


发表于 2012-3-6 23:09 资料 个人空间 短消息 只看该作者 QQ


QUOTE:
原帖由 bergkamp 于 2012-3-6 22:38 发表

建议把 直接把武将能力值改为 255 然后 发动战法能力上升  通过校验限制代码会 变成100  在这个过程中找出这个校验限制代码 改变校验参数 就能解决问题

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

付在游侠论坛看到一些修改

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

顶部
性别:未知-离线 bergkamp

Rank: 2Rank: 2
组别 百姓
级别 破贼校尉
功绩 1
帖子 75
编号 15481
注册 2004-8-14


发表于 2012-3-7 00:13 资料 短消息 只看该作者


QUOTE:
原帖由 豪杰兴邦 于 2012-3-6 23:09 发表

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

付在游侠论坛看到一些修改

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


顶部

正在浏览此帖的会员 - 共 3 人在线




当前时区 GMT+8, 现在时间是 2025-1-31 02:42
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.012972 second(s), 9 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP