经过本人的一些研究,发现并非没有其他修改之法。下面就来说说如何修改。
我以《神魔幻想IV: 永恒的誓言》为例。
这个游戏的资源已经被作者加密。所以想用RM直接修改是不可能的。(PS: 由于游戏引擎没有加壳。汇编高手们有兴趣的话可以跟一下解密和解包之法。这里就不细表了。)
我们修改的对象:“存档文件”
仔细观察会发现,这个文件内保留了大量的函数名。如@level、@sp、 @hp 等等。
这些就是我们的切入口了。
例如我们要改钱。
了解一点RM的人就知道钱是@gold. 用Ultraedit搜索关键字gold,发现只有一处。在@gold和紧接着的下一个函数@armors之间的7个字节。69 XX ?? ?? ?? 3A XX 其中的?? ?? ?? 这三个字节就是金钱了。例如我们写入9F 86 01那么,金钱就是99999。(注意: XX 部分不要随便修改。)
同理,我们再来谈谈HP,MP的改法。
使用过RM的人都知道,HP和MP的上限是由人物的LV决定的。这些在游戏的数据库里都定义好了的。
所以个人认为,修改LV才是最省时省力的好方法。下面就说说如何修改等级。
首先搜索关键字level,这个关键字可能不是唯一的,跟你目前队伍中的人数有关,每个人都对应一个LV值。
假设我们搜到一个@level。它的下一个函数是@skills。两个函数之间的数据形式大概是69 ?? 3A XX。
??的数值和LV的关系是: ?? = LV + 5
例如我们想要改成等级的上限LV99,16进制是63H 那么?? = 63 + 5 = 69。
保存修改,读取存档就会发现,LV变成了99,并且HP上限变成9999,MP上限变成了7500,也就是作者预先定义好的该人物在99级时的hp_max和sp_max的值了。
其他的如技能,装备之类的我就不再说了,大同小异。记住一个特征: "需要修改的字段定位法则: @函数名+ 69+ 修改的内容 + 3A XX + @下一个函数名。"。这个结构对于大多数情况都是满足的。参考资料: http://tieba.baidu.com/f?kz=531732507
加精啊