本篇教程由作者设定未经允许禁止转载。
前言
本教程将会使用KubeJS添加 流体转化为物品、流体转化、物品爆炸、方块爆炸、被闪电击中、铁砧粉碎 的配方。
游戏版本为1.16.5,KubeJS版本1605.3.19-build.299,Interactio版本3.1.1。
一年前的教程了,可能有误,欢迎评论区指正。from 2024
所有代码将保存为.js文件在.minecraft\kubejs\server_scripts\目录下。
所有代码前面空格是为了缩进,如不需要可自行删除。
如遇报错,请查看括号、逗号、中文或奇怪字符是否出现或未出现。
所有输出都禁止使用标签。
注意事项
所有代码中的//+//后的文字均可删除,但不能只出现文字不出现//,可以出现//不出现文字。
所有代码中的第二个输出、输入均为演示,有些人想要第二个输入、输出却不知如何做才会有,如不需要第二个输入、输出可以按照提示删除。
合成表热重载指令为:“/reload”。
几率
所有代码几率(empty_weight、weight)机制:求几率公式如下,其中a代表消耗普通输出几率或空输出几率,b、c、d、.......代表其他全部几率,一定要把全部几率加起来:
求a几率:100/(a+b+c+.........)*a
如输出①代码几率为7,输出②代码几率为10,空输出代码几率为83,那么输出①游戏几率计算公式为:100/(7+10+83)*7=7=7%
翻译
Output Chance:输出几率。
Return Chance:返还几率。
Consumption Chance:消耗几率。
监听recipes事件
在开始前,.js文件中需要有这样一段代码:
events.listen('recipes', event => {
event.custom({
//以下教程添加配方代码要在大括号{}中写
})
})
流体转化为物品
普通
"type": "interactio:item_fluid_transform",
"inputs": [ //输入
{
"item": "minecraft:spruce_log", //输入物品:minecraft:spruce_log,云杉原木
"count": 3, //数量:3
"return_chance": 0.75 //返还几率:75%,意思是有75%的几率返还1个物品,而不是3个一起,0或没有本行为不返还
}
//如无需第二个输入请删除从本行到“删除①”的代码
,{
"tag": "forge:ingots/gold", //输入标签:forge:ingots/gold,
"count": 2 //数量:2
}
//删除①
],
"fluid": { //流体
"fluid": "minecraft:water" //流体ID:water,水
},
"output": { //输出
"entries": [
{
"result": { //输出①
"item": "minecraft:diamond", //输出物品:minecraft:diamond,钻石
"count": 2 //数量:2
},
"weight": 7 //几率
}
//如无需第二个输出请删除从本行到“删除②”的代码
,
{
"result": { //输出②
"item": "minecraft:orange_wool", //输出物品:minecraft:orange_wool,橙色羊毛
"count": 3 //数量:2
},
"weight": 10 //几率
}
//删除②
],
"empty_weight": 83 //空输出的几率,删除本行为无空输出
},
"consume_fluid": 0.1//消耗流体的几率:10%
图:
NBT
"type": "interactio:item_fluid_transform",
"inputs": [ //输入
{
"item": "minecraft:glass_bottle", //输入物品:minecraft:glass_bottle,玻璃瓶
"count": 1 //数量:1
//可以添加返还几率
}//也可添加第二个输出
],
"fluid": { //流体
"fluid": "minecraft:water" //流体ID:water,水
},
"output": { //输出
"item": "minecraft:potion", //输出ID:玻璃瓶
"count": 1, //数量:1
"nbt": { //NBT
"Potion": "minecraft:water" //NBT为水,也就是输出物品为水瓶
}
},
"consume_fluid": 0.33 //消耗流体几率:33%
注:带有NBT的输出不能有输出几率(weight),也不能有第二个输出。
图:
流体转化
"type": "interactio:fluid_fluid_transform",
"items": [{ //物品输入
"item": "minecraft:iron_ingot", //输入物品:minecraft:iron_ingot,铁锭,也可换为标签,将item改为tag,后方改为标签即可
"count": 1, //数量:1
"return_chance": 0.1 //返回几率:10%
}],
"input": { //原先流体
"fluid": "minecraft:water" //流体ID:water,水
},
"output": { //转换后流体
"entries": [
{
"result": {
"fluid": "minecraft:water" //流体ID:minecraft:water,水
},
"weight": 2 //转换几率
}
//如无转换后有2中可能请删除从本行到“删除③”的代码
,{
"result": {
"fluid": "minecraft:lava" //流体ID:minecraft:lava,熔岩
},
"weight": 4 //转换几率
}
//删除③
],
"empty_weight": 5 //流体变为空气几率,删除本行为必定变为流体
}
注:此配方类型无法显示在JEI中,所以没图,不过游戏内还是可以正常使用的。大概意思是:将铁锭丢入水中,有10%的几率返还铁,并有大约14.29%的几率会转换为水,大约28.57%的几率转换为熔岩,大约35.71%转换为空气(不知如何算几率的看注意事项里的几率)。
物品爆炸
顾名思义,就是将物品丢在地上然后爆炸转换物品。
"type": "interactio:item_explode",
"inputs": [{ //输入
"item": "minecraft:redstone", //输入物品:minecraft:redstone,红石
"count": 1 //数量:1
} //如无需输入第二个物品请删除从本行到“删除④”的代码
,{
"tag": "forge:stone", //输入标签
"count": 2
}
//删除④
],
"output": { //输出
"entries": [
{
"result": { //输出①
"item": "minecraft:gold_nugget", //输出物品:minecraft:gold_nugget,金粒
"count": 3 //数量:3
},
"weight": 2 //几率
} //如无需输出第二个物品请删除从本行到“删除⑤”的代码
,{
"result": {
"item": "minecraft:redstone_block",
"count": 1
},
"weight": 1
}
//删除⑤
],
"empty_weight": 1, //空输出,删除本行为无空输出
}
图:
方块爆炸
顾名思义,就是将放置的方块炸毁产生新的方块。
以下代码中的输入表示放置的方块,输出表示掉落的方块。
"type": "interactio:block_explode",
"input": { //输入
"block": "minecraft:netherrack" //输入方块:minecraft:netherrack,下界岩
},
"output": { //输出
"type": "block",
"entries": [
{
"result": {
"block": "minecraft:gold_ore" //输出方块:minecraft:gold_ore,金矿石
},
"weight": 3 //几率
}
//如无需输出第二物品,请删除从本行到“删除⑥”的代码
,{
"result": {
"block": "minecraft:obsidian" //输出方块:minecraft:obsidian,黑曜石
},
"weight": 2 //几率:2
}
//删除⑥
],
"empty_weight": 5 //空输出几率
}
图:
被闪电击中
顾名思义就是用闪电劈它/它们(输出着火不会消失)。
以下代码输入代表丢弃,输出代表掉落。
"type": "interactio:item_lightning",
"inputs": [ //输入
{
"item": "minecraft:dirt", //输入物品:minecraft:dirt,泥土
"count": 1 //数量:1
}
//如无需第二个输入请删除从本行到“删除⑦”的代码
,{
"tag": "forge:stone", //输入标签
"count": 2
}
//删除⑦
],
"output": { //输出
"entries": [
{
"result": {
"item": "minecraft:grass_block", //输出物品:minecraft:grass_block,草方块
"count": 1 //数量:1
},
"weight": 2 //几率
}
//如无需第二个输出物品请删除从本行到“删除⑧”的代码
,{
"result": {
"item": "minecraft:grass", //输出
"count": 1
},
"weight": 2
}
//删除⑧
],
"empty_weight": 1 //空输出几率
}
图:
铁砧粉碎
以下代码输入表示丢弃,输出表示掉落。
"type": "interactio:item_anvil_smashing",
"inputs": [ //输入
{
"item": "minecraft:gold_nugget", //输入物品minecraft:gold_nugget,金粒
"count": 9 //数量:9
}
//如无需输入第二个物品请删除从本行到“删除⑨”的代码
,{
"tag": "forge:stone",
"count": 1
}
//删除⑨
],
"output": { //输出
"entries": [
{
"result": {
"item": "minecraft:gold_ingot" //输出物品:minecraft:gold_ingot,金锭
},
"weight": 20 //几率
}
//如无需第二个输出请删除从本行到“删除⑩”的代码
,{
"result": {
"item": "minecraft:iron_nugget"
},
"weight": 10
}
//删除⑩
],
"empty_weight": 1 //空输出几率
},
"damage": 1 //铁砧损坏程度
图: