Minecraft Wiki

除另有声明,转载时均必须注明出处若簡繁轉換出錯,請以遊戲內為準请勇于扩充与修正内容有兴趣逛逛我们的微博沟通交流,欢迎到社区专页需要协助,请在告示板留言

了解更多

Minecraft Wiki
Minecraft Wiki
Advertisement

戰利品表(Loot table)是一種技術性JSON表,用於決定各個情況下生成什麼物品,比如自然生成的容器的內容物破壞方塊時的掉落物殺死實體時的掉落物釣魚時可以釣上的物品豬布林的以物易物。它不會影響經驗的掉落和不掉落物品的實體,比如大型史萊姆產生的史萊姆和蟲蝕方塊中的蠹魚

用途[]

戰利品表由諸多字串標籤和一個長整型標籤組成,這些字串標籤決定了要使用的戰利品表,長整型標籤決定種子。在相同的種子下生物或者是容器會掉落相同的物品。戰利品表不決定容器內容物的排列方式。這種隨機完全基於種子。

對於儲物箱陷阱儲物箱漏斗儲物箱礦車漏斗礦車發射器投擲器界伏盒木桶而言:

    •  LootTable:戰利品表用於容器在將來被打開,或者內容物發生其他互動的時候進行物品的裝填。若是一個大儲物箱,則僅帶有此標籤的一半儲物箱會受到影響。
    •  LootTableSeed:生成戰利品表的種子,類似於生成世界的種子。此項為空或者是0時則使用隨機序列

一旦容器內容物發生了互動(如打開儲物箱或破壞儲物箱等),這些標籤會被移除,也只有此時,戰利品才會出現在容器中。

生物而言:

  • 根標籤。
    •  DeathLootTable:戰利品表決定生物死亡時的掉落物品。
    •  DeathLootTableSeed:生成戰利品表的種子,類似於生成世界的種子。此項為空或者是0時將使用隨機序列

生物和容器的戰利品表可以用/execute store/data merge修改。玩家還可以使用指令/loot將戰利品表的內容給予實體或放進世界。

標籤[]

戰利品表完全使用標準的JSON格式。下面是具體的格式。

  • :根標籤。
    •  type:(可選,預設為generic戰利品表上下文類型
    •  random_sequence:(可選)生成戰利品使用的隨機序列命名空間ID。
    •  functions:(可選)對將要產生的物品堆應用物品修飾器,修飾器按順序應用。
    •  pools:(可選)這個戰利品表的隨機池的列表。每個被使用的隨機池給予抽獎次數從物品列表中生成物品。
      • :一個隨機池。
        •  conditions:(可選)決定了使用這個隨機池的條件。如果指定了多個條件,則必須都滿足。
        •  functions:(可選)對將要產生的物品堆應用物品修飾器,修飾器按順序應用。
        •  rolls:指定在抽獎池中抽獎的基礎次數。
          • 數值提供器
        •  bonus_rolls:(可選,預設為0)指定每點幸運使得在此隨機池中多抽獎的一定範圍內的隨機的次數。與幸運值相乘後向下取整。
          • 數值提供器
        •  entries:這個隨機池能產生的所有物品的列表。每一次抽獎會隨機根據權重選擇一個符合條件的被抽出項。
          • :一個被抽出項。
            •  conditions:(可選)決定抽中該項的條件。如果指定了多個條件,則必須都滿足。
            •  type:被抽出項的類型。可以是複合被抽出項(alternatives - 從列表中選擇第一個滿足條件的子項、group - 選擇所有子項、sequence - 選擇子項直到有一個子項不滿足條件為止)或單一被抽出項(dynamic - 生成特定動態物品堆、empty - 什麼都不生成、item - 生成單一物品堆、loot_table - 從另一個戰利品表生成物品堆、tag - 生成指定物品標籤的物品堆)。
              如果被抽出項是一個複合被抽出項,附加標籤如下:
            •  children:待選被抽出項的列表。
              • :一個被抽出項。
                • 內部格式與上級相同。
              如果被抽出項是一個單一被抽出項,附加標籤如下:
            •  functions:(可選)對將要產生的物品堆應用物品修飾器,修飾器按順序應用。
            •  quality:(可選,預設為0,小於0修正為0)基於戰利品表上下文實體的幸運修改物品堆被選擇的權重。經過修改的權重為,其中b weight的值,q為此項的值,l為上下文中killer_entity(戰利品表類型為entity時)或this_entity(戰利品表類型不為entity時)實體的generic.luck屬性值。
            •  weight:(可選,預設為1)決定了這個物品堆被選擇的基礎權重。物品堆被選中的機率為ws,其中w是物品堆經過幸運修改後的權重,s是所有物品堆的總權重。
              如果typedynamic,除單一被抽出項標籤外,附加標籤如下:
            •  name:動態計算物品堆的命名空間ID。可以為sherds飾紋陶罐動態掉落4個對應陶器碎片)和contents界伏盒內物品)。
              如果typeitem,除單一被抽出項標籤外,附加標籤如下:
            •  name:生成物品堆物品的命名空間ID。如果物品修飾器不存在,則物品數量預設為1。
              如果typeloot_table,除單一被抽出項標籤外,附加標籤如下:
            •  name:引用戰利品表的命名空間ID,不能直接或間接遞歸自身戰利品表。
              如果typetag,除單一被抽出項標籤外,附加標籤如下:
            •  expand:決定物品堆權重行為。如果為true,則物品標籤內每個物品堆相互獨立且權重相同;如果為false,標籤中的所有物品堆共用一個權重。
            •  name:生成物品堆物品標籤的命名空間ID。如果物品修飾器不存在,則物品數量預設為1。

