本篇教程由作者设定未经允许禁止转载。
gamestage作为整合包一个重要mod,站内没有人写用zs的代码,那我来给大家讲解一下。
阅读本篇教程前,本人定义读者具有基础的CrT使用能力和简单的ZS语言代码使用能力,若读者欠缺,可以在CrT区内学习教程。
因为gamestage仅作为前置,本教程顺带将物品阶段(达成对应阶段才能看到物品)和维度阶段(达成对应阶段才能进入维度)的介绍
定义游戏阶段(1.12.2及其以下版本可跳过)
找到.minecraft/config/gamestages/的一个json文件,在中括号里面输入阶段名,使用英文,隔开
//例子
[
"coal",
"iron",
"gold",
"diamond"
]
给物品增加游戏阶段
增加游戏阶段后,只有达成了对应的阶段才可以拿起(创造模式忽略)并且显示名字和在JEI里面查看
在scripts文件夹下新建zs文件
import mods.ItemStages.addItemStage; //导包
//语法:addItemStage("stage",Item);
//例如:只有完成了coal阶段之后才能解锁铁锭
addItemStage("coal",<minecraft:iron_ingot>);
当物品比较多的时候,例如只有完成了iron阶段之后才能解锁钻石,红石,黑曜石。但是一旦物品过多,就需要更多的代码。
我给出以下解决方案
使用 /ct inventory 可以将背包所有物品输出到log里面
import mods.ItemStages.addItemStage;
import crafttweaker.item.IItemStack; //导包
var item as IItemStack[]=[
<minecraft:diamond>,
<minecraft:redstone>,
<minecraft:obsidian>
]; //定义一个数组,将钻石,红石,黑曜石存入。回车可选,此处为了方便阅读
for i in item{
addItemStage("iron",i);
} //遍历数组,并把每个元素都加上iron阶段
给维度增加游戏阶段
例如:只有完成了diamond阶段之后才能进入下界和暮色森林(假定存在暮色mod)
tips:使用 /forge dimensions 可以在聊天栏输出所有维度的注册数字ID
import mods.DimensionStages.addDimensionStage; //导包
addDimensionStage("diamond",-1); //下界dim=-1
addDimensionStage("diamond",7); //暮色dim=7
同样,为了方便,当维度比较多时,也可以用循环,例如下面这样:
import mods.DimensionStages.addDimensionStage;
import crafttweaker.item.IItemStack; //导包
var dim as int[]=[
-1,7
];
for i in dim{
addDimensionStage("diamond",i);
}