MINECRAFT數(shù)據(jù)包-進(jìn)度與合成配方
注意!!!本章學(xué)習(xí)需要進(jìn)度和合成配方方面的一定基礎(chǔ)
本章討論 [進(jìn)度] 與 [合成配方] 相關(guān)內(nèi)容
在數(shù)據(jù)包制作過程中,我們總是會使用到 進(jìn)度?這個數(shù)據(jù)包的重要部分。
首先,我們需要先了解?進(jìn)度?這個東西是個啥


一般地,像原版游戲內(nèi)提示進(jìn)度已達(dá)成這樣的文字,就說明你完成了這個進(jìn)度
那么,進(jìn)度在數(shù)據(jù)包制作中有什么作用呢?
--答:檢測游戲?qū)嶓w相關(guān)動作、事件等。
下面我們就來看一個例子:
問:如何通過工作臺合成出一把鋒利1的鉆石劍

配方書寫部分不在贅述,如下
這里我們需要改變一個地方
在result的item這條中,我們只需要將其修改為任意原版的物品
因為我們只需要達(dá)成 解鎖配方 這個目標(biāo)。
(注意:最好是生存無法直接獲取的物品)
我這里是使用原版的 知識之書。
我們都知道,原版數(shù)據(jù)包的自定義合成中是不能夠直接合成NBT物品的(廢話)。
但是,進(jìn)度中有一個觸發(fā)器:minecraft:recipe_unlocked
這個觸發(fā)器可以在玩家解鎖配方時觸發(fā),就像我們在原版生存中挖掘了第一塊原木,然后解鎖了各類木頭相關(guān)的配方一樣。
依據(jù)這個,我們可以對一個數(shù)據(jù)包定義的配方的合成進(jìn)行檢測。
首先,我們需要保證這個配方是未解鎖的(沒有直接地出現(xiàn)在合成書中)。
于是,我們需要在數(shù)據(jù)包的#minecraft:load這個標(biāo)簽的函數(shù)中寫入這行指令
這樣,我們就完成了這個配方的初始化。
接下來,我們就需要編輯進(jìn)度文件了(注:進(jìn)度文件為JSON格式)。
在data/test/advancements/目錄下新建sharp_sword.json文件

接下來用文本編輯軟件打開(VsCode等軟件皆可),然后在文件中寫入下面的內(nèi)容:
(必須嚴(yán)格按照J(rèn)SON格式寫入!?。?
恭喜你,你完成了進(jìn)度部分的編輯。
接下來我們來解析這個進(jìn)度:
其中,rewards下有一條名為function的內(nèi)容。
function 顧名思義就是函數(shù)的意思。
實際上,它的意義也便是進(jìn)度達(dá)成后所要執(zhí)行的函數(shù)。
所以,接下來我們需要編輯對應(yīng)的函數(shù)即可
在data/test/functions/craft/目錄下新建sharp_sword.mcfunction。
(注意,這是一個函數(shù),不同于我們先前編輯的進(jìn)度)
使用文本編輯軟件,寫入以下內(nèi)容:
這樣,我們就完成了這樣一個含NBT的合成配方。