物品修飾器[]

主條目:物品修飾器

戰利品表使用了多種給物品加入特殊資料的物品修飾器,比如堆疊數或者附魔。

位於資料包<namespace>/item_modifiers目錄下的檔案擁有和這些物品修飾器相同的格式結構。

所有的物品修飾器請參見物品修飾器

戰利品表述詞[]

主條目:述詞

戰利品表使用了諸多判斷條件來設定實體的掉落和隨機池。參考述詞以了解所有可能的的條件。

戰利品表上下文[]

當遊戲生成戰利品時,會建立一個「上下文」用於儲存目前用於生成戰利品的參數,並將此上下文傳入戰利品表進行計算。上下文內包含各種參數,以供戰利品表複雜的條件檢查和物品修飾使用。

上下文參數[]

戰利品表上下文中共含有10種參數,這些參數根據戰利品表類型的不同可能不存在。

  • this_entity - 引起戰利品生成的實體,在實體述詞中為this
  • last_damage_player - 傷害死亡實體的最後玩家,在實體述詞中為killer_player
  • killer_entity - 導致實體死亡的傷害追蹤來源實體,在實體述詞中為killer
  • direct_killer_entity - 直接導致實體死亡的實體,在實體述詞中為direct_killer
  • damage_source - 導致實體死亡的傷害來源
  • origin - 引起戰利品生成的來源位置
  • block_state - 互動的方塊狀態
  • block_entity - 互動的方塊實體
  • tool - 互動使用的工具
  • explosion_radius - 爆炸半徑

上下文類型[]

載入資料包時,將使用根標籤下的 type欄位來檢查此戰利品表使用的上下文參數是否與指定的上下文類型匹配。該欄位可以檢查戰利品表檔案中的錯誤,而無需在遊戲中應用它們。如果戰利品表用於特定上下文,則指定類型欄位允許遊戲檢查戰利品表檔案是否使用該上下文中不會提供的參數。

根據不同類型,可能會向述詞、物品修飾器和數值提供器提供不同的參數。下列是遊戲內14種戰利品表上下文類型:

empty - 空戰利品表
  • 當引用的戰利品表不存在時,遊戲預設使用此上下文類型的戰利品表。
  • 此上下文類型無法傳遞任何上下文參數。
generic - 預設上下文類型
  • 不用於生成戰利品。
  • 提供所有上下文參數,使用此類型代表載入資料包時不會檢查此戰利品表的上下文參數。
advancement_reward - 進度獎勵戰利品表
  • 玩家獲得進度獎勵戰利品時使用此上下文類型。
  • 此類型上下文中一定提供origin參數代表玩家的位置,一定提供this_entity參數代表玩家實體。
archaeology - 考古戰利品表
  • 清刷可疑的方塊使用的戰利品表的類型,不用於計算,負責定義戰利品表。
  • 此類型上下文中一定提供origin參數代表方塊的位置,可能提供this_entity參數代表清刷方塊的實體。
barter - 以物易物戰利品表
  • 與豬布林以物易物時使用此上下文類型。
  • 此類型上下文中一定提供this_entity參數代表正在以物易物的豬布林實體。
