本篇教程由作者设定未经允许禁止转载。

前言

这篇教程已经很详细的说明了如何自定义进度系统,因此本教程不再详细说明如何自定义进度,而是从配置文件和模组运行机制的方面补充一些内容,使魔改作者们更清晰的理解模组的原理。

配置文件

配置文件生成在config\triumph中,但是它生成了非常多的配置文件。这里只说明用的上的。


documentation文件夹

documentation文件夹里存储了进度系统的几乎所有的设定,并详细阐述了其内容与书写规则,但一般不需要查看,因为没有任何example容易让人无法理解;如果你已经对此模组有一定了解,可以通过documentation文件中的信息设计出更复杂的进度系统。

Triumph文件

Triumph文件用于模组的功能调整。

removeVanillaAdvancements()
removeModAdvancements()

第一行代码意为是否移除原版的进度;第二行代码意为是否移除所有模组的进度。括号中为true/false,由自己的需求决定。

removeAdvancements([""])

此行代码是移除指定的进度,而非移除整个模组的进度。此处填写进度的根ID而不一定是模组ID,进度ID需要自行查询。可以使用/advancement grant 玩家ID from 的指令进行粗略查找,输完from+空格之后,再按tab填充指令,此时会显示游戏中的全部进度ID,只需要第一个冒号之前的ID,例如minecraft。

若要移除多个进度,可使用逗号隔开引号,最终形成(["","","",""])的形式。

allowDragging()

此代码指的是是否开启进度图标拖动功能,此功能可能需要更好的进度模组支持。开启拖动之后,通过此模组自定义而添加的进度可以在进度系统直接拖动调整位置,调整之后需要退存档重进查看调整后的样子。通常,在完成调整之后应当关闭此功能。

pageOrder([""])

此代码为进度页面显示的顺序,但尚不清楚其工作原理。

script文件夹

script文件夹是Triumph存储自定义信息的唯一场所,换言之任何在script中的文件都会被读取,这也是教程的重点。若文件书写有误将会导致游戏在启动过程中崩溃

script

未作任何修改时,进入script文件夹中,会发现还有一个triumph文件夹而并非是自定义文件,并且这里并不能直接放自定义文件。这里必须设置的文件夹指的是游戏被存储的进度的根ID。举个例子,原版中怪物猎人进度的ID为minecraft:adventure/kill_a_mob,而此处的文件夹名对应的就是minecraft;如果你在此自己新建了一个名为test的文件夹,那么在游戏中,你自定义的进度的ID会变为test:XXXXX。

简而言之,script文件夹中的第一个文件夹可以让玩家自行决定进度的根ID,基于此可以设置非常多分组的进度,其本质就像设置了几个模组的进度系统一样。

script\triumph

进入config\triumph\script\triumph中后,会发现一个名为example的文件夹。此文件夹在此的作用仍为分组。举个例子,原版中怪物猎人的ID为:minecraft:adventure/kill_a_mob,此处example文件名便对应的是adventure。此处不再赘述

添加进度

再次进入example文件夹后,此时已经可以设置进度了,即在config\triumph\script\triumph\example文件中。如何添加进度可参考此教程。此处需要额外注意几点:

example中的root文件即为进度系统中第一个进度,必须先设置这个进度才可以向后续添加

hideLines()指的是是否隐藏连接线,若()为空则为隐藏

若有多个需求,则需要在进度文件夹中添加多行criteria,中间不需要任何标调符号进行分割。

实践

进入script\triumph文件夹中,在此新建一个文件夹test,进入test后并在其中新建一个test,再次进入test后,新建第一个进度root。若书写正确,则在游戏中便可看到此进度,进度ID为:test:test/root。


以上便是此模组配置文件及工作原理的详细解释。