scf37
级别: 注册会员
编号: 32347
精华: 0
发帖: 45
威望: 0 点
配偶: 单身
火 花 币: 25694 HHB
注册时间:2005-02-07
最后登陆:2013-06-28
|
系谱游戏过程中乱数的修改~
小弟菜鸟一个,刚玩SFC的系谱,发现S/L每次都一样结果,经高人指点方知还有乱数表一事……
由于游戏过程中出现重大失误(我太菜了……),又不甘心重打,决心找出祸首,修理一下。
手头工具也不全……我只有金山游侠V……ZSNES的修改功能好象没办法让我直接改内存数据(其实是我不会用……)。
贡献一下心得:
从《乱数教程》里给的乱数表出发,想来内存中也是这样存放数据的。于是新开始游戏,跳过剧情……按“*”键进入游侠(这不是给他做广告么,其实用什么修改器都一样了……透露一下,我用的盗版^^)搜索……搜索什么呢?
简单的查找一个单字节数据会有数万个结果,所以要把他们连起来看四个一组,四字节的大数就很少有机会重复了。我选的是从第三个到第六个数,15 33 15 83(第一个数不好,保险起见第二个也不用,所以选了第三个开始),然后计算器一顿计算后终于转成可以搜索的4字节十进制数(其实可以直接搜索16进制的数,但是……但是我不会啊!这里转出来是1393500431),搜索……很幸运的就一个结果。接着对结果点右键选地址编辑,从左边开始,40 11 0F 21 …… 一直到 5D 0D 07 54 对应了乱数表中的数字 64 17 15 33 …… 到 93 13 7 84 ,根据《乱……》一文的描述,现修改其中的17为65,主角出击,100%命中率,攻击——不中……这是由于65转成10进制为101(大于100了……)。
接下来研究乱数表周边的数字,位于表开始部分40之前的两个字节实时变动的,不知何用,还是表末54之后的一个字节比较有意思,初始是00,出击后变为03。根据《乱……》一文的描述……(不要嫌罗嗦,的确是这样啊~)猜测它就是引用表的指针,改之……再测试一下,证明了猜测!
经测试发现该数字的规律——若为00则下次要使用乱数时就用表中的第二个数字,若为01则是第三个,以此类推,到三十几(16进制)的时候就又变为00,表也重新生成……
表中01为最小数字,做什么都一定成功(00就不行),把一串全改01,升级可全属性增加
心得完了,不过我有问题:用什么办法来搜索内存中连续的一串数据,我这样太麻烦了……白痴做法……
哎……其实都还不如直接调人物数值…………
|
|
[楼 主]
|
Posted:2005-02-08 20:53| |
顶端
| |