游戏修改经验谈──高级篇 海之风 2001年 6期 会了前面两种方法,基本上是一通百通了,但我们想要追求更完美的修改,想要更全面的修改,于是我们──再改!   现在很多RPG游戏中踩地雷战斗令玩家感到心烦不已,也是修改的天敌──修改本来就是为了更快的通关,踩地雷明显就是阻碍通关的速度嘛!部分RPG的踩地雷是根据玩家走的步数来的,走到一定的步数就会出现一个地雷,打完后又将数值恢复到初始值,对于这种游戏,我们完全可以通过GM来把这可恶的地雷给扫掉。现在我们就来开始扫雷吧。   以《轩辕剑叁:天之痕》为例,在随机遇敌的画面中,每走一步那个值就会增加。我们先开始一个低阶扫描,然后切换到游戏,走两步,切回输入一个“+”,这样反复,如果遇敌,打完后扫描“-”,最后就能找到一个地址,将这个地址锁定为0,再来回走走看,呵呵,它们都闻风丧胆了,再也不来骚扰了。(不是随机出现的敌人仍旧会出现的,如Boss及在固定地点出现的敌人)   这是一个每走一步值会增加的游戏,像这种游戏还有《新绝代双骄贰》;还有些游戏是每走一步值会减少,减少到0便出现战斗,然后又恢复到初始值,当你用一种方法找不到需要修改的地方的时候不妨换种方法试一下。(并不是每种RPG游戏都是以这种方法踩地雷的,如以其他的方法设置地雷,在不知道其程序怎么设计时是很难修改的)   有时候游戏产生地雷的方法是每走一步将记录步数的值增加一,如果我们能够使它每走一步不将这个值增加,那不是永远不会产生地雷了吗?对,我们马上行动!   为了修改程式码,我们需要有一点点的汇编知识,能够看得懂一点点的汇编指令就差不多了。同样以《轩辕剑叁:天之痕》为例,存放步数的地址是004E5828,在地址表中右击该地址,选择Analyze Program Code(也可在scanner中输入#004E5828),GM会列出和这个地址有关的指令:   Position Value   00402BF3 MOV EAX,[004E5828]   00403C65 MOV ECX,[004E5828]   00403C73 MOV [004E5828],ECX   00403CAC MOV EDX,[004E5828]   0040C9D3 MOV [004E5828],EBX   0040DE99 MOV Dword ptr [004E5828],00   00414808 MOV ECX,[004E5828]   看不懂没有多大关系,我们只要知道我们的目的是使004E5828这个地址的值不再增加。汇编指令中NOP指令就是什么也不做,实在不懂汇编,就试着一个一个改过去,双击一个地址,将指令改为NOP再走几步,看看存放步数的那个值有没有改变(先可以取消对步数地址的锁定),如果没有改变就说明成功了,还有改变的话就继续改下一个──为了修改游戏,同志们还是去学学汇编吧(只需看前面几章)。我们现在把对00403C65这个地址的操作改为NOP,回到游戏中就再也不会随机遇敌了,只要不退出游戏重新进去,就算关掉GM,也不会随机遇敌。注意:当你退出游戏再进去时仍旧会随机遇敌,因为我们改的并不是源程序。至于制作修改器,建议还是使用Trainer Maker Kit,因为比较简单,所以请大家自己去尝试一下吧。   GM从7.0版本升到7.3还带了不少工具,如光棒修改法,GM精灵,PS金手指功能等等,由于我的使用时间较少,还只会GM的一些基本功能,所以就不向大家介绍了。   以上这些游戏修改都是针对单机游戏而进行的,对网络游戏就没有办法了。“传说”中修改网络游戏的工具有Winsock packet editor,NetXRay等,都不只是针对游戏修改的,但用它们的封包编辑及发送功能,可以达到网络游戏修改的目的。本人也正在摸索中,请各位大侠们多多指教,我的邮箱是mickey4@263.net。