前言

本教程适用于1.18.2和1.19.2版本的CrT,1.16.5版本目前还没有进行测试(使用PCl2进行测试)。

因为本人技术有限,本教程必定存在一些不足之处,敬请谅解。如果您有更好的建议,请在评论区或私信指出,不胜感激!

教程面向没有基础的高版本(1.18+)CrT玩家,因此教程中会有术语、名词的解释,从而使得玩家们可以更好地理解。

撰写本教程的原因是看到评论区有玩家说1.19.2的CrT玩不懂,并且百科目前还没有1.18+的CrT入门教程,因此就亲手写一篇。

创建.zs文件

这是CrT最基础的部分。

安装完模组后,打开游戏,创建一个新世界(注意要把允许作弊打开,否则无法使用指令),然后在指令框里输入:

/ct scripts

可以得到以下结果:1.18+CrT入门教程——从0开始-第1张图片


左键点击那个黄色的字,就可以打开scripts文件夹。

然后在里面新建一个文本文档,如图:1.18+CrT入门教程——从0开始-第2张图片

对它重命名将它的后缀改为.zs,如图所示:1.18+CrT入门教程——从0开始-第3张图片

(名称可以随便取,不一定要和本教程中的“test”一样)

这里顺便说一下如何修改后缀名:

电脑默认是不显示后缀名的,如果不进行更改就没有办法把它变成.zs文件

首先,我们打开此电脑,可以看见左上角的蓝色按钮“文件”,点进去,可以看到“更改文件夹和搜索选项”:1.18+CrT入门教程——从0开始-第4张图片

点开后,上面有一排选项,点击“查看”,下面有一栏“高级设置”,往下滑,可以看见“隐藏已知文件的扩展名”:

1.18+CrT入门教程——从0开始-第5张图片

默认是一个√,我们只需把√点没,然后点击“应用”,在点击“确定”即可,然后我们就可以看到并修改文件的扩展名了。

好了,言归正传,打开那个.zs文件(记事本可以打开),就可以在里面写代码了。

预备知识

预备知识1:尖括号引用

CrT使用尖括号引用游戏中的物品。格式如下:

<item:所属模组(modid):物品英文名>

光看不容易理解,那我们来看两个例子,引用minecraft中的钻石:

<item:minecraft:diamond>

引用机械动力里的水车

<item:create:water_wheel>

注意:“<”和“>”必须英文输入,冒号必须是英文中的冒号“:”而不是中文的冒号“:”。

尖括号还可以引用很多东西。比如由一个方块处理的所有配方:

格式:<recipetype:所属模组(modid):配方名称>

例如,引用所有熔炉配方:

<recipetype:minecraft:smelting>

引用所有植物魔方的魔力合成配方:

<recipetype:botania:mana_infusion>

下表列出了一些minecraft原版常见的可以处理配方的方块与它们对应的配方名称:

方块名工作台熔炉锻造台营火高炉
对应的配方名称craftingsmeltingsmithingcampfire_cookingblasting

预备知识2:全局变量

这个名词解释起来比较麻烦,因此只需记住这是CrT为每个处理配方的方块安排的一串英文就行(其实和方块的英文名相差不大)

方块名工作台熔炉锻造台营火高炉
全局变量craftingTable
furnace
smithingcampfire
blastFurnace

删除配方

以下所有代码全部写入.zs文件中。

CrT提供了很多删除配方的方式,这里介绍3种;

remove()

remove()可以移除指定物品的所有配方,格式为:

全局变量.remove(被引用的物品);

例如,移除工作台里钻石剑的配方:

craftingTable.remove(<item:minecraft:diamond_sword>);
再例如,移除熔炉中铁锭的配方:

furnace.remove(<item:minecraft:iron_ingot>);

注意:牢记每行代码写完之后要在后面加上分号!必须要加英文的分号而不是中文的分号!否则会报错!

removeByModid()

此方法允许你根据配方名称的 modid 删除配方。格式如下:

