跳至正文

未分类

教程编写注意事项

近期收到了不少裙友的编写教程的意愿,我非常开心有越来越多的人希望加入维护裙中世界这个MOD社区。在此,我也对编写教程的各位提出一点小要求,以此来确保裙中世界教程的高质量和整体风格的统一性。满足这些要求的投稿才会通过审核哦。

如果对此有疑问,欢迎找我咨询。如果对其他教程有修改或者更新建议也欢迎进行重写。

阅读更多 »教程编写注意事项

IL基础教程① 认识IL和IL补丁编写方式

大家好啊,我是人,你们也可以叫我龙舞。这个系列教程主要讲的是IL的应用。那么首先啊我们先来认识一下IL是什么。

介绍

IL是一种肥肠之弔的技术,通过IL编辑,你就可以用mod来魔改TR源代码,而不需要用TML提供的API(或者说是Hook 钩子)。IL是中间语言(Intermediate Language)的缩写,简单来说我们就是再按照需要编辑已经编译好的代码,这对于一些奇奇怪怪的弔需求很有用。注意,在进行IL编辑的同时,请各位亲爱的带朋友小朋友确保你们的代码兼容了其他mod可能会修改的同一处内容,不然会出申必bug。IL就是如此之弔,但是能用TML的API还是尽量用吧,那玩意兼容性比IL好多了。

P.S: 微软说过CLR(Common Language Runtime,通用语言运行平台)会在运行的时候内嵌短方法(short method)这些方法不能用IL编辑,但是微软没说啥算短方法,可能Properties算是一种,但是咱们也涉及不到这玩意。

阅读更多 »IL基础教程① 认识IL和IL补丁编写方式

魔改进阶——Mod联动


主流方法

我们说几个Mod之间有联动,一般是指Mod之间可以互相引用对方的内容。要实现这个功能,我们一般可以通过:

  1. 强弱引用/依赖:也就是在build.txt中标记依赖哪些Mod,然后通过引用这些Mod的程序集来修改内容。这种方法可以享受到代码高亮以及自动补全,是比较推荐的做法。
  2. 反射:利用.Net提供的反射方法去动态获取需要修改的属性,好处是比较自由,而且能访问第一种方法无法访问的一些属性。坏处就是代码量大,而且性能差,可读性差。
  3. Call接口:有些Mod会显式提供Call接口给其他Mod传参数,具体用法要看各个Mod的实现(比如BossChecklist)。优点是基本不会受到版本更新的影响,缺点是局限性大,没法自由的更改。

当然,也可以把几种方法结合起来,但是无论你用的是哪种方法,一定要先获取目标Mod的源码,你才能知道具体有哪些属性是你需要修改的。此外,在进行Mod联动的时候,一定要知道对方的Mod有没有被加载,如果没有加载那么你进行的操作其实是无效的,而且还会报错。

阅读更多 »魔改进阶——Mod联动