block - 方塊戰利品表
  • 方塊被破壞時使用此戰利品上下文類型。
  • 使用指令/loot … mine <pos>也可以使用此類型上下文。
  • 此類型上下文中一定提供origin參數代表被破壞的方塊位置,一定提供block_state參數代表被破壞方塊的方塊狀態,一定提供tool參數代表破壞時使用的工具,可能提供this_entity參數代表破壞方塊的實體,可能提供block_entity參數代表破壞方塊包含的方塊實體,可能提供explosion_radius代表此方塊被爆炸破壞時爆炸的威力。
chest - 容器戰利品表
entity - 生物死亡戰利品表
  • 生物死亡時計算生物掉落物使用此上下文類型。
  • 使用指令/loot … kill <target>也可以使用此類型上下文。
  • 此類型上下文中一定提供this_entity參數代表死亡的實體,一定提供origin參數代表死亡位置,一定提供damage_source參數代表導致實體死亡的傷害來源,可能提供killer_entity參數代表導致實體死亡的傷害追蹤來源實體,可能提供direct_killer_entity參數代表直接導致實體死亡的實體,可能提供last_damage_player參數代表傷害死亡實體的最後玩家。
fishing - 釣魚戰利品表
  • 釣魚時使用此上下文類型。
  • 使用指令/loot … fish <loot_table>也可以使用此類型上下文。
  • 此類型上下文中一定提供origin參數代表浮標的位置,一定提供tool參數代表使用的工具,可能提供this_entity參數代表浮標實體。
gift - 禮物戰利品表
  • 村民給予玩家禮物、嗅探獸刨挖時使用此上下文類型。
  • 此類型上下文中一定提供origin參數代表貓、村民或嗅探獸的位置,一定提供this_entity參數代表貓、村民或嗅探獸實體。
advancement_entity - 進度實體述詞上下文
  • 不用於生成戰利品,只用於進度實體述詞判斷。
  • 此類型上下文中一定提供origin參數代表觸發準則的玩家位置,一定提供this_entity參數代表被檢查的實體。
advancement_location - 進度位置資訊述詞上下文
  • 不用於生成戰利品,只用於進度位置資訊述詞判斷。
  • 此類型上下文中一定提供origin參數代表互動的位置,一定提供this_entity參數代表玩家,一定提供tool參數代表玩家使用的工具,一定提供block_state參數代表進行互動的方塊。
command - 指令上下文
  • 不用於生成戰利品,只用於述詞判斷和修飾物品。
  • /item modify/execute (if|unless) predicate使用此上下文。
  • 此類型上下文中一定提供origin參數代表指令的執行位置,可能提供this_entity參數代表執行指令的實體,即目標選擇器@s
selector - 目標選擇器上下文
  • 不用於生成戰利品,只用於述詞判斷。
  • 目標選擇器參數predicate內部使用。
  • 此類型上下文中一定提供origin參數代表被檢測實體的位置,一定提供this_entity參數代表被檢測的實體。

戰利品表[]

以下這些是預設存在的戰利品表。

資料包[]

主條目:資料包

可以使用資料包修改原有的戰利品表或者新建一個。以下是其檔案結構:

  • 世界儲存資料夾
    • datapacks
      • 資料包名稱
        • data
          • 自訂命名空間
            • loot_tables
              • 戰利品表名稱(.json)

如果該資料夾的名字為minecraft,遊戲就會用裡面的檔案來覆蓋遊戲主檔案的loot_tables裡的特定戰利品表(存档/datapacks/数据包名称/data/minecraft/loot_tables路徑等於遊戲主檔案裡的/data/minecraft/loot_tables,同路徑和名字的戰利品表會取代.jar裡相對的檔案)。比如存檔裡的datapacks/数据包名称/data/minecraft/loot_tables/entities/zombie.json就會覆蓋原版中的殭屍戰利品表,地圖中所有殭屍都會根據該表掉落。而存檔裡的datapacks/数据包名称/data/其他的命名空间/loot_tables/entities/zombie.json或者是datapacks/数据包名称/minecraft/loot_tables/zombie.json不會覆蓋掉預設的戰利品表,而可以用NBT標籤來指定實體使用此自訂的戰利品表。

戰利品表名稱的格式為命名空間ID,比如testing:testing1就是指定存档/datapacks/数据包名称/data/testing/loot_tables/裡的testing1.json。而testing:test/testing2就是指定存档/datapacks/数据包名称/data/testing/loot_tables/test/裡的testing2.json。命名空間如果是minecraft,則可以省略。

歷史[]

關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


關於「戰利品表」的歷史,請見各版本頁面。


語言

Advertisement