1.DAT文件
DAT文件是当前可以MOD最主要的部分,也是最容易修改的部分,多数MOD教程都有对特点DAT文件的修改介绍,所以这里就只介绍一些基础性的知识.
DAT文件首先需要使用dat2txt转换成txt文件才能进行修改.新建txt文件也可以,但是要保证编码格式为UTF-16,如果你没有这个能力,还是修改转换过来的txt文件来得简单.dat2txt软件建议使用py版本的,因为可以看到源代码,并且有tl2_dat_strings.txt文件(exe版本不确定是否有),会很有优势.
DAT文件的结构是一个嵌套型的结构,使用[XXX]...[/XXX]的结构来进行嵌套,其中XXX为相应嵌套关键字,省略号里的内容为此关键字下定义的数据.具体什么时候需要进行嵌套,请自行参考相似文件.
一个DAT文件的嵌套结构可能是:
[A]
...
...
...
[C]
...
[/C]
...
[/A]
这样的多层结构,甚至更加复杂,所以在修改这样的文件时,很可能因为嵌套对应错误而发生无法转换的情况(技能修改常出现这个问题).
当你嵌套结构有误时,其报错方式是停留在dos窗口,并显示类似如下的报错情况:
因此,只要你看见line XXX的错误,你直接到对应行找嵌套错误就可以了.
对于DAT文件内的一行数据,比如: STRENGTH_REQUIRED:30
其中中的内容是数据类型,包括:
INTEGER:整型,也就是整数,一般来说应该是32位的,范围为-2,147,483,648 到2,147,483,647.但是部分GUID的 类型也是INTEGER,其实际为64位整型,也就是INTER64 INTEGER64:64位整型,范围为-9,223,372,036,854,775,808
到9,223,372,036,854,775,807.所以写GUID时千万别超过这个范围. FLOAT:浮点数,也就是小数.
STRING:字符串型,也就是一组字符,比如一个路径,一个名字等等.
BOOL:布尔型,只有两个值,true代表真,false代表假.
TRANSLATE:翻译型,也就是显示在游戏中的文字,如果是中文版的游戏,这一项可以为中文.此外这一项还可以使用一些特定的关键字来调用游戏内部参数,也可以用十六进制的颜色表示来设定显示颜色.
和:之间的部分(例子中STRENGTH_REQUIRED)是关键字:
所谓关键字,就是定义这一项属性是什么,比如STRENGTH_REQUIRED就是这件装备的力量要求.
一般关键字的选择只能从同类文件中寻找,因为你所写的关键字只要和系统内设定的有一点点不一致,就无法生效,并且有可能导致无法转换回DAT文件.
但是有些时候盲目地找关键字会很麻烦,所以这里有一个小技巧:在tl2_dat_strings.txt中找,这个文件在py版的dat2txt中有.
tl2_dat_strings.txt中列出了所有已经解析出来的,可以转换的可能关键字,如果某个关键字不在这个列表里,其在最后的txt文件中一定是以hash码的形式存放的,比如0x9b4df640.
:后的部分是该属性的具体值:
必须要满足该值与数据类型的一致性才能进行转换.
2.HIE文件
MEDIA文件夹内的HIE文件只有两个:FEATURETAGS.HIE和UNITTYPES.HIE,前者可能是定义一些物件的,后者是定义物品类型的.
HIE文件也可以使用dat2txt进行转换.
3.TEMPLATE文件
TEMPLATE文件是定义地图类型的,完成部分地图参数,地图随机性,地图声效,光影等方面的设定,上一级文件是DUNGEONS文件夹内的文件,下一级文件是通目录下子文件夹内的LAYOUT文件.
TEMPLATE文件也可以使用dat2txt进行转换.
4.ANIMATION文件
ANIMATION文件是定义模型动作参数的文件,可以使用dat2txt进行转换.1代的模型有类似的文件,不过可以之间用记事本打开,移植时需要注意二代的ANIMATION文件会多一些参数,需要手动添加.
5.SKELETON,MESH文件
这两个文件都是需要3D模型技术的,我并不会修改.1代模型移植时,两者都可以直接移植.
6.RAW文件
MEIDA文件夹下的RAW文件一共7个,RAW文件可以使用raw2txt进行转换,转换后的文件格式与DAT文件转换后的文件格式类似.
RAW文件是类似于注册表的一个文件,用于将新添加的项进行注册,有些项目如果不注册,则添加无效.不同的RAW文件的注册方法不同,请根据同文件下其它项目的注册方法进行注册.
由于RAW文件有很多项目的含义仍不清楚(UNKNOWN项),所以当你要新加项目是,选用最接近项目的参数即可.
RAW文件还负责最底层的随机,比如SPAWNCLASS文件夹的随机掉落文件一般只到某类物品,比如UNIQUE
WAND,这时候游戏就会调用RAW文件中的RARITY参数进行掉落,RARITY参数与WEIGHT参数效果类似,越大掉落概率越高.
各个RAW文件注册的内容:
AFFXIES.RAW:注册词缀,也就是AFFIXES文件夹下的内容,WEIGHT同样决定了词缀随机到的概率.
MISSILES.RAW:注册弹道,也就是MISSILES文件夹下的内容.
ROOMPIECES.RAW:注册场景物品,也就是LEVELSETS文件夹下的内容.
SKILLS.RAW:注册技能,也就是SKILLS文件夹下的内容.
TRIGGERABLES.RAW:注册触发器,也就是TRIGGERABLES.RAW文件夹下的内容.
UI.RAW:注册用户界面,是UI文件夹下的LAYOUT文件.
UNITDATA.RAW:注册单位,是UNITS文件夹下的内容,包括物品,怪物,人物,触发装置.
7.LAYOUT文件
LAYOUT文件需要使用layout编辑器来进行修改,由于当前该编辑器功能很弱,所以可以修改的内容很少.当前所能做到的只有学习现有layout实现新功能.