《英雄无敌》3MOD——深渊号角——回城术修改(让没有土系高级英雄也能选择城堡)
一、前言
《英雄无敌》3MOD《深渊号角》的回城术,不像二代那样分大小回城术,而是根据英雄的土系属性是否达到高级或以上级,分大小回城术。有的英雄,可能很难出现土系属性让其发展,对于这样的英雄也就永远没有大回城术使用了,这无疑是这样的英雄的悲哀!
这次修改就是让所有英雄,只要能学到回城术,就可以选择到达想去的城堡。
本次修改是在《深渊号角》英文版1.8.0上修改的。
二、逆向过程
1、CE查找字符串
《深渊号角》游戏对字符串已经作了处理,反正用OD是搜不到的,无论有没有加载,因此想通过字符串查找到回城术的子程序是行不通的。那应该如何查找呢?
在前面《英雄无敌》3回城术修改一文中已经说明过,可以使用CE进行字符串查找。
在没有修改前,没有土系高级魔法技能的英雄使用回城术只能返回最近的城堡,若最近城堡被其他英雄占据,则会出现回城不成功的信息

不成功的信息就是Nearest Town Occupied。这就是关键字符串

打开游戏,用ce加载游戏

打开ce的内存观察框,搜索字符串Nearest town

右键选择地址,将其添加到列表中

在内存观察对话框里,选择工具栏调式(debug),勾选位断点(会有提示,选确认)。再在列表框里右键选择刚添加的地址,选中“找出什么访问了该地址”,出现如下的空白对话框

这时到游戏中,将一个英雄进入城堡,而要施放回城术的英雄就在城堡旁边(即最近的城堡被占用,让施法失败的提示信息出现).这时刚刚空白的对话框里就出现了2条访问所选地址的信息。打开信息资料,就找到地址:

2、OD定位到ce查到的地址
打开OD,attach游戏,再go to地址:4F6C67

向上翻找,就发现了子程序004F6C00,这个就是回城术调用程序里需要调用的一个子程序(也就是说,回城术子程序里一定会出现调用这个子程序的地方)

然而,很遗憾,在win11(25H2,OS:26200.9168)里,OD或者X32DBG都不能正常运行调式了。因此,直接逆向已经不可能,必须另寻方法。
3、TXT文件查找地址
在OD里,将全部内容复制到一个txt文件里,然后查找子程序4F6C00

根据以前的博文
https://www.cnblogs.com/dark-f/p/18459613
可以知道,回城术的子程序在调用这个子程序时,前后的一些关键信息,可以在txt文件中通过搜索子程序4F6C00注意上下文的情况,可以很快定位到如下地址

再向上翻找,就可以定位到关键比较处

只要把比较数值的2改成0即可,这个可以回到OD里去修改,再保存修改后的游戏即可。
三、测试
用修改后游戏,再使用回城术,结果可以看到,已经出现城堡选择了,说明修改成功。

《英雄无敌》3MOD《深渊号角》的回城术,不像二代那样分大小回城术,而是根据英雄的土系属性是否达到高级或以上级,分大小回城术。有的英雄,可能很难出现土系属性让其发展,对于这样的英雄也就永远没有大回城术使用了,这无疑是这样的英雄的悲哀!
这次修改就是让所有英雄,只要能学到回城术,就可以选择到达想去的城堡。
本次修改是在《深渊号角》英文版1.8.0上修改的。
浙公网安备 33010602011771号