2024.04.27:V1.0.1,支持Steam版本等版本
2018.09.07:更新了一下,支持简体中文语音版。
仙剑系列一直是比较喜欢的国产游戏,第一次接触是初中时候朋友带来的仙剑4,然后就打开了新世界的大门,还记得晚上玩到柳府时候紧张的浑身汗毛竖起_:(´°ω°`」 ∠):_
这两天突然想看一看仙剑4的剧情,没时间完整玩一遍,抽空找了找基址写了个简单的修改器。
记录一下找到的基址和偏移量。
仙剑4的数据结构分为两块,一部分是日常状态下的数据,另一部月份是战斗数据。战斗数据在开始战斗时从日常状态下的数据复制过来,地址是动态生成的;当战斗完毕后再将战斗后的数据复制回日常状态,同时释放掉战斗状态下数据占用的内存;下次再进入战斗状态时会重新申请内存再复制一遍,所以每次都要重新获取战斗状态下数据的地址。
如果只锁定日常状态下的数据只能实现战斗结束后自动满血;如果想实现战斗时锁定血量或者其他属性就要获取战斗临时数据的地址。
大部分的数据都是2字节,所以最大为65535,但是都不能设置为只个值,因为大部分属性只是自身属性,没有算上装备属性,如果设置65535那加上装备属性后会溢出。
调试的时候还发现了个问题,如果把所有人物都设置成离队状态,那碰到的怪就会消失,战斗剧情也会直接跳过( ゚∀゚) 于是为了看剧情的我就一直全部跳过。。。
源码下载地址:https://github.com/Mfweb/PAL4-Edit
软件下载地址:PAL4_EDIT_V1.0.1
一些系统属性的地址:
金钱(4字节):[0x8EB064] + 0x134
不遇敌时间(4字节):[0x8E11FC] + 0x2E4
不遇敌(2字节):[0x8E11FC] + 0x2E0
移动速度(4字节):[0x8E11FC] + 0x60
移动模式(2字节):[0x8E11FC] + 0x84
迷宫点数(2字节):[0x8F30E8] + 0x34
日常状态下数据(应该是结构体,每个人物长度0xB14):
基地址[0x8E1428]
云天河最大精:+ 0x7AC + 0*0xB14
云天河当前精:+ 0x890 + 0*0xB14
云天河最大神:+ 0x7B4 + 0*0xB14
云天河当前神:+ 0x898 + 0*0xB14
云天河当前气:+ 0x894 + 0*0xB14
云天河武:+ 0x668 + 0*0xB14
云天河防:+ 0x66C + 0*0xB14
云天河速:+ 0x670 + 0*0xB14
云天河运:+ 0x674 + 0*0xB14
云天河灵:+ 0x678 + 0*0xB14
云天河当前是否在队中:+ 0xB08 + 0*0xB14
韩菱纱最大精:+ 0x7AC + 1*0xB14
韩菱纱当前精:+ 0x890 + 1*0xB14
以此类推。。。
当前是否正在战斗(4字节):
[0x8F3190]如果为0,则没有在战斗。
战斗临时数据地址(4字节):
左侧角色:[[[0x8F3190]+0x34]+0]
中间角色:[[[0x8F3190]+0x34]+4]
右侧角色:[[[0x8F3190]+0x34]+8]
战斗时临时数据存放在上面读取的地址中,存储方式与临时数据基本一致:
最大精:+ 0x158
当前精:+ 0x23C
最大神:+ 0x160
当前神:+ 0x244
当前气:+ 0x240
以此类推。。。
发表回复