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

    22岁,是学生。闲来无事决定将自己学习CrT过程中遇到的问题记录下来,顺便给大家当个参考。

    本教程对应版本为1.20.1,其余版本能否使用我也不知道。

    第一次写教程,暂时不会写目录,因此请直接看正文,或使用Ctrl+F搜索文中内容。


    一、如何开始?

        1.选择适合你Minecraft版本的Crt安装(这一步都完不成的推荐关闭本教程)

        2.打开安装有CrT的Minecraft,创建一个新世界(注意勾选允许作弊)

        3.打开命令栏,输入/ct scripts

        4.点击聊天栏中的[scripts]

        5.在打开的文件夹里创建一个后缀名为zs的新文件(新建一个txt文件然后重命名,不知道该叫什么就先改成test.zs,名字无所谓)

        6.用任意文本编辑器打开新创建的.zs文件(推荐使用Vscode,当然,你用记事本也可以)

        7.这就是你平常使用CrT的地方了。

        8.修改完配方记得在游戏里使用/reload重载资源,此时游戏停止响应是正常的,等待即可。

        [1.20.1]⑨也能看懂的新版CrT基础教程-第1张图片

图1-1 使用/reload指令重载资源

        当这三句话出现时,则为重载完毕。



    二、配方的增删改查

        一般的修改流程是:修改代码,重载资源。我们已经学会了重载资源,那么下一步就是修改代码,即配方的增删改查。

        1. 有序合成

            首先我们先来看一个例子,这是本人添加的锦致装饰中箭袋的合成配方

[1.20.1]⑨也能看懂的新版CrT基础教程-第2张图片图2-1 箭袋合成配方

            这个配方对应的源代码为:

//箭袋
craftingTable.addShaped("quiver1",<item:supplementaries:quiver>,[
    [<item:minecraft:air>,<item:minecraft:air>,<item:minecraft:string>],
    [<item:minecraft:air>,<item:minecraft:leather>,<item:minecraft:air>],
    [<item:minecraft:leather>,<item:minecraft:air>,<item:minecraft:air>]
]);

            一般的有序配方就长这个样子。我们分着来讲讲这段代码的几个部分。

                craftingTable:Crafting Table翻译过来就是工作台。那么这就是一个工作台的配方。

                addShaped:添加有序配方。如果你学过编程中类的思想,便会发现这些代码有些眼熟。但为了更多同学能看懂,我们暂且按下不表。

            代码的前两个部分,合起来意思就是“添加工作台的有序配方”。

            接下来是小括号内,以逗号为分隔符,分为三个部分。

                "quiver1":这个配方的名字。配方的名字可以你自己随便改(中文不行),但最好编个好记的名字。两边的引号不要动,记得用英文引号。

                <item:supplementaries:quiver>:产物。在CrT里,物品的代码表现形式就是这样,外侧使用尖括号包裹,内侧分为三部分:item(暂且不要动,之后会讲到)、模组ID、物品ID。


            查物品ID和模组ID的方法:在游戏里按F3+H显示高级提示框,然后找到产物——

[1.20.1]⑨也能看懂的新版CrT基础教程-第3张图片

图2-2 箭袋的物品id和模组id

            看中间灰色部分(不是按CTRL那句),supplementaries:quiver,冒号前就是模组ID,后就是物品ID。


            小括号内的最后一部分有点长,嵌套了两组方括号。

            leather的翻译是皮革,string的翻译是线。

            结合这两个翻译和前面讲的,再想想合成配方还缺什么部分,大家应该就能明白这是什么了。

            同学们记住格式,比葫芦画瓢就是了。

            因为本教程的定位是⑨也能看懂的教程,所以这一块当然不会深讲(其实是懒)

        

            如果是四格有序配方的话,就删去5个格子,留下正方形样的四个格子就行。


            最后,记得加分号。不然忘写分号的程序员的鬼魂晚上会到你家找你的。


        2. 无序合成

//使用一个铁块合成9个铁
craftingTable.addShapeless("iron_block",<item:minecraft:iron_ingot>*9,[<item:minecraft:iron_block>]);

            无序配方相比有序配方简单一些,主要区别在于后面写配方的时候不用写满9个格子。也不用分成三组由方括号分割的物品组,所有的物品都写在一个方括号里即可。

//使用一个 空瓶 和一个 充能赛特斯石英水晶 合成一个 雷电瓶
craftingTable.addShapeless("lightning_bottle",<item:irons_spellbooks:lightning_bottle>,
    [<item:minecraft:glass_bottle>,<item:ae2:charged_certus_quartz_crystal>]
);

            [1.20.1]⑨也能看懂的新版CrT基础教程-第4张图片

图2-3 无序合成样例

        3. 删除配方

            删除配方主要有两种用法,其一是直接删除合成指定某个物品的所有工作台配方,二是删除指定合成配方名的配方。

            比如说我要删除9个铁合成一个铁块的那个配方,因为合成铁块的工作台配方只有这一个,所以两种方法都可以使用。

//方法1:删除合成一个物品的所有工作台配方
craftingTable.remove(<item:minecraft:iron_block>);
//方法2:知道配方名后只删除该配方
craftingTable.removeByName("minecraft:iron_block");

    关于寻找某个配方的配方名:

    比较简单的方法是主手持该物品的情况下使用指令/ct recipes hand,然后根据指引,去.minecraft/logs或.minecraft/versions/版本名/logs下打开crafttweaker.log文件,翻到最下面,找到这么一句话:

    [**:**:**.***][INFO][CraftTweaker-Commands]: Dumping all recipes that out put 物品名!(或者直接使用Ctrl+F搜索Dumping all recipes然后找到最下面的一个)

    从这一行开始,到下面的“‘配方列表’已生成!”的那一行为止,中间便是所有合成铁块的配方。

[1.20.1]⑨也能看懂的新版CrT基础教程-第5张图片

图2-4 使用/ct recipes hand来寻找指定配方

    可以看到我们要找的配方在第212行,配方名为"minecraft:iron_block"。


            删除配方还有几个其他的使用方式,不过这些就用的少了。

            craftingTable.removeByModid(modid); //删除工作台上指定模组的所有合成配方

            craftingTable.removeRecipeByInput(input); //删除配方中含有某物品的所有工作台配方

            craftingTable.removeAll(); //删除工作台上的所有配方


    到这里最基础的教程就已经结束了,增删已经讲完,改就是删了再加,查的方式也讲过了。不过本教程暂时还不会完结,还有一些进阶方法以及模组配方的更改预定也会再讲,下次更新预定。

    进阶教程不会有了,因为作者发现高版本没人用Crt,都在用kubejs,因此决定弃坑。跑路咯