石油大亨实现透视效果的过程记录
本帖最后由 什么都只会一点 于 2023-8-7 11:57 编辑【前言】该贴并未有技术难点,只是用于记录,方便以后修改
【示例游戏】石油大亨(Steam正版)
【所需工具】dnSpy(爱盘里面有下载)
【开始操作】
因为是Unity游戏,而且未加密,直接使用dnSpy将安装目录下的Turmoil_Data\Managed文件夹下的所有dll文件打开
要想修改实现透视,首先需要找到一些关键词,目前并未拥有关键词,所以使用通用关键词“buy”
这里找到一个方法“BuyMole”,有道翻译了一下是买鼹鼠的方法
如果正常修改金额,到这里就已经结束了,直接修改“this.Data.Money”相关的内容即可
因为修改透视效果,这里不是我们想要的,不过也能获取到另一个关键词“Mole”
尝试搜索“Mole”关键词
这里找到一个方法“DoMoleTick”,猜测应该是处理鼹鼠帧动作的方法
经过分析,发现如图所示疑点,猜测可能是使地面暴露,也就是我们需要的内容
直接让所有地面暴露,不就是透视效果了么
我们查看这个方法的所在类
这个类除了“UncoverSingle”方法还有“UncoverRange”方法,猜测可能是范围使地面暴露
因为鼹鼠挖掘暴露的只有一小格,而其他例如扫描器暴露的就是一个范围
分析被调用,发现果然如猜测所示,调用该方法的,确实有扫描器
这时候想要修改透视其实有很多种方法了,我提供以下修改方法
因为“UncoverSingle”方法只有鼹鼠调用,我直接在该方法里面调用“UncoverRange”方法
这样做鼹鼠就能够范围挖洞实现透视效果
值得注意的是,该方法整型变量采用“Fix32”类型,所以需要用如图方式声明整型对象
其中“p”是当前对象位置,“range”是暴露地面范围,我这里给值1000就是很大的范围,相当于全图暴露,你也可以给其他值让鼹鼠一次挖多个格子,“intensity”是强度,填1即可
这样就实现了放下鼹鼠,直接全图暴露,具体效果就不演示了 大佬写的真的很详细了,从分析过程到修改方法使我大受震撼。
作为纯纯的菜鸟用户,不学计算机一点基础都没有的那种,
仔细琢磨了一番大佬的操作后成功实现了全图暴露效果。
真的是大受震撼,按照大佬的修改方法操作后,鼹鼠挖下第一个格子是正常暴露一个三角。此时我陷入深深地自我怀疑,是不是哪里搞错了。
当鼹鼠挖第二下,全图瞬间暴露。激动的心颤抖的手...大佬牛x!
---
简单总结一下实现效果的简明教程,以备游戏更新后和各位石油大亨复用。
个人观点,如有问题请大佬指教。
1.结束运行游戏。站内爱盘下载、解压、运行dnSpy。
2.dnSpy左上角文件-打开-选中游戏安装目录下Turmoil_Data\Managed 文件夹,全选该文件夹下所有.dll文件,点击打开。
3.点击左边栏“程序集资源管理器”任意位置,Ctrl+A全选所有程序集,(此时弹出反编译进度条),完成后点击右侧代码框。
4.软件左上角工具栏,点击“编辑”-“搜索程序集”,在显示在代码框下方的搜索栏输入搜索“UncoverSingle”
5.搜索到一个结果,(如果操作正确,此处“UncoverSingleUncoverSingle”应为橙色字体,这一行后面是Turmoli.Ground),双击这一行,上方代码框跳转到对应位置。
6.代码框右击,选择“编辑方法”。弹出新窗口。(窗口名应为“修改代码- UncoverSingle(GamePosition) : GroundPanel? @060001FE ”,至少当前版本是这样。)
7.参考楼主最后一张图片进行修改,在第13行代码下面插入图中红框内的三行代码
注意:英文半角输入,注意大小写、空格、等号、分号,要与图片一模一样。楼主图片中第16行代码末尾有一个分号被红框挡住,也要加上。
Fix32 range = new Fix32(1000);
Fix32 intensity = new Fix32(1);
UncoverRange(p, range, intensity);
↑这个样子。每行前面的空格也要和图片一样。
8.输入完毕后点对话框右下角“编译”(或按F6),如果下方没有红色叹号的报错,该编辑窗口自动关闭,则代表操作正确。
9.软件左上角文件-全部保存,确定。
10.关闭dnSpy,石油大亨,启动!
最后再谢谢大佬,所有股份外加100W金的成就实在是难以完成呜呜呜呜 本帖最后由 目录 于 2023-8-8 14:52 编辑
楼主大大,BuyMole和DoMoleTick我编辑方法都会编译报错啊,
如图,
我想把this.Data.OwnedDiamonds++;改成this.Data.OwnedDiamonds=this.Data.OwnedDiamonds+5; 但是不让编译
PS:明明这个DoMoleTick就没几行,报错行所在1536行 不知道为什么突然想起了魔兽世界里的隐形兔子 Turmoil_Data\Managed文件夹下的所有dll文件都能够替换吗? 为什么具体效果就不演示了 666,楼主写的很详细,学到了,谢谢 good7801 发表于 2023-8-7 18:07
Turmoil_Data\Managed文件夹下的所有dll文件都能够替换吗?
dnSpy只会保存修改后的文件,实际上只修改了一个dll文件,其他的文件不会被替换掉 hjtkxg 发表于 2023-8-7 20:19
为什么具体效果就不演示了
写教程的时候是另一台电脑,没截图 老哥技术可以 支持 希望多发点 u3d系列的教程 看來我以後也是石油大亨了,哈哈哈