3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 21713|回复: 16
打印 上一主题 下一主题

[原创] [莫塔之子]使用dnSpy修改DLL文件的方法

[复制链接]

1

主题

29

帖子

130

积分

中级玩家

Rank: 3Rank: 3

贡献度
8
金元
975
积分
130
精华
0
注册时间
2011-7-15
跳转到指定楼层
主题
发表于 2019-9-12 01:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先感谢原贴作者cafeguest的帖子,详细的数值修改请参考此贴内容↓
已知几个dll修改位置,攻速,攻击力,掉率,金币,技能点,经验

因为并没有详细说明使用步骤,为免有人需要,在这里发一篇详细的图文教程.

1.我们需要准备dnSpy软件,这个软件度娘一下到处都有下载.


2.下载好之后,打开软件,左上角 文件→打开,选择游戏目录下的Assembly-Csharp.dll文件
例如:  ..\ChildrenOfMorta\ChildrenOfMorta_Data\Managed


3.然后就可以看到左侧程序集资源管理器下出现相关内容



4.然后我们就可以参考上面链接中的帖子,来进行修改了.
例如:我们找到Zyklus.Stat下的StatStaticDataContainer下的AddXPDirect


找到需要修改的行



右键选择"编辑IL指令",将目标数值改为100即可


5.改好之后,直接保存退出.然后进入游戏,开爽.


PS:
我完全不懂汇编,只是给出一个简单的修改教程,不要提问我也没办法回答.
相关的具体数据修改请参考文首的帖子.


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

1

查看全部评分

回复

使用道具 举报

41

主题

2339

帖子

2662

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
35
金元
25219
积分
2662
精华
0
注册时间
2009-3-5

G胖の微笑

舒服的沙发
发表于 2019-9-12 20:52 | 只看该作者
你是怎么在xp_gain后面加*100F的,编辑IF怎么添加内容
回复 支持 1 反对 0

使用道具 举报

3

主题

1365

帖子

2170

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
28
金元
20584
积分
2170
精华
0
注册时间
2009-10-30

G胖の微笑3DMer

硬硬的板凳
发表于 2019-9-13 11:59 | 只看该作者
右键点编辑。
回复 支持 反对

使用道具 举报

8

主题

163

帖子

273

积分

高级玩家

Rank: 4

贡献度
8
金元
2411
积分
273
精华
0
注册时间
2013-2-14
冰凉的地板
发表于 2019-9-13 15:24 | 只看该作者
右键点了编辑之后出现了一个编辑方法体,求大神说的再详细点
回复 支持 反对

使用道具 举报

1

主题

29

帖子

130

积分

中级玩家

Rank: 3Rank: 3

贡献度
8
金元
975
积分
130
精华
0
注册时间
2011-7-15
5#
 楼主| 发表于 2019-9-13 23:14 | 只看该作者
简单说一下使用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的信息.....

大致上以这种方法就可以了.
回复 支持 反对

使用道具 举报

13

主题

478

帖子

765

积分

超级玩家

Rank: 5Rank: 5

贡献度
10
金元
7147
积分
765
精华
1
注册时间
2016-12-17
6#
发表于 2019-9-14 13:04 | 只看该作者
大佬还需要详细的步骤图演示下,,,一脸懵逼,或者有什么视频教学没,自己学也行。
回复 支持 反对

使用道具 举报

0

主题

216

帖子

304

积分

高级玩家

Rank: 4

贡献度
0
金元
3037
积分
304
精华
0
注册时间
2016-10-3
7#
发表于 2019-9-15 11:12 | 只看该作者
3.找到包含类似"value"的语句,例如1楼例子中,我们可以在汇编语句中找到xp_value或者xp_gain这行
回复 支持 反对

使用道具 举报

0

主题

216

帖子

304

积分

高级玩家

Rank: 4

贡献度
0
金元
3037
积分
304
精华
0
注册时间
2016-10-3
8#
发表于 2019-9-15 11:13 | 只看该作者
我是找不到这句……我大概被自己蠢死
回复 支持 反对

使用道具 举报

1

主题

29

帖子

130

积分

中级玩家

Rank: 3Rank: 3

贡献度
8
金元
975
积分
130
精华
0
注册时间
2011-7-15
9#
 楼主| 发表于 2019-9-15 19:45 | 只看该作者
1.首先,我们找到一些本身没有办法直接用C#添加倍率修改的数值项.
比如掉率的配置.
zuklus.Loot  LootDropperComponent
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的数据了,此后,保存即可.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 2 反对 0

使用道具 举报

59

主题

3123

帖子

4129

积分

游戏精英

Rank: 8Rank: 8

贡献度
227
金元
32209
积分
4129
精华
0
注册时间
2008-1-3

3DM MOD站(白银)

10#
发表于 2019-11-5 14:15 | 只看该作者
太感谢楼主了!!!,那个贴没有IL修改的方法,看的我一头雾水!,感谢~~~
回复 支持 反对

使用道具 举报

1

主题

78

帖子

415

积分

高级玩家

Rank: 4

贡献度
9
金元
3785
积分
415
精华
0
注册时间
2009-6-11

小罗~

11#
发表于 2020-6-4 13:18 | 只看该作者
谢谢各位大佬分享
回复 支持 反对

使用道具 举报

18

主题

1261

帖子

1200

积分

游戏狂人

Rank: 6Rank: 6

贡献度
5
金元
11804
积分
1200
精华
0
注册时间
2011-2-23
12#
发表于 2020-7-2 22:10 | 只看该作者
jinguwangtian 发表于 2019-9-15 19:45
1.首先,我们找到一些本身没有办法直接用C#添加倍率修改的数值项.
比如掉率的配置.
zuklus.Loot  LootDroppe ...

求大佬修改一个最新的,修改金钱和爆率就好
回复 支持 反对

使用道具 举报

3

主题

314

帖子

1382

积分

游戏狂人

Rank: 6Rank: 6

贡献度
167
金元
6939
积分
1382
精华
2
注册时间
2019-9-26
13#
发表于 2020-8-25 21:18 | 只看该作者
现在用 dnSpy 直接编辑(右键代码 - 编辑方法)不会报错了。
不清楚当初 报错 是游戏的原因,还是 dnSpy 的原因,但是现在没事了。
回复 支持 反对

使用道具 举报

0

主题

91

帖子

196

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
1963
积分
196
精华
0
注册时间
2016-2-6
14#
发表于 2020-8-28 01:36 | 只看该作者
学习了,感谢分享
回复 支持 反对

使用道具 举报

0

主题

189

帖子

253

积分

高级玩家

Rank: 4

贡献度
0
金元
2527
积分
253
精华
0
注册时间
2012-7-5
15#
发表于 2021-2-22 17:00 | 只看该作者
学习了,学会了。
回复 支持 反对

使用道具 举报

0

主题

5

帖子

63

积分

初级玩家

Rank: 2

贡献度
0
金元
630
积分
63
精华
0
注册时间
2015-8-7
16#
发表于 2022-11-21 21:36 | 只看该作者
请教个问题,我修改的另外一个游戏,我修改assembly内数值后原版游戏可以玩,mod版本进入就闪退是什么原因
回复 支持 反对

使用道具 举报

14

主题

2619

帖子

2812

积分

游戏达人

凝默Akali 丶

Rank: 7Rank: 7Rank: 7

贡献度
65
金元
25520
积分
2812
精华
0
注册时间
2010-12-27
17#
发表于 2023-4-7 23:22 | 只看该作者
6666666666666666666666666666666666
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-2-7 20:39 , Processed in 0.154292 second(s), 16 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表