前言
本教程适用于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
可以得到以下结果:
左键点击那个黄色的字,就可以打开scripts文件夹。
然后在里面新建一个文本文档,如图:
对它重命名将它的后缀改为.zs,如图所示:
(名称可以随便取,不一定要和本教程中的“test”一样)
这里顺便说一下如何修改后缀名:
电脑默认是不显示后缀名的,如果不进行更改就没有办法把它变成.zs文件
首先,我们打开此电脑,可以看见左上角的蓝色按钮“文件”,点进去,可以看到“更改文件夹和搜索选项”:
点开后,上面有一排选项,点击“查看”,下面有一栏“高级设置”,往下滑,可以看见“隐藏已知文件的扩展名”:
默认是一个√,我们只需把√点没,然后点击“应用”,在点击“确定”即可,然后我们就可以看到并修改文件的扩展名了。
好了,言归正传,打开那个.zs文件(记事本可以打开),就可以在里面写代码了。
预备知识
预备知识1:尖括号引用
CrT使用尖括号引用游戏中的物品。格式如下:
<item:所属模组(modid):物品英文名>
光看不容易理解,那我们来看两个例子,引用minecraft中的钻石:
<item:minecraft:diamond>
<item:create:water_wheel>
注意:“<”和“>”必须英文输入,冒号必须是英文中的冒号“:”而不是中文的冒号“:”。
尖括号还可以引用很多东西。比如由一个方块处理的所有配方:
格式:<recipetype:所属模组(modid):配方名称>
例如,引用所有熔炉配方:
<recipetype:minecraft:smelting>
引用所有植物魔方的魔力合成配方:
<recipetype:botania:mana_infusion>
下表列出了一些minecraft原版常见的可以处理配方的方块与它们对应的配方名称:
方块名 | 工作台 | 熔炉 | 锻造台 | 营火 | 高炉 |
对应的配方名称 | crafting | smelting | smithing | campfire_cooking | blasting |
预备知识2:全局变量
这个名词解释起来比较麻烦,因此只需记住这是CrT为每个处理配方的方块安排的一串英文就行(其实和方块的英文名相差不大)
方块名 | 工作台 | 熔炉 | 锻造台 | 营火 | 高炉 |
全局变量 | craftingTable | furnace | smithing | campfire | 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>]);
一些细心的玩家应该已经注意到了,如果输入物品不止一个的话,需要使用英文逗号隔开。
下面是完成后的效果:
添加有序配方
使用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>]
]);
下面是完成后的效果:
需要注意,有序配方中,需要多出几个中括号,表示这里面的物品在工作台的同一行。因此,具体的格式(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魔改程序作为实例:(有一部分代码在刚才介绍时已经作为例子展示过了)
这个代码是随手写的,有一处错误,看看大家有没有找到?如果读懂了这个代码,那么恭喜你,你已经掌握CrT最基础的用法了。
后记
CrT是一个功能十分强大的模组,可以进行很多魔改操作,这篇教程所展示的只是冰山一角而已。如果想要继续了解CrT的高级用法,可以去CrT的官方Wiki和mc百科的其它教程中学习。
本人希望这篇教程能够将更多玩家带入CrT中,而不是因为感觉太麻烦、复杂而被劝退。
如果教程中存在错误或不足,请各位大佬指出!
由于官方Wiki真的帮了我许多,因此在这里特别感谢一下,并给出它的传送门。