游戏之家 > 游戏库

星际殖民 MOD制作教程 制作自己的飞船组件

首先大家不要看到MOD制作就开始联想到编程,算法,计算机语言。

ZERO发布的教程关于给飞船制作新的组件其实并不需要C#之类的计算机语言和编程基础,更不需要什么算法 。 你只需要了解基础的XML知识就可以了,我想很多网友经常修改XML文件,对XML已经轻车熟路了,不输给一个程序员。那么开始正题。

这次教程我们以给游戏中添加一个新的增强版的导弹发射器为例子,进行逐步讲解。

首先既然我们要制作一个新组件,那么必然是先定义一个新组件的XML文件,以让游戏识别。

SD关于所有飞船组件的定义在游戏目录ContentShipModules文件夹中,一个新的组件涉及到很多属性,比如组件类型(武器,护甲,护 盾),组件名字,组件耗电量等,这么多的属性,在没有开发文档之前,我们是不可能凭空创建的。所以我们直接在旧有的组件XML里面改然后在另存为就可以 了。

步骤:

1.打开ContentShipModules文件夹,找到RocketLauncher.xml文件(游戏默认的导弹发射器组件定义XML文件)

2.在同一目录下创建一个空白的xml文件,取名为RocketLauncherEnchanced.xml

3.将游戏默认的RocketLauncher.xml文件里面的内容全数复制到新建的RocketLauncherEnchanced.xml文件里,保存

我们创建的RocketLauncherEnchanced.xml文件内容如下(内容和原文件完全相同)

接着介绍其中对于我们这次制作MOD极为重要/需要改动的字段.

A. UID是每个组件的唯一标示符,通俗的说就像是每个人的名字一样,如果游戏要识别你制作的组件,你必须得给它取个独一无二的新名字,不能与其他旧有的组件,或是其他MOD里定义的新组件名字相同,既然是增强版的导弹发射器,我们就取名为RocketLauncherEnchanced吧(XML文件名必须与UID一致)

B. IconTexturePath是定义游戏里面组件要用到的图像资源.xnb文件,一 般都是Modules/资源名.xnb.这是一个相对路径,它的绝对路径是 游戏目录ContentTexturesModules。 关于给自己添加的组件定义及制作新的图像 我会在2L讲解。这里使用默认属性不修改,即游戏会显示会原版火箭发射器一样的图标。

C. NameIndex,DescriptionIndex 这两个字段对应游戏里面组件的名字和详细介绍2个文本的引用。引用的定义在游戏目录ContentLocalizationEnglish文件夹的 GameText_EN.xml文件里面。这个地方我自己在对着zero的教程制作的时候出了一个问题,导致添加组件之后游戏老是弹错。。。。调试半天才 发现,对于1.08版本来说,那个教程在这个地方已经过时。由于1.08版本游戏添加了对德语的支持,所以zero放弃使用老的 ContentLocalization里面的English.xml文件放游戏里面的所有文本,而是使用这个目录下新的ENGLISH目录的文件而产 生错误,对于德语文本时使用这个目下的GERMEN目录下的XML文件,所以1.08里面对游戏文本新加,修改,翻译等操作应该全部在新的ENGLISH 目录下的XML文件里进行。

那么我们为了给自己添加的组件在游戏里取个显示的名字和组件详细介绍,打开ContentLocalizationEnglish文件夹下的GameText_EN.xml文件,然后在最下面添加2个新的节点

如下图:

Index节点给这个token定义一个唯一标识符,数字最好是4000以上,不能与原作者 zero已经定义过的标识符冲突,你可以使用编辑器的搜索功能进行测试,比方说我用的windows文本编辑器打开的这个XML文件,你可以使用快捷键 ctrl+f打开搜索功能,然后搜索3888看上面ZERO有没有定义这个数字,如果没有 那么我们就可以使用了。好了现在我们定义了3888,3889两个字段,一个是新组件的名字 一个是介绍。 现在我们回到自己创建的RocketLauncherEnchanced.xml,找到NameIndex节点把属性改成3888,然后找到DescriptionIndex 把属性改成3889.

然后我们在修改这个增强版火箭发射器的详细游戏属性,比方说Mass对应他的质量是多少 我们可以把10改成8 ,Health字段它的生命值是多少我们可以改成120等等,最后我们自己定义的RocketLauncherEnchanced.xml文件

如图示

好了,现在我们的新组件增强版火箭发射器算是完成了一大半,现在还剩下一个问题,这个武器在什么科技研究完了之后才会解锁呢?

很明显,我们并没有告诉游戏,这个组件的定位。

打开ContentTechnology目录,火箭发射器对应的是missli theory科技,所以我们打开MissileTheory.xml文件,添加如下图所示

ModuleUID这个字段对应组件定义文件里面的UID字段,这样告诉游戏新的火箭发射器在玩家研究了MissileTheory科技之后会解锁。好了,需要改动的地方我们都该完了,

赶紧进游戏去看看吧?