百合文库
首页 > 网文

Rimworld的MOD教程#7#简单的逻辑定义

2023-03-09MOD教程环世界Rimworld 来源:百合文库
从这章开始,我们需要额外的2个工具
1.用于反编译游戏DLL,我用的是dnSpy
2.用对新的DLL开发,我用的是Visual Studio 2017
这里会涉及到C#编程,要求开发者有一定的基础,不然是进行不下去的
游戏的引擎是基于.net 3.5的,所以之后的操作都是基于这个
游戏核心代码
RimWorldRimWorldWin_DataManagedAssembly-CSharp.dll
RimWorldRimWorldWin_DataManagedUnityEngine.dll
前者非常重要,后者在简单的制作中并不需要
Visual Studio 2017建立项目
1.打开
Visual Studio 2017
2.菜单中操作:文件-》新建-》项目
新建一个项目
3.选择左边的C#,然后选择类库(Framwork)类型,并确认下边是3.5版本,名称无所谓,我写的是Miao_Rimworld,然后右下确认
设置项目类型
3,得到项目之后,我们需要把游戏的DLL增加引用。右击项目-》增加-》引用
增加引用
4.选择浏览,然后在游戏路径里找到2个DLL,点击添加
找到DLL
5.然后自动返回这个窗口,但是他不会显示你刚才添加的东西,不用管的,直接点确认
应该是BUG
6.检查左边程序集出现了刚才添加的,说明成功了
a.可以把源码的名字修改了,方便生成DLL的时候不需要重命名
b.在源码引用Rimworld和Verse,这个2个东西都是来自于Assembly-CSharp.dll
c.命名空间修改为和游戏一样,不然Defs里调用需要增加命名空间名字,或者你喜欢这样的设计的话
做好前期工作
准备工作到此完毕,以后是不需要重复操作的,直接打开项目就行
dnSpy的准备操作
打开dnSpy
菜单操作:文件-》打开
菜单操作
3.选择之前路径的Assembly-CSharp.dll就可以了
增加Assembly-CSharp.dll
4.确认增加成功
成功增加
这也是一次性操作,以后直接打开dnSpy就可以了
允许死者衣服
很多人对这个MOD不陌生,其实实现做起来非常的简单
和之前做Defs类似,我们先用IntelliJ IDEA搜索游戏里原本的【允许非死者衣服】
(当然也可以抛弃IntelliJ IDEA,直接用VS来开发MOD,但是VS的搜索功能实在是呵呵呵呵)
然后找到定义并复制出来
修改一下
可以我们可以看到它调用了游戏里的SpecialThingFilterWorker_NonDeadmansApparel逻辑
我们需要先把它复制出来
在dnSpy里搜索程序集SpecialThingFilterWorker_NonDeadmansApparel
搜索
很快就找到了他的逻辑,我们把这里全部复制到VS的代码里,并修改一下逻辑和重命名
修改后的逻辑和名字
然后点击生成
生成操作
并把得到的DLL复制到MOD里,修改之前过滤条的调用逻辑
MOD更新
然后就可以进入游戏进行测试了
游戏里出现新过滤
游戏里出现了选项卡
当我们把【非死者】和【死者】都取消勾选的时候,小人是没办法工作的,没有材料
只勾选【非死者】也是如此
只有把【死者】勾上才能把衣服烧掉了
这里我就不上图了
允许新鲜物体
同理,我们可以增加一个相对于【允许腐烂物】的新过滤
Defs
DLL
执行效果我就不放图了
这里涉及的逻辑我就不说了,涉及到更复杂更底层的执行机制,有空的话我会写个文档

猜你喜欢