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

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);
}