[莫塔之子]使用dnSpy修改DLL文件的方法
首先感谢原贴作者cafeguest的帖子,详细的数值修改请参考此贴内容↓已知几个dll修改位置,攻速,攻击力,掉率,金币,技能点,经验
因为并没有详细说明使用步骤,为免有人需要,在这里发一篇详细的图文教程.
1.我们需要准备dnSpy软件,这个软件度娘一下到处都有下载.
2.下载好之后,打开软件,左上角 文件→打开,选择游戏目录下的Assembly-Csharp.dll文件
例如:..\ChildrenOfMorta\ChildrenOfMorta_Data\Managed
3.然后就可以看到左侧程序集资源管理器下出现相关内容
4.然后我们就可以参考上面链接中的帖子,来进行修改了.
例如:我们找到Zyklus.Stat下的StatStaticDataContainer下的AddXPDirect
找到需要修改的行
右键选择"编辑IL指令",将目标数值改为100即可
5.改好之后,直接保存退出.然后进入游戏,开爽.
PS:
我完全不懂汇编,只是给出一个简单的修改教程,不要提问我也没办法回答.
相关的具体数据修改请参考文首的帖子.
你是怎么在xp_gain后面加*100F的,编辑IF怎么添加内容 右键点编辑。 右键点了编辑之后出现了一个编辑方法体,求大神说的再详细点 简单说一下使用IL编译修改的方法.抱歉由于出门旅游,身上只带了笔记本,没游戏没工具没办法截图.
某些需要修改添加的语句,无法使用C#直接编译.
可以使用IL指令的方法解决,方法如下:
1.在你需要进行修改的语句上,鼠标右键,选择IL指令.这个时候,会发现代码以汇编的形式展示
2.这个时候,你选择的语句,是背景高亮状态,能够清晰的看出语句在汇编下的范畴.
3.找到包含类似"value"的语句,例如1楼例子中,我们可以在汇编语句中找到xp_value或者xp_gain这行
4.然后鼠标右键,选择在此命令行下添加行, 命令选择ldc.r4,数值为100
5.继续鼠标右键,选择此命令下添加行,选择mul
6.这个时候,就相当于添加了一个 * 100 倍的命令.
大致显示格式例子为:
行61 ........xp.value
行62 ldc.r4 100
行63 mul
行64 这里是原本行62的信息.....
大致上以这种方法就可以了.
大佬还需要详细的步骤图演示下,,,一脸懵逼,或者有什么视频教学没,自己学也行。 3.找到包含类似"value"的语句,例如1楼例子中,我们可以在汇编语句中找到xp_value或者xp_gain这行 我是找不到这句……我大概被自己蠢死
1.首先,我们找到一些本身没有办法直接用C#添加倍率修改的数值项.
比如掉率的配置.
zuklus.LootLootDropperComponent
if (RandomUtility.TryChance(this.drop_paramters_chance_.pItem2.GetValue() * 10f))
我们会发现使用直接编辑的方法会报错,但是IL指令编辑又没有明确的直接修改数值的方法,所以,我们就要自己去添加汇编代码,来实现添加一个乘法的语句.
2.在需要修改的行上,我们右键选择IL编辑打开.会发现此行代码的汇编是背景高亮显示的.
并且,我们可以从里面找到pItem2.GetValue()对应的代码
3.在我截图中标记的位置可以单独选中这行,然后右键选择"在选区后添加指令"
4.如图所示,我们需要添加两行新指令
5.将第一行的"操作码"改为ldc.r4,"操作符"数值添加30
将第二行的"操作码"改为mul,然后确定即可
顺便说一下,mul的意思就是乘法,而ldc的作用是放置一个数据,所以合起来就是乘以这个数值了
6.这个时候,我们就会发现在代码后面有了*30f的数据了,此后,保存即可.
太感谢楼主了!!!,那个贴没有IL修改的方法,看的我一头雾水!,感谢~~~ 谢谢各位大佬分享 jinguwangtian 发表于 2019-9-15 19:45
1.首先,我们找到一些本身没有办法直接用C#添加倍率修改的数值项.
比如掉率的配置.
zuklus.LootLootDroppe ...
求大佬修改一个最新的,修改金钱和爆率就好
现在用 dnSpy 直接编辑(右键代码 - 编辑方法)不会报错了。
不清楚当初 报错 是游戏的原因,还是 dnSpy 的原因,但是现在没事了。 学习了,感谢分享 学习了,学会了。 请教个问题,我修改的另外一个游戏,我修改assembly内数值后原版游戏可以玩,mod版本进入就闪退是什么原因 6666666666666666666666666666666666
页:
[1]