Extractioncraft 戰利品系統
Extractioncraft 擁有一個分層的戰利品系統,建立在三個概念之上:內容包引用戰利品表,戰利品表引用戰利品池,戰利品池定義可以掉落的實際物品。
概覽
Content Package
-> chestLootTables / barrelLootTables (weighted selection)
-> Loot Table
-> lootTable entries (each has a chance to roll)
-> Loot Pool
-> eliteMobsLoot / vanillaLoot (weighted selection of one item)
戰利品表
戰利品表設定位於 loot_tables/ 資料夾中。每個檔案定義一個戰利品池項目列表,其中每個項目都有獨立的機率產生物品。
| 鍵 | 類型 | 預設值 | 說明 |
|---|---|---|---|
isEnabled | Boolean | true | 此戰利品表是否啟用 |
spawnPools | String list | [] | BetterStructures 生成池名稱。當與匹配生成池關聯的 EliteMob 被擊殺時,將使用此戰利品表產生掉落物。 |
lootTable | List of objects | [] | 每個項目引用一個戰利品池檔案名稱和一個 chance(0.0 到 1.0) |
戰利品表項目格式
lootTable:
- filename: my_loot_pool.yml
chance: 0.5
- filename: another_pool.yml
chance: 0.2
每個項目獨立擲骰。chance 為 0.5 表示該池有 50% 的機率產生掉落物。
戰利品池
戰利品池設定位於 loot_pools/ 資料夾中。每個池定義一組可能的物品。當池被觸發時,會根據加權機率選擇一個物品。
| 鍵 | 類型 | 預設值 | 說明 |
|---|---|---|---|
isEnabled | Boolean | true | 此戰利品池是否啟用 |
eliteMobsLoot | List of objects | [] | 可以掉落的 EliteMobs 自訂物品 |
vanillaLoot | List of objects | [] | 可以掉落的原版 Minecraft 物品 |
EliteMobs 戰利品項目
eliteMobsLoot:
- filename: my_elite_item.yml
weight: 1.0
- filename: another_item.yml
weight: 0.5
filename 引用 EliteMobs 自訂物品設定。weight 決定在池中所有項目之間的相對掉落機率。
原版戰利品項目
vanillaLoot:
- material: DIAMOND
weight: 1.0
- material: GOLD_INGOT
weight: 2.0
material 是 Bukkit Material 列舉名稱。weight 的作用與菁英戰利品項目相同。池中所有菁英和原版項目在單次加權選擇中競爭。
容器戰利品(箱子和木桶)
在比賽期間,箱子和木桶由 BetterStructures 放置。當玩家右鍵點擊箱子或木桶時:
- 玩家必須在容器開啟時靜止不動 3 秒。
- 移動會取消互動。
- 成功後,從內容包的
chestLootTables或barrelLootTables列表中選擇一個戰利品表(加權選擇)。 - 選定的戰利品表項目各自獨立擲骰,產生的物品掉落在容器位置。
- 容器在被掠奪後會被摧毀(替換為空氣)。
在比賽期間,活躍的容器每 10 刻顯示傳送門粒子效果,使玩家更容易發現它們。
怪物擊殺戰利品
當 EliteMob 在比賽期間死亡時,外掛程式會檢查其 BetterStructures 生成池。任何 spawnPools 列表中包含該怪物生成池的戰利品表都會在怪物死亡位置產生掉落物。怪物的等級會傳遞給 EliteMobs 以產生等級相應的物品。
撤離時的物品行為
- 成功撤離的玩家保留所有物品。退出時,其物品欄中的物品會被靈魂綁定(使用 EliteMobs 靈魂綁定附魔)。
- 未能撤離的玩家(離開、斷線或被世界邊界抓住)在
config.yml中deleteItemsOnFailToExtract為true時會失去所有物品欄物品。