石油大亨实现透视效果的过程记录

查看 195|回复 10
作者:什么都只会一点   
【前言】该贴并未有技术难点,只是用于记录,方便以后修改
【示例游戏】石油大亨(Steam正版)
【所需工具】dnSpy(爱盘里面有下载)
【开始操作】
因为是Unity游戏,而且未加密,直接使用
[color=]dnSpy
将安装目录下的
[color=]Turmoil_Data\Managed
文件夹下的所有dll文件打开
要想修改实现透视,首先需要找到一些关键词,目前并未拥有关键词,所以使用通用关键词“
[color=]buy



b1df06257e56df881f297ef068794bae.png (151.81 KB, 下载次数: 0)
下载附件
2023-8-7 11:39 上传


这里找到一个方法“
[color=]BuyMole
”,有道翻译了一下是买鼹鼠的方法
如果正常修改金额,到这里就已经结束了,直接修改“
[color=]this.Data.Money
”相关的内容即可
因为修改透视效果,这里不是我们想要的,不过也能获取到另一个关键词“
[color=]Mole

尝试搜索“
[color=]Mole
”关键词


2a086fe8ae467cf73a11e3e3b477f6be.png (160.19 KB, 下载次数: 1)
下载附件
2023-8-7 11:39 上传


这里找到一个方法“
[color=]DoMoleTick
”,猜测应该是处理鼹鼠帧动作的方法
经过分析,发现如图所示疑点,猜测可能是使地面暴露,也就是我们需要的内容
直接让所有地面暴露,不就是透视效果了么
我们查看这个方法的所在类


51090d013735d58cfa9f9a5d51c91ad9.png (184.03 KB, 下载次数: 1)
下载附件
2023-8-7 11:39 上传


这个类除了“
[color=]UncoverSingle
”方法还有“
[color=]UncoverRange
”方法,猜测可能是范围使地面暴露
因为鼹鼠挖掘暴露的只有一小格,而其他例如扫描器暴露的就是一个范围
分析被调用,发现果然如猜测所示,调用该方法的,确实有扫描器
这时候想要修改透视其实有很多种方法了,我提供以下修改方法


b3d3de96d48d0e21c6dde01fbb2d60c4.png (38.98 KB, 下载次数: 1)
下载附件
2023-8-7 11:39 上传


因为“
[color=]UncoverSingle
”方法只有鼹鼠调用,我直接在该方法里面调用“
[color=]UncoverRange
”方法
这样做鼹鼠就能够范围挖洞实现透视效果
值得注意的是,该方法整型变量采用“
[color=]Fix32
”类型,所以需要用如图方式声明整型对象
其中“
[color=]p
”是当前对象位置,“
[color=]range
”是暴露地面范围,我这里给值1000就是很大的范围,相当于全图暴露,你也可以给其他值让鼹鼠一次挖多个格子,“
[color=]intensity
”是强度,填1即可
这样就实现了放下鼹鼠,直接全图暴露,具体效果就不演示了

方法, 鼹鼠

目录   

楼主大大,BuyMole和DoMoleTick我编辑方法都会编译报错啊,


微信截图_20230808144819.png (18.31 KB, 下载次数: 0)
下载附件
2023-8-8 14:48 上传

如图,
我想把this.Data.OwnedDiamonds++;改成this.Data.OwnedDiamonds=this.Data.OwnedDiamonds+5; 但是不让编译
PS:明明这个DoMoleTick就没几行,报错行所在1536行
powerbike   

不知道为什么突然想起了魔兽世界里的隐形兔子
good7801   

Turmoil_Data\Managed文件夹下的所有dll文件都能够替换吗?
hjtkxg   

为什么具体效果就不演示了
薄荷味的白衬衫   

666,楼主写的很详细,学到了,谢谢
什么都只会一点
OP
  


good7801 发表于 2023-8-7 18:07
Turmoil_Data\Managed文件夹下的所有dll文件都能够替换吗?

dnSpy只会保存修改后的文件,实际上只修改了一个dll文件,其他的文件不会被替换掉
什么都只会一点
OP
  


hjtkxg 发表于 2023-8-7 20:19
为什么具体效果就不演示了

写教程的时候是另一台电脑,没截图
alicc   

老哥技术可以 支持
alicc   

希望多发点 u3d系列的教程
您需要登录后才可以回帖 登录 | 立即注册

返回顶部