|
仙剑4数据存储原理和地址规律
不想看原理的可以直接看最下面。 首先,系统下程序可用的内存地址是00400000-7FFFFFFF 字串4
但这回仙4的大部分人物属性相关地址都保存在7F966880之后……而且到现在为止都是双字节,装备是4字节,所以最大值是65535,但在一些情况下最好别取这个值,后面再说。 字串4
仙4的人物属性数据分4块 字串1
战斗临时数据:仙4中战斗时所调用的地址,但是这个地址是会变的,地址范围也是很靠后,但应该在7F966880之前,这个等地卷解决。 字串1
人物基础数据 字串6
人物现有MAX数据(就是在人物属性界面所看到的,但精气神保存的是最大值) 字串1
人物现有数据(同上,但精气神保存的是现有值) 字串1
接下来重点说每个部分,这里按云天河的内存地址为例(这里数据采用了2次收录,数据有差异,但位置没变) 以下地址我试了2次,50%认为地址是不变的。 人物基础数据,人物最基础的几个属性,这里的属性是人物的原始值,就是没加装备前的。依我判断,这里的值加上装备的加成就生成了[人物现有MAX数据]中的攻击。修改这里最有效,但升级后是加成还是新算还待确认,但也可以直接锁定掉。前面还有一些数据,没仔细研究。 字串9
7F966880 00 00 00 00 AA 06 00 00 05 00 00 00 6D 00 00 00 字串1
----------------------精----------?-----------气 字串3
7F966890 F7 00 00 00 AF 00 00 00 CB 00 00 00 DC 00 00 00 字串8
----------功----------防----------速-----------运 字串1
由于这里的功是人物基础值,基础值+装备加成才会=真正的输出攻击力,所以推荐这里基础值不要设到65535,容易溢出。如果想最大攻击输出,那就FFFF减该人物拿着的武器攻击力的16位值,得出来的就可以添在这。 字串9
7F9668A0 99 00 00 00 CD CC 4C 3E AE 47 E1 3D 00 00 00 00 字串8
----------灵----------4字节为一组的数据,暂时还不知道是什么 字串5
7F9668B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串2
7F9668C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串7
7F9668D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串3
7F9668E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串7
7F9668F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串4
7F966900 00 00 00 00 00 00 00 00 00 00 00 13 00 00 00 00 字串6
-------------------------------------------待确认 字串9
7F966910 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串7
7F966920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串6
7F966930 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串2
7F966940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串7
人物现有MAX数据,这里的值都是按照人物基础值+装备加成后的值,所以大部分都是动态生成的,比如功,防,在这里修改是没用的,因为这里只是显示在游戏中人物状态里的结果,当进入新的战斗后,战斗中的攻击会重新计算,而不是直接调用这里值。 字串7
7F966950 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 字串8
----------------------------------------------等级 字串2
7F966960 99 8E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串9
----------总经验值 字串8
7F966970 00 00 00 00 00 00 80 3F 00 00 80 3F 00 00 80 3F 字串6
7F966980 00 00 80 3F 00 00 00 00 00 00 80 3F 00 00 80 3F 字串5
7F966990 00 00 80 3F 00 00 80 3F 00 00 80 3F 00 00 80 3F 字串4
7F9669A0 00 00 80 3F 00 00 00 00 00 00 00 00 00 00 00 00 字串2
这一大段可能是分割符的作用 字串8
7F9669B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串1
7F9669C0 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 字串2
----------------------------------未知 字串5
7F9669D0 00 00 00 00 09 06 00 00 05 00 00 00 61 00 00 00 字串5
----------------------精MAX------?----------气MAX 字串3
7F9669E0 21 01 00 00 AF 00 00 00 B3 00 00 00 BF 00 00 00 字串2
----------攻值--------防值---------速值--------运值 字串3
7F9669F0 84 00 00 00 9A 99 99 3E CD CC CC 3D 00 00 00 00 字串6
----------灵值--------这4个字节是武器,后4个字节就不知道了,而且这个武器我觉得,可能只是调用位置,而不是武器代码。 字串9
比如CD CC 4C 3E铸云铁,9A 99 99 3E峰岭刃,但下面有个土属性戒指也是9A 99 99 3E。 字串7
7F966A00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串1
7F966A10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串4
7F966A20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串7
7F966A30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串8
----------------------------------水装备加成---火装备加成 字串1
这里是指环的装备地址,4字节,9A 99 99 3E是2个相同装备,9A 99 19 3E是1个,但到底还有什么规律呢? 字串2
7F966A40 00 00 00 00 00 00 00 00 9A 99 99 3E 00 00 00 00 字串3
----------雷装备加成---风装备加成---土装备加成--水属性值 字串3
各属性值就是5灵的值,双字节,之间间隔2个字节,但直接改这里仍然对战斗中无影响 字串7
7F966A50 00 00 00 00 00 00 00 00 00 00 00 00 1F 00 00 00 字串1
----------火属性值-----雷属性值----风属性值-----土属性值 字串5
7F966A60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串3
7F966A70 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串9
7F966A80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串5
7F966A90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 字串4
人物现有数据,是人物现有的状态,比如还剩多少血就在这里。也就是锁定这里的最大精就可以战斗结束后自动满精了。 字串2
7F966AA0 00 00 00 00 00 00 00 00 00 00 00 00 14 00 00 00 字串1
----------------------------------------------现在等级 字串3
7F966AB0 99 8E 00 00 00 00 00 00 09 06 00 00 64 00 00 00 字串3
----------现有总经验---------------现有精------现有气 字串1
7F966AC0 52 00 00 00 00 00 80 3F 00 00 80 3F 00 00 80 3F 字串8
----------现有神 字串5
战斗临时数据,是随机产生的,但应该有个范围,我抓了2次,分别在6FB2CB94,78BD2FdC附近。数据的结构和人物现有MAX数据里的一样,可以参考。 字串5
|