本篇教程由作者设定使用 CC BY-NC 协议。
游戏版本:1.20.1(经测试,1.14.4-1.20.1均通用)
创建data目录和pack.mcmeta文件
本教程使用的pack.mcmeta如下
{
"pack": {
"pack_format": 4,
"description": "教程用数据包"
}
}在data下创建文件夹,目录名即为命名空间,本教程中为test
在test创建文件夹,目录结构如下
当前的目录结构
pack.mcmeta
data
test
advancements
return
functions
recipes
在recipes下创建配方,这里以金锭胡萝卜合成金胡萝卜返还金粒为例
{
"type": "minecraft:crafting_shapeless",
"category": "misc",
"ingredients": [
{
"item": "minecraft:gold_ingot"
},
{
"item": "minecraft:carrot"
}
],
"result": {
"item": "minecraft:golden_carrot"
}
}
以上为一个基础的无序合成配方,不懂可自行查阅wiki或站内外教程
在return下创建一个文件,命名为*.json(*处可替换,这里以get_gold_carrot.json为例)
{
"criteria": {
"craft_lantern": {
"trigger": "recipe_crafted",
"conditions": {
"recipe_id": "test:golden_carrot"
}
}
},
"rewards": {
"function": "test:return_gold"
},
"sends_telemetry_event": false
}
在上面的json中,我们创建了一个名为get_gold_carrot的进度(与文件名相同),当进行test:golden_carrot合成后获得test:get_gold_carrot进度并执行函数test:return_gold,下面我们就来编写这个函数
在function文件夹下创建一个文件,命名为*.mcfunction(*处需与上文json中"function": "test:return_gold"
值命名空间后的部分相同,这里为return_gold.mcmeta)
execute as @s at @s run give @s minecraft:gold_nugget 1
advancement revoke @s only test:return/golden_carrot
在上面的函数中,我们给予了触发该进度的玩家一个金粒并移除了该进度,使得下次合成时仍将正常触发
好了,可以打包进游戏测试了
-第一次写教程,如有误请指正-