進度定義格式
資料夾結構 編輯
在資料包中,每個進度都由一個進度檔案定義。以下的檔案結構圖展示了進度檔案在資料包中的位置:
/
<資料包名稱>
pack.mcmeta
data
<命名空間>
advancement
<進度檔案名>.json
- 查看更多目錄…
主格式 編輯
- *: 若寫明了其父欄位,則該項是必須的。
- 根標籤
- *criteria:此進度的一系列條件。
- 一項條件。見下文。
- display:(可選)進度的顯示資訊。
- parent:(可選)此進度的上游進度的命名空間ID。若此項不存在,則此進度為根進度。循環引用上游進度將導致載入失敗。
- requirements:(可選)定義了以上條件將如何達成。其中包含許多子列表,每一個子列表中都允許包含此進度中的若干條件(在所有的
<條件名稱>
中)。完成或廢除一個準則時,如果所有子列表中至少有一個準則達成,則進度達成。預設情況下(即此項不存在),進度達成需要保證每個條件都要達成。- :在requirements中的一個子列表,可包含若干
<條件名稱>
。如果有任何一項子列表為空,則此進度不可達成,除非透過作弊。- :一項條件名稱。
- :在requirements中的一個子列表,可包含若干
- rewards:(可選)進度達成後的獎勵。
- sends_telemetry_event:(可選,預設為
false
)實現此進度時是否應收集遙測資料。
- *criteria:此進度的一系列條件。
戰利品上下文參數 | loot |
---|---|
origin | 玩家位置 |
this_entity | 玩家 |
顯示 編輯
顯示資訊 編輯
顯示資訊的資料格式如下:
- display:進度的顯示資訊。
- announce_to_chat:(可選,預設為
true
)是否在完成此進度時在聊天視窗提示。 - background:(可選,僅根進度可用)進度標籤的背景,這是一個檔案路徑。
- *description:文字元件,表示該進度在進度介面中顯示的描述資訊。
- frame:(可選,預設為
task
)圖示邊框的可選種類。challenge
為;
goal
為;
task
為。
- hidden:(可選,預設為
false
)是否在進度畫面隱藏此進度以及其所有子進度,直到完成此進度。此項對根進度自身無效,但依然能影響其子進度。 - *icon:表示一個物品堆疊,用於顯示進度的圖示。
- show_toast:(可選,預設為
true
)是否在完成此進度後顯示右上角的提示資訊。 - *title:文字元件,表示該進度在進度介面中顯示的標題。
- announce_to_chat:(可選,預設為
一個進度只有滿足以下情況之一才會顯示在進度選單中:
- 此進度為根進度。
- 此進度的上游進度已處於顯示狀態,此進度的display被有效定義且hidden為
false
。
進度選項卡 編輯
建立帶有顯示資料display的根進度(不含parent的進度)後將自動在進度選單邊緣建立一個選項卡。當遊戲載入資料包後,若根進度所在的進度樹中有任意進度被某玩家取得,則該根進度以及其選項卡都會顯示給該玩家,且根進度和選項卡的圖示一致。
根進度的背景影像不會影響選項卡的建立。若根進度未正確從background載入圖片,則背景預設顯示為丟失紋理。
如果一個根進度成功建立了一個選項卡,它的子進度將會展示在該選項卡中(前提是該子進度擁有顯示資料 display)。
定位 編輯
在從資料包載入進度時,遊戲會自動對進度進行排列,確定其位置,並將排列資訊傳送到用戶端。每個進度都有從最近的可見上游進度指向它的箭頭(即,如果其相鄰的上游進度沒有顯示資料,則有從上游進度的上游進度指向它的箭頭)。根進度出現在最左一列,每個箭頭指向下一列中的進度。每一列中的進度基於其檔案名排序。
預設顯示 編輯
有些進度(如原版中由配方解鎖的進度)可能會省去顯示資料,以便它們利用觸發器和獎勵來替代過多的指令和函數並實現更多功能和更靈活的控制。透過省去display資料,這些用於邏輯控制的進度不僅能被一般玩家忽略,還有助於獲得更好的載入效能。
條件 編輯
- *: 若寫明了其父欄位,則該項是必須的。
戰利品上下文參數 | player |
---|---|
origin | 玩家位置 |
this_entity | 玩家 |
可用條件觸發器 編輯
在遊戲中總共定義了下列條件觸發器:
條件觸發器 編輯
所有觸發器均要求玩家線上,如果不線上,即使其之後重新加入伺服器也不會再獲得進度。
所有JSON欄位預設均可選,除非標註了「*」。
allay_drop_item_on_block 編輯
當悅靈確定待投擲的目標方塊後,將物品投擲的瞬間觸發。可用條件:
戰利品上下文參數 | location |
---|---|
origin | 要投擲到的方塊的中心位置 |
this_entity | 與悅靈關聯的玩家 |
block_state | 要投擲到的方塊的方塊狀態 |
tool | 悅靈所持有的物品 |
any_block_use 編輯
玩家與方塊進行任何互動(包括預設互動,以及玩家不空手使用物品等方式)時觸發。可用條件:
戰利品上下文參數 | location |
---|---|
origin | 互動的方塊的中心位置 |
this_entity | 玩家 |
block_state | 互動的方塊的方塊狀態 |
tool | 互動時所使用的物品 |
avoid_vibration 編輯
當振動因其來源玩家處於潛行狀態而被忽略時觸發。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
bee_nest_destroyed 編輯
- conditions:
- block:被破壞的方塊ID,當為
minecraft:beehive
和minecraft:bee_nest
之外的值時不可能透過。 - item:用於破壞該方塊的物品。
- num_bees_inside:該蜂箱/蜂窩被破壞變為物品狀態後其中含有的蜜蜂數量。
- player:將要獲得進度的玩家。詳見上文。
- block:被破壞的方塊ID,當為
bred_animals 編輯
兩個動物繁殖時觸發。可用條件:
戰利品上下文參數 | child、parent、partner |
---|---|
origin | 玩家位置 |
this_entity | 各條件對應的實體 |
brewed_potion 編輯
changed_dimension 編輯
玩家在傳送到另一個維度或死亡後在另一維度重生時觸發。可用條件:
channeled_lightning 編輯
戰利品上下文參數 | victims |
---|---|
origin | 玩家位置 |
this_entity | 被閃電電流擊中的各個實體 |
construct_beacon 編輯
烽火台檢測到基座結構更改時,如果更改後烽火台處於啟動狀態,且這個烽火台上方從第11格起沒有任何方塊,[2]則對烽火台中心位置水平切比雪夫距離10格內,垂直距離向上5格,向下9格內的所有玩家觸發。可用條件:
- conditions:
- level:新的烽火台基座層數。
- player:將要獲得進度的玩家。詳見上文。
consume_item 編輯
玩家消耗了帶有consumable
元件的物品後觸發。可用條件:
- conditions:
- item:物品述詞,檢查被消耗的物品。
- player:將要獲得進度的玩家。詳見上文。
crafter_recipe_crafted 編輯
合成器將物品以實體形式擲出時,對中心位置切比雪夫距離8.5格內的所有玩家觸發。當一次性擲出多個物品時(如合成蛋糕的同時擲出3個鐵桶),每1個物品均會觸發一次。可用條件:
cured_zombie_villager 編輯
戰利品上下文參數 | villager | zombie |
---|---|---|
origin | 玩家位置 | 玩家位置 |
this_entity | 轉化後的村民 | 轉化瞬間的殭屍村民 |
default_block_use 編輯
玩家在非潛行狀態下空手與方塊進行互動時觸發。可用條件:
戰利品上下文參數 | location |
---|---|
origin | 互動的方塊的中心位置 |
this_entity | 玩家 |
block_state | 互動的方塊的方塊狀態 |
effects_changed 編輯
玩家獲得/消除狀態效果時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
this_entity | 狀態效果的來源實體,如果狀態效果為玩家自己加入或移除的則此項不存在 |
enchanted_item 編輯
玩家透過附魔台附魔物品時觸發。可用條件:
- conditions:
- item:物品述詞,檢查附魔後的物品。
- levels:附魔花費的經驗等級。
- player:將要獲得進度的玩家,附魔花費的經驗值已經被扣除。詳見上文。
enter_block 編輯
每遊戲刻,玩家對與其碰撞箱相交的各個方塊分別觸發,或者玩家拋出的終界珍珠進入終界折躍門時對其觸發。可用條件:
- conditions:
- block:檢查方塊的ID。
- state:檢查方塊的方塊狀態。
- <方塊屬性>:檢查指定方塊屬性。如果方塊不滿足條件,那麼測試會失敗。可以為字串或以兩個數字字串表示的數值區間。
- min:數值的最小允許值。
- max:數值的最大允許值。
- <方塊屬性>:檢查指定方塊屬性。如果方塊不滿足條件,那麼測試會失敗。可以為字串或以兩個數字字串表示的數值區間。
- player:將要獲得進度的玩家。詳見上文。
entity_hurt_player 編輯
玩家受傷,即使傷害並不來源於某個實體時觸發[1]。可用條件:
- conditions:
- damage:檢查對玩家造成傷害的類型。
- player:將要獲得進度的玩家。詳見上文。
entity_killed_player 編輯
實體殺死玩家時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
this_entity | 傷害的直接來源實體 |
fall_after_explosion 編輯
戰利品上下文參數 | cause |
---|---|
origin | 玩家位置 |
this_entity | 造成爆炸或風爆的實體 |
fall_from_height 編輯
玩家摔落至地面時觸發。可用條件:
- conditions:
- start_position:位置資訊述詞,檢查開始摔落時的位置。
- distance:距離述詞,檢查玩家到其摔落起始位置的距離。
- player:將要獲得進度的玩家。詳見上文。
filled_bucket 編輯
- conditions:
- item:物品述詞,檢查鐵桶被填充後的物品。
- player:將要獲得進度的玩家。詳見上文。
fishing_rod_hooked 編輯
玩家成功透過釣魚取得物品或者使用釣竿拉實體時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
this_entity | 被拉的實體或浮標 |
hero_of_the_village 編輯
一場突襲勝利後對所有在該場突襲中擊殺過至少一名突襲者的玩家觸發,如果玩家目前為旁觀者模式(通常這發生在極限模式的世界中,例如玩家在突襲中死亡)則不會觸發。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
impossible 編輯
無法觸發,無可用條件。
inventory_changed 編輯
玩家物品欄變化時觸發。可用條件:
- conditions:
- items:一個物品述詞列表,檢查玩家物品欄中的所有物品,該列表中的所有述詞均測試透過後才能達成此條件。每個物品述詞僅需對至少一個物品測試透過即可。
- :一個物品述詞,檢查一項物品。
- slots:
- empty:檢查物品欄中空欄位數量。
- full:檢查物品欄中已被填滿(物品數量大於等於最大堆疊數量)的欄位數量。
- occupied:檢查物品欄中已被填充至少一個物品的欄位數量。
- player:將要獲得進度的玩家。詳見上文。
- items:一個物品述詞列表,檢查玩家物品欄中的所有物品,該列表中的所有述詞均測試透過後才能達成此條件。每個物品述詞僅需對至少一個物品測試透過即可。
item_durability_changed 編輯
物品欄中任何物品以任何形式損害時觸發。可用條件:
- conditions:
- delta:檢查耐久度的變化量,負數代表損耗了耐久值。
- durability:檢查物品的剩餘耐久度。
- item:物品述詞,檢查損害前的物品,可用來檢查物品損害前的耐久度。
- player:將要獲得進度的玩家。詳見上文。
item_used_on_block 編輯
玩家對方塊空手或手持物品時進行某些使用操作時觸發。可用條件:
關於所有可觸發此觸發器的操作詳見MC-259075。
戰利品上下文參數 | location |
---|---|
origin | 互動的方塊的中心位置 |
this_entity | 玩家 |
block_state | 互動的方塊的方塊狀態 |
tool | 互動時所使用的物品 |
kill_mob_near_sculk_catalyst 編輯
伏聆觸媒蔓延時對死亡生物的傷害來源玩家觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 被殺死的實體 |
killed_by_arrow 編輯
箭殺死實體後對發射箭的玩家觸發。可用條件:
戰利品上下文參數 | victims |
---|---|
origin | 玩家位置 |
entity | 被殺死的實體 |
levitation 編輯
- conditions:
- distance:檢查玩家到其懸浮起始點的距離。
- duration:檢查懸浮時間,單位為遊戲刻。
- player:將要獲得進度的玩家。詳見上文。
lightning_strike 編輯
閃電電流消失時對半徑256格內的玩家觸發。可用條件:
戰利品上下文參數 | lightning | bystander |
---|---|---|
origin | 玩家位置 | 玩家位置 |
entity | 消失的閃電電流 | 在範圍內未被閃電電流擊中的實體 |
location 編輯
所有玩家每20遊戲刻(1秒)觸發一次。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
nether_travel 編輯
- conditions:
- start_position:檢查玩家被傳送至地獄前的最終位置。
- distance:檢查玩家被傳送後所在的地獄位置以及其返回後所在的主世界位置之間的距離。
- player:將要獲得進度的玩家。詳見上文。
placed_block 編輯
玩家放置方塊物品、水或熔岩,以及使用打火石點火時觸發,但使用火焰彈點火時不會觸發。可用條件:
戰利品上下文參數 | location |
---|---|
origin | 放置的方塊的中心位置 |
this_entity | 玩家 |
block_state | 放置的方塊的方塊狀態 |
tool | 放置時所使用的物品 |
player_generates_container_loot 編輯
玩家與可疑的方塊或容器互動並使之按照戰利品表生成戰利品時觸發。可用條件:
player_hurt_entity 編輯
玩家傷害實體(包括自己)時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 被傷害的實體 |
player_interacted_with_entity 編輯
玩家與實體互動時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 互動的實體 |
player_killed_entity 編輯
玩家殺死實體時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 被殺死的實體 |
recipe_crafted 編輯
玩家合成配方時觸發。可用條件:
recipe_unlocked 編輯
玩家解鎖配方時觸發。可用條件:
ride_entity_in_lava 編輯
- conditions:
- start_position:檢查玩家開始騎乘實體時所在的位置。
- distance:檢查玩家開始騎乘的位置到目前位置的距離。
- player:將要獲得進度的玩家。詳見上文。
shot_crossbow 編輯
- conditions:
- item:物品述詞,檢查發射所使用的弩。
- player:將要獲得進度的玩家。詳見上文。
slept_in_bed 編輯
玩家上床睡覺時觸發。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
slide_down_block 編輯
玩家從蜂蜜塊上滑下時觸發。可用條件:
- conditions:
- block:檢查玩家所滑下的方塊,為
honey_block
之外的值時不可能透過。 - state:檢查玩家所滑下的方塊的方塊狀態。蜂蜜塊並沒有任何方塊屬性,故此項實際上並不能檢查任何條件。
- <方塊屬性>:(可選)檢查指定方塊屬性。如果方塊不滿足條件,那麼測試會失敗。
- min:(可選)數值的最小允許值。
- max:(可選)數值的最大允許值。
- <方塊屬性>:(可選)檢查指定方塊屬性。如果方塊不滿足條件,那麼測試會失敗。
- player:將要獲得進度的玩家。詳見上文。
- block:檢查玩家所滑下的方塊,為
started_riding 編輯
實體被騎乘時對所有玩家乘客觸發。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
summoned_entity 編輯
- 鐵魔像和雪人被透過搭建結構召喚時,對自身位置切比雪夫距離5格範圍內的所有玩家觸發。
- 凋零怪被透過搭建結構召喚時,對自身位置切比雪夫距離50格範圍內的所有玩家觸發。
- 終界龍被復活時,對在終界中距離
0,0,0
不超過192格的所有玩家觸發。
可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 被召喚的實體 |
tame_animal 編輯
玩家馴服動物時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 被馴服的實體 |
target_hit 編輯
玩家射中標靶時觸發。可用條件:
戰利品上下文參數 | projectile |
---|---|
origin | 玩家位置 |
entity | 被用來射擊標靶的投射物 |
thrown_item_picked_up_by_entity 編輯
實體撿起玩家扔出的物品時對扔出物品的玩家觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 撿起物品的實體 |
thrown_item_picked_up_by_player 編輯
玩家撿起實體扔出的物品時觸發。可用條件:
戰利品上下文參數 | entity |
---|---|
origin | 玩家位置 |
entity | 扔出物品的實體 |
tick 編輯
每遊戲刻對所有玩家觸發一次。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
used_ender_eye 編輯
- conditions:
- distance:檢查玩家與終界之眼指向的要塞的水平距離。
- player:將要獲得進度的玩家。詳見上文。
used_totem 編輯
玩家使用不死圖騰免於死亡時觸發。可用條件:
- conditions:
- item:物品述詞,檢查消耗的不死圖騰。
- player:將要獲得進度的玩家。詳見上文。
using_item 編輯
每個遊戲刻玩家使用持續使用的物品時觸發。可用於弓、弩、蜂蜜瓶、鮮奶桶、藥水、盾牌、望遠鏡、三叉戟、食物物品和終界之眼。大多數點擊一次即可啟動的物品,如釣竿,不受此觸發器影響。可用的條件:
- conditions:
- item:物品述詞,檢查被使用的物品。
- player:將要獲得進度的玩家。詳見上文。
villager_trade 編輯
玩家成交一項交易時觸發。可用條件:
戰利品上下文參數 | villager |
---|---|
origin | 玩家位置 |
entity | 參與交易的村民或流浪商人 |
voluntary_exile 編輯
玩家觸發一場新的突襲時觸發。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
歷史 編輯
Java版 | |||||||
---|---|---|---|---|---|---|---|
1.12 | 17w16b | 加入了item_durability_changed 觸發器。 | |||||
17w17a | 加入了levitation 觸發器。 | ||||||
加入了location 觸發器的一個新的feature 條件。 | |||||||
17w17b | 加入了changed_dimension 觸發器,有兩種可用條件:to 和from ,都允許「overworld」「the_nether」或「the_end」為參數。 | ||||||
「位置」共享對象現在有了一個名為dimension 的新的字串(和上述內容有相同的值)。 | |||||||
17w18a | 加入了新的tick 和tame_animal 觸發器。 | ||||||
加入了新的show_toast 和announce_to_chat 顯示選項。 | |||||||
「entity」對象以及levitation 觸發器現在使用一個共享的「distance」對象。它們檢查玩家是否在一定的x 軸、y 軸或z 軸範圍內或之外,儘管水平位置不包括Y軸。 | |||||||
進度的載入現在嚴格要求JSON語法了。 | |||||||
17w18b | 加入了新的進度觸發器:consume_item 、placed_block 和arbitrary_player_tick 。 | ||||||
pre1 | 加入了hidden ,隱藏進度介紹的設定,預設為否。 | ||||||
加入了新的effects_changed 、used_totem 、nether_travel 的進度觸發器。 | |||||||
加入了function 作為進度的獎勵,移除了進度中的commands 獎勵。 | |||||||
進度中的物品和實體將擁有一個額外的NBT 欄位。 | |||||||
進度中的實體將有額外的effects 與location 欄位。 | |||||||
移除了arbitrary_player_tick 觸發器。 | |||||||
1.13 | 17w43a | 自訂進度移動到了資料包中,此前位於存檔的data/advancements 目錄下工作。 | |||||
pre6 | 在進度圖示部分加入了nbt 欄位。 | ||||||
1.15 | 19w46a | 加入了觸發器bee_nest_destroyed 、safely_harvest_honey 和slide_down_block 。 | |||||
1.16 | 20w09a | 加入了target_hit 觸發器。 | |||||
20w10a | 修改了target_hit 觸發器。 | ||||||
20w18a | 現在所有的實體述詞欄位可以指定列表以使用戰利品表述詞格式。 | ||||||
20w20a | 加入了觸發器thrown_item_picked_up_by_entity 、player_generates_container_loot 和item_used_on_block 。 | ||||||
移除了觸發器safely_harvest_honey ,改用item_used_on_block 替代。 | |||||||
pre6 | 加入了觸發器player_interacted_with_entity 。 | ||||||
1.17 | 21w16a | 觸發器inventory_changed 現在開啟容器就能觸發,而在此之前只有改變物品欄時才觸發。[4] | |||||
pre1 | 加入了觸發器started_riding 、lightning_strike 和using_item 。 | ||||||
1.18 | 21w39a | 加入了觸發器fall_from_height 和ride_entity_in_lava 。 | |||||
修改了觸發器nether_travel 。 | |||||||
1.19 | 22w13a | 加入了觸發器kill_mob_near_sculk_catalyst 。 | |||||
22w14a | 加入了觸發器item_delivered_to_player 和allay_drop_item_on_block 。 | ||||||
移除了location 、slept_in_bed 、hero_of_the_village 和voluntary_exile 進度觸發器中的location 欄位。 | |||||||
22w15a | 加入了觸發器avoid_vibration 和thrown_item_picked_up_by_player 。 | ||||||
移除了觸發器item_delivered_to_player ,改用thrown_item_picked_up_by_player 替代。 | |||||||
1.20 | 23w16a | 加入了觸發器recipe_crafted 。 | |||||
23w18a | 修改了觸發器placed_block 、item_used_on_block 和allay_drop_item_on_block 的條件格式。 | ||||||
1.20.5 | 24w03a | 加入了進度觸發器default_block_use 和any_block_use 。 | |||||
24w12a | 加入了進度觸發器crafter_recipe_crafted 和fall_after_explosion 。 | ||||||
1.21 | 24w21a | 將註冊進度的資料包資料夾advancements 重新命名為advancement 。 | |||||
1.21.2 | 24w34a | 更改了consume_item 觸發器的觸發方式,現在它直接由新加入的consumable 物品堆疊元件觸發。 | |||||
24w37a | 將killed_by_crossbow 重新命名為killed_by_arrow 。 | ||||||
加入了新可選物品述詞欄位fired_from_weapon ,用於匹配發射箭的物品。 | |||||||
Java版(即將到來) | |||||||
1.21.5 | 25w04a | 現在background欄位不再需要textures/前綴與.png後綴。 |
已移除觸發器 編輯
arbitrary_player_tick 編輯
每遊戲刻僅對一名玩家觸發。無可用條件。
item_delivered_to_player 編輯
當悅靈向玩家投擲物品時觸發。可用條件:
- conditions:
- player:將要獲得進度的玩家。詳見上文。
一個例子: [顯示]
{
"criteria": {
"example": {
"trigger": "minecraft:item_delivered_to_player",
"conditions": {
"player": [
{
"condition": "minecraft:entity_properties",
"predicate": {
"location": {
"dimension": "minecraft:the_nether"
}
},
"entity": "this"
}
]
}
}
}
}
player_damaged 編輯
玩家受到傷害時觸發。可用條件:
- conditions:
- damage:用於匹配傷害來源的述詞。
safely_harvest_honey 編輯
killed_by_crossbow 編輯
玩家使用弩遠程殺死生物或玩家時觸發。可用條件:
參考 編輯
外部連結 編輯
導覽 編輯
[隱藏] | |||||||||
---|---|---|---|---|---|---|---|---|---|
基本概念 | |||||||||
資料包 |
| ||||||||
資源包 | |||||||||
相關條目 | |||||||||
相關教學 | |||||||||
參考實例 |
|