《仙剑奇侠传4》修改原理之天卷

2007-10-15 17:43:12 神评论

17173 新闻导语

仙剑4数据存储原理和地址规律不想看原理的可以直接看最下面。首先,系统下程序可用的内存地址是00400000-7FFFFFFF但这回仙4的大部分人物属性相关地址都保存在7F966880之后……而且到现在为止都是双字节,装备是4字节,所以最大值是65535,但在一些情况下最好别取这个

人物现有数据,是人物现有的状态,比如还剩多少血就在这里。也就是锁定这里的最大精就可以战斗结束后自动满精了。

7F966AA0 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00

----------------------------------------------现在等级

7F966AB0 99 8E 00 00 00 00 00 00 09 06 00 00 64 00 00 00

----------现有总经验---------------现有精------现有气

7F966AC0 52 00 00 00 00 00 80 3F 00 00 80 3F 00 00 80 3F

----------现有神

战斗临时数据,是随机产生的,但应该有个范围,我抓了2次,分别在6FB2CB94,78BD2FdC附近。数据的结构和人物现有MAX数据里的一样,可以参考。

如果你在战斗临时数据中修改了人物的攻击力,之后受到加攻击或减攻击等法书的影响,那这个值将会从人物基础数据处+装备加成+法术中得出,再赋值给战斗临时数据。而且战斗临时数据在结束战斗后就消失,下场开始时再动态生成一个新的地址范围,所以锁定无用。

所以,仙4的人物数值可以这么来理解:

人物基础数据+装备加成=人物现有MAX数据里显示的

人物现有数据<->战斗临时数据是互导的关系,也就是战斗结束后HP为1004,会保存在人物现有数据中的7F966AB8,然后再次进入战斗模式时,会把这个值赋回给战斗临时数据中的HP地址。那么战斗中的数值是赋值给动态地址的,所以还没办法战斗中进行锁定。

对于其他人物,他们之间的间隔为B14,也可以说一个人物的所有数据占用了B14,就是2836字节。

按照这个可以想到,如果你想建立一个已经离队的人物,你起码得自己建起2836字节的数据。

那么,其他人的地址分别如下,如果想要韩菱纱的攻击,只要云天河的攻击地址7F966890+B14=7F9673A4,就是韩菱纱的基础攻击地址。

韩菱纱 7F967394

柳梦璃 7F967EA8

慕容紫英 7F9689BC

现在还没确认的就是这个排列是否固定,我现在玩得人物少一个慕容紫英。

以下都为双字节,数值最大65535,但避免溢出,不推荐设成那么大的值。不用锁定,但暂时还不知道升级后是不是又重新算了。

7F966890 云天河的攻

7F966894 云天河的防

7F966898 云天河的速

7F96689C 云天河的运

7F9668A0 云天河的灵

7F9673A4 韩菱纱的攻

7F9673A8 韩菱纱的防

7F9673BC 韩菱纱的速

7F9673B0 韩菱纱的运

7F9673B4 韩菱纱的灵

7F967EB8 柳梦璃的攻

7F967EBC 柳梦璃的防

7F967EC0 柳梦璃的速

7F967EC4 柳梦璃的运

7F967EC8 柳梦璃的灵

7F9689CC 慕容紫英的攻

7F9689D0 慕容紫英的防

7F9689D4 慕容紫英的速

7F9689D8 慕容紫英的运

7F9689DC 慕容紫英的灵

还不肯定这个4个人物范围是固定排列还是剩谁就排在前面。

如果要真正能够锁定精,气,神,则需要找到战斗临时数据地址生成的规律,锁定了就可以。对了,如果HP锁定后被一击必杀打中(比如淮南王的夺魂)……不死亡(可以想到必杀的方程式不是,怪物攻击输出的值(显示用)=人物的剩余血量,状态=死亡(直接死亡);可能是怪物攻击输出的值=人物的剩余血量,人物的剩余血量=人物的剩余血量-怪物攻击输出的值,再 if 人物的剩余血量=0 then 状态=死亡)

地卷待解决的问题

1。对于64位系统而言,是否地址会随着变更?

2。在32位对于XP和VISTA的内存地址是否会变更?(可能性小)

3。战斗时的内存地址范围是多少,只见是否有个规律?

4。在7F966880修改的数值,人物升级后是在7F966880得值上修改加成还是被替换掉?

5。游戏的地址是不是固定的?


【编辑:17173】
支持键盘 ← 和 → 分页
版本专题
今日头条
精华推荐
日期
游戏
状态
下载
礼包

页游测试表

日期
游戏
状态
评分
礼包