全局变量.removeByModid("modid");

例如,移除机械动力模组中所有工作台配方:craftingTable.removeByModid("create");

移除minecraft原版中所有熔炉配方:furnace.removeByModid("minecraft");

注意:所有引号都需要使用英文中的引号!

removeAll()

这个方法是最暴力的方法了,因为它可以移除一个工作方块的所有配方。格式如下:

全局变量.removeAll();

例如,移除高炉中的所有配方:这样就只能用熔炉(和烟熏炉)烧制了!

blastFurnace.removeAll();
添加配方

只删除配方只会让游戏的可玩性越来越差,因此我们还需要添加配方。

在入门阶段,我们主要学习如何添加工作台配方。

添加无序配方

使用craftingTable.addShapeless可以给工作台添加无序配方。格式如下:

craftingTable.addShapeless("新配方的名字", 被引用的输出物品*数量,[被引用的输入物品]);

新配方的名字可以根据个人喜好随便取,但不能重名。

例如添加一个无序合成表,用两个泥土合成两个钻石:

craftingTable.addShapeless("eg1",<item:minecraft:diamond>*2,[<item:minecraft:dirt>,<item:minecraft:dirt>]);
一些细心的玩家应该已经注意到了,如果输入物品不止一个的话,需要使用英文逗号隔开。

下面是完成后的效果:1.18+CrT入门教程——从0开始-第6张图片

添加有序配方

使用craftingTable.addShaped可以在工作台里添加一个有序合成配方。格式如下:(其实和无序差不多)

craftingTable.addShaped("新配方的名字", 被引用的输出物品*数量,[被引用的输入物品]);

例如,添加一个可以用2*2工作台合成的钻石斧配方:

craftingTable.addShaped("eg2",<item:minecraft:diamond_axe>,[   

[<item:minecraft:diamond>,<item:minecraft:diamond>],  

[<item:minecraft:diamond>,<item:minecraft:stick>]

]);

下面是完成后的效果:
1.18+CrT入门教程——从0开始-第7张图片

需要注意,有序配方中,需要多出几个中括号,表示这里面的物品在工作台的同一行。因此,具体的格式(3*3合成台)应为:

craftingTable.addShaped("新配方的名字", 被引用的输出物品*数量 , [   

[物品1,物品2,物品3],  

[物品4,物品5,物品6],

[物品7,物品8,物品9]

]);

如果是2*2合成台,那就是:

craftingTable.addShaped("新配方的名字", 被引用的输出物品*数量 , [   

[物品1,物品2],  

[物品3,物品4]

]);

如果某个位置没有物品,那就用<item:minecraft:air>代替。

完成代码

代码完成后,把它保存在.zs文件里,然后回到游戏,在指令框输入:

/reload

就可以刷新游戏了。如果你的CrT没有报错,那么恭喜你,你成功了!赶紧去试一试你的更改有没有起效吧!

此时,你的jei应该已经显示你更改的配方了。如果你发现没有显示(这种情况大多发生在1.19.2版本)也不要慌,只需退出世界重进之后就会显示了。

下面是我自己做的一个完整的CrT魔改程序作为实例:(有一部分代码在刚才介绍时已经作为例子展示过了)

1.18+CrT入门教程——从0开始-第8张图片

这个代码是随手写的,有一处错误,看看大家有没有找到?如果读懂了这个代码,那么恭喜你,你已经掌握CrT最基础的用法了。

后记

CrT是一个功能十分强大的模组,可以进行很多魔改操作,这篇教程所展示的只是冰山一角而已。如果想要继续了解CrT的高级用法,可以去CrT的官方Wiki和mc百科的其它教程中学习。

本人希望这篇教程能够将更多玩家带入CrT中,而不是因为感觉太麻烦、复杂而被劝退。

如果教程中存在错误或不足,请各位大佬指出!

由于官方Wiki真的帮了我许多,因此在这里特别感谢一下,并给出它的传送门