制作第一个模组

1.生成模组框架

2.编译模组

3.查看、加载模组

4.浅析模组框架

5.修改模组

6.tML的自动加载

 


 

生成模组框架

0.11以后,tML里面集成了模组生成器。进入Mod Sources界面,点击右下角的Create Mod,填写完里面的四个字段再点击Create就可以新建模组。我填的依次是YourMod,Your Mod,YourName,YourSword,接下来也会用这个作为例子讲解。

 

编译模组

下拉,找到刚才新建的模组,点击项目下方的Build,等待编译完成。

 

查看模组

现在进入Mods界面可以找到你的模组,点击它右边的绿色小问号,显示出模组简介。

面板中的的Delete按钮用于在该模组未启用的时候删除它,Extract按钮用于提取模组中的内容(与build.txt有关),提取出来的内容在 ~\Documents\My Games\Terraria\ModLoader\Mod Reader\ 下查看。

 

加载模组

返回Mods界面,点击Reload Mods,选择角色,进入世界,拿10个土块可以在工作台旁边做一把剑,注意观察剑的伤害。

 

打开模组源文件夹

回到Mod Sources界面,点击正下方的Open Sources,弹出模组源文件夹。记住这个文件夹的路径,以后会经常用到它。

如果想像上面一样编译其他途径获得的源码,第一步就是把它移到这个目录下,这样才能在Mod Sources界面里找到它。

刚才创建的模组框架也在这个文件夹里,接下来我们会具体介绍这里面有什么,以及做一些游戏中可见的简单改动。

 

模组框架浅析

文件浏览器导航至YourMod,这一步我们先理清楚每一个文件/文件夹的作用。

Items:

物品(Item)分类文件夹,现在里面有YourSword的C#源文件和它的精灵图(sprite)。之后写抛射物和光环等的时候会继续创建Projectiles、Buffs等的文件夹,并把相关的源文件和图片放在里面,这种文件结构能使模组更加易于阅读。

build.txt:

用于在编译的时候加入一些信息,比如作者、版本号、模组依赖等等,同时它与Extract能提取出的内容有关。如果要发布你的模组,仔细研究一下这里:tMLWiki/build.txt

示例配置如下(注释去掉):

YourMod.csproj和Properties:

Visual Studio项目文件和配置。项目文件包含开发过程中常用的引用,而配置文件包含编译和调试过程中会用到的各种路径。

YourMod.cs:

//TODO

description.txt和icon.png(可加)

模组简介和模组左侧的图标,让它们好一点。图标要求80x80大小,这里提供一个边框

 

修改模组

了解了模组项目里的各部分作用之后,现在把能动的build.txt、description.txt和Items都稍微动一下。

1.在build.txt中加上一行hideResources=true,保存,编译,重新加载模组,提取它,看看能不能得到YourSword的精灵图。

2.把description.txt里的内容改成hello,保存,编译,看看模组简介是不是变了。

3.用文本编辑器打开YourSword.cs,把item.damage后的数字改成5000,保存,编译,重新加载模组,看看剑的伤害是不是还是50。

4.提供一把树中剑,把它放到Items文件夹里,再把YourSword.png删掉,编译,按理说应该报错了,看看下面的自动加载规则,把它改正过来。

 

tML的自动加载

模组里的物品、抛射物和NPC都需要至少一张精灵图来使它们显示在游戏中,如果重写加载函数会非常麻烦。tML中用自动加载(Autoload)来解决这个问题,通过命名空间(和特性)定位图片。

以Items里的这把剑为例,如果tML想要把YourSword类对应的精灵图加载到游戏中,会进行如下处理:

1、取得模组源文件夹路径(~\Documents\My Games\Terraria\ModLoader\Mod Sources\

2、将命名空间中的 . 转换为反斜杠(\)添加到模组源文件夹路径后(...\YourMod\Items

3、在这个路径下寻找类名+ .png 的图片(...\YourSword.png

4、找不到就会抛错,编译失败。

上面的规则意味着只要图片的命名和放置正确,C#源文件放哪,改什么名都没关系,但千万不要这么做。

一般习惯是贴图和源码放在一起、贴图和源码的文件名和类名保持一致,源码的命名空间和所在的文件夹保持一致,这样方便阅读

 

再以一个头盔为例,如果自动加载已经把它的物品贴图加载到物品栏中,需要装备在身上的时候把它外显出来:

//TODO

posted @ 2019-08-16 17:52  kotkot  阅读(454)  评论(0编辑  收藏  举报