本站文本內容除另有聲明外,均在知識共享 署名-非商業性使用-相同方式共享 3.0 協議下提供。(詳情… 本站文本內容除另有聲明外,均在知識共享 署名-非商業性使用-相同方式共享 3.0 協議下提供。(詳情…中文Minecraft Wiki是完全公開的。歡迎持續參與翻譯工作中文Minecraft Wiki是完全公開的。歡迎持續參與翻譯工作Minecraft中文Wiki微博正在更新!或許有興趣去看看Minecraft中文Wiki微博正在更新!或許有興趣去看看翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。翻譯或創建頁面之前,不妨看看譯名標準化Wiki條例頁面。想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。想與其他用戶進行編輯上的溝通?社區專頁正是為此創建的。需要管理員的協助?在管理員告示板留言也許可以幫到您。需要管理員的協助?在管理員告示板留言也許可以幫到您。

戰利品表

出自 Minecraft Wiki
前往: 導覽搜尋
此頁面的部分內容由於太久沒更新而已過期。
你可以幫助我們來更新此頁面

戰利品表(Loot table,前稱可掠奪物品表)是一種技術性JSON表。它的功能是用來替換自然生成的容器的內容物殺死實體時的掉落物釣魚時可以釣上的物品以及破壞方塊時的掉落物。

用途[編輯 | 編輯原始碼]

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

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







    •  LootTable:戰利品表用於容器在將來被打開,或者內容物發生其他互動的時候進行物品的裝填。 若是一個大儲物箱,則僅帶有此標籤的一半儲物箱會受到影響。

    •  LootTableSeed:生成戰利品表的種子。此項為空或者是0時則使用隨機的種子。

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

生物而言:


  • 根標籤。

    •  DeathLootTable:戰利品表決定生物死亡時的掉落物品。

    •  DeathLootTableSeed:生成戰利品表的種子,類似於生成世界的種子。此項為空或者是0時將使用隨機的種子。

生物和容器的戰利品表可以用/entitydata/blockdata/execute store/data merge修改。

您還可以使用指令/loot[即將到來]將戰利品表的內容給予實體或放進世界。

自定義地圖可以使用戰利品表調整容器中出現的戰利品和生物的掉落物。也可以修改原有的戰利品表或者新建一個。文件結構如下:

  • <地圖存檔資料夾>
    • datapacks
      • 資料包名稱
        • data
          • 命名空間
            • loot_tables

預設文件在命名空間「minecraft」下,而自定義地圖與自定義生物也都有自己的命名空間。

若想要覆蓋預設戰利品表,應把它們放到命名空間「Minecraft」下。戰利品表由entities、chests和fishing組成,詳見戰利品表。若要使用自定義命名空間,則應把戰利品表標籤設定為「命名空間:戰利品表」格式,「命名空間」是命名空間的名稱,「戰利品表」是戰利品表的文件名稱去除.json後綴。

標籤[編輯 | 編輯原始碼]

戰利品表完全使用標準的JSON格式。下面是用到的tag列表。


  •  根標籤

    •  pools:這個實體的隨機池的全部列表。每個隨機池中都會隨機抽取列表(entries)裡面的物品。每個隨機池都會指定其抽取次數(rolls)。

      •  一個隨機池

        •  conditions:決定了使用這個隨機池的條件。

          •  一個條件

            •  condition:這個條件的名稱。具體名稱將在下方列出。

        •  rolls:決定了在此隨機池中抽獎的準確次數。

        •  rolls:決定了在此隨機池中抽獎的次數範圍,具體次數為該範圍內的隨機數。

          •  min:最小次數。

          •  max:最大次數。

        •  bonus_rolls:決定了每點幸運會使得在此隨機池中多抽獎的次數。加起來後會向下取整。

        •  bonus_rolls:決定了每點幸運使得在此隨機池中多抽獎的次數的範圍,取範圍內的隨機數。加起來會向下取整。

          •  min:額外抽獎的最小次數。

          •  max:額外抽獎的最大次數。

        •  entries:這個池中能抽出的東西列表。每一次抽獎會隨機根據權重選擇一個條目(如果它符合指定條件)。

          •  一個被抽出項

            •  conditions:決定抽中該項的條件。

              •  一個條件

                •  condition:條件名。具體名稱將在下方列出。

            •  type:抽出項的種類。可以填寫item選擇物品,或loot_table以讀取資料夾中的一個戰利品表,或者empty什麼都不生成。

            •  name
              • 如果type是item,則填寫物品的ID。比如minecraft:diamond。在沒有受到函數執行的影響的情況下,其數量為1。
              • 如果type是loot_table,則填寫該物品表ID。比如minecraft:gameplay/fishing/junk

            •  functions:決定了抽中這個物品時對其執行函數。如果沒有被設定,它將不會被使用。必須按照順序排放(會按照順序執行),比如looting_enchant必須放在set_count之後以正常運作。

              •  一個函數

                •  function:函數名稱(注意不是資料包中的函數)。具體名稱將在下方列出。

                •  conditions:決定了執行該函數的條件。

                  •  一個條件

                    •  condition:條件的名字。具體名稱將在下方列出。

            •  weight:決定了這個物品被選擇的權重。這個值越高物品便越容易被選擇(機率為這個物品的權重所有考慮的物品權重之和)。

            •  quality:基於殺死/開啟儲物箱/釣魚的玩家的幸運修改條目的weight。公式為weight + (quality * generic.luck)(向下取整)。


函數[編輯 | 編輯原始碼]

戰利品表使用了多種給物品添加特殊數據的函數,比如堆疊數或者附魔。下方是這些函數的列表以及使用它們用到的標籤。這些tag都位於
 function標籤的下方。

  • enchant_randomly - 為物品附上一個隨機的附魔。附魔的等級也是隨機的。

    •  enchantments:能夠附上的附魔。如果沒有此標籤,所有可以對該物品附上的附魔都可能被附上。
  • enchant_with_levels - 決定了物品的附魔等級。

    •  treasure:決定了物品是否能被附上寶藏附魔。

    •  levels:決定了該附魔的具體等級。

    •  levels:決定了該附魔的等級範圍,在範圍內隨機抽取。

      •  min:使用的等級的最小值。

      •  max:使用的等級的最大值。
  • furnace_smelt - 物品將變為在熔爐熔煉後的狀態。用於被火燒死動物死後掉落燒熟的食物。
  • looting_enchant - 決定了掠奪附魔對該物品數量的影響。如果未使用,掠奪附魔將對該物品沒有效果。

    •  count:決定了每等級掠奪附魔使得物品需要增加的準確數量。

    •  count:決定了每等級掠奪附魔使得物品需要增加的數量範圍,在範圍內取隨機值。

      •  min:數量增加的最小值。

      •  max:數量增加的最大值。

    •  limit:指定在計算物品數量增加時的最大限制(也就是說,如果掠奪附魔等級足夠高使算出數量超出此限制,則使用限制的數量而不是算出的數量)。如果這個值為0,則不會有限制。
  • set_attributes - 為物品加上屬性修飾符。

    •  modifiers

      •  一個修改器

        •  name:修改器的名稱。

        •  attribute:此修改器修改的屬性的名稱。

        •  operation:修改數值的方法。必須是addition、multiply_base或multiply_total。

        •  amount:指定修改的準確數值。

        •  amount:指定修改的數值的範圍,在範圍內隨機抽取。

          •  min:最小數值。

          •  max:最大數值。

        •  id:可選:修改器的UUID。如果沒有指定,新的UUID將會被生成。

        •  slot:只有當該物品放在指定的格子時,該修改器才有用,這個數值可以是以下任何一個:mainhand、offhand、feet、legs、chest、head。

        •  slot:列表中的其中一個格子會被隨機選擇
  • set_count - 設定該物品的堆疊數量。

    •  count:決定了物品的具體堆疊數量。

    •  count:決定了物品的堆疊數量的最大值和最小值,在該範圍內隨機抽取。

      •  min:堆疊數量的最小值。

      •  max:堆疊數量的最大值。
  • set_damage - 設定工具的損傷值(耐久度)。

    •  damage:指定傷害的比率(1.0是沒有使用過,0.0則是剩下0耐久度)。

    •  damage:指定一個隨機的傷害比率(在一個範圍之內)。

      •  min:最小值。

      •  max:最大值。
  • set_name - 設定該物品的自定義名稱。它是一個JSON文本

    •  name:純文本名稱。

    •  nameJSON文本組合,允許設定其顏色、翻譯等。
  • set_nbt - 在該物品上增加nbt標籤。

    •  tag:添加nbt標籤,和指令的使用方法類似。注意最外層括號需要書寫花括號({})以及內部的引號需要使用轉義符(\)標記。

條件[編輯 | 編輯原始碼]

戰利品表使用了諸多判斷條件來設定實體的掉落,隨機池或者函數。下面是條件的列表,以及使用它們所用到的標籤。標籤都位於
 condition下方。

  • entity_properties -決定了該條件的要求。

    •  entity:決定了被要求滿足條件的實體。設定成this用於檢測死亡的實體,killer檢測殺死該實體的實體,killer_player檢測殺死該實體的玩家。

    •  properties:必須滿足的條件。

      •  on_fire:實體必須/不能是著火的。
  • entity_scores - 檢測實體的分數。

    •  entity:決定了被要求滿足條件的實體。設定成this用於檢測死亡的實體,killer檢測殺死該實體的實體,killer_player 檢測殺死該實體的玩家。

    •  scores:檢測的分數。

      •  一個記分項:實體對應的記分項的值必須為一個指定的值。記分項名稱為該標籤的名稱,指定的值為該標籤的值。

      •  一個記分項:實體對應的記分項的值必須在該範圍內。

        •  min:分數的最小值。

        •  max:分數的最大值。
  • killed_by_player - 要求實體需要由玩家殺死。

    •  inverse:只有實體不被玩家殺死時候才會掉落。
  • random_chance - 隨機生成一個0.0-1.0的數值,並檢測是否小於此數值,如果隨機數小於指定數值則成功。

    •  chance:成功幾率(0.0-1.0以內的數值)
  • random_chance_with_looting - 隨機生成一個0.0-1.0的數值,並檢測是否小於此數值,如果隨機數小於指定數值則成功。(會被掠奪附魔的影響)

    •  chance:基礎成功幾率(0.0-1.0以內的數值)

    •  looting_multiplier:每級掠奪附魔對基礎幾率的影響。公式是chance + looting_level * looting_multiplier

戰利品表[編輯 | 編輯原始碼]

以下這些是預設存在的戰利品表。可以在存檔裡加入更多的表。

  • loot_tables
    • chests - 資源儲物箱裡的物品。
      • abandoned_mineshaft - 廢棄礦坑中找到的儲物箱礦車
      • buried_treasure - 埋藏的寶藏
      • desert_pyramid - 沙漠神殿的寶藏室裡的儲物箱。
      • end_city_treasure - 終界城裡的儲物箱。
      • igloo_chest - 雪屋地下室裡的儲物箱。
      • jungle_temple - 叢林神廟裡的儲物箱。
      • jungle_temple_dispenser - 叢林神廟的發射器
      • nether_bridge - 地獄要塞裡的儲物箱。
      • pillager_outpost - 掠奪者前哨站的儲物箱。將於1.14加入。
      • shipwreck_map - 沉船的地圖箱。
      • shipwreck_supply - 沉船的補給箱。
      • shipwreck_treasure - 沉船的寶箱。
      • simple_dungeon - 地牢裡的儲物箱。
      • spawn_bonus_chest - 如果打開獎勵箱選項的話,新世界生成時的獎勵箱
      • stronghold_corridor - 要塞半磚祭壇裡的儲物箱。
      • stronghold_crossing - 要塞儲存室裡的儲物箱。
      • stronghold_library - 要塞圖書館裡的儲物箱。
      • underwater_ruin_big - 水下遺蹟的大型建築物的儲物箱。
      • underwater_ruin_small - 水下遺蹟的小型建築物箱的子。
      • village_blacksmith - 村莊中的鐵匠鋪裡的儲物箱。將於1.14移除。
      • woodland_mansion - 綠林府邸的儲物箱。
      • village - 1.14中新村莊建築物中的儲物箱。
        • village_cartographer
        • village_desert_house
        • village_plains_house
        • village_savanna_house
        • village_snowy_house
        • village_taiga_house
        • village_tannery
        • village_weaponsmith
    • entities - 實體掉落的物品。應用在儲物箱上會出現錯誤,可能導致部分堆疊為0。
      • sheep
        • black
        • blue
        • brown
        • cyan
        • gray
        • green
        • light_blue
        • lime
        • magenta
        • orange
        • pink
        • purple
        • red
        • silver
        • white
        • yellow
      • bat
      • blaze
      • cat
      • cat_morning_gift
      • cave_spider
      • chicken
      • cow
      • creeper
      • elder_guardian
      • enderman
      • endermite
      • ghast
      • giant
      • guardian
      • horse
      • magma_cube
      • mushroom_cow
      • ocelot
      • pig
      • rabbit
      • sheep - 沒毛的羊
      • shulker
      • silverfish
      • skeleton
      • skeleton_horse
      • slime
      • snowman - 雪人
      • spider
      • squid
      • wolf
      • zombie
      • zombie_horse
      • zombie_pigman
    • gameplay
      • fishing
        • fish
        • junk
        • treasure
      • fishing - 讀取「fishing」資料夾裡的一個json,通過幸運決定
    • empty - 不包含任何物品

自定義地圖[編輯 | 編輯原始碼]

自定義地圖可以使用資料包修改戰利品表。它們可以是方案的戰利品表或者是玩家新增的。以下是其文件結構:

  • <地圖存檔資料夾>
    • datapacks
      • 資料包名稱
        • data
          • 命名空間
            • loot_tables
              • 戰利品表(.json)

命名空間名字可以為minecraft或者是自定義的名字。如果該資料夾的名字為minecraft,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/除minecraft以外的命名空間/zombie.json或者是datapacks/資料包名稱/minecraft/loot_tables/zombie.json也不會替換掉方案的戰利品表,而是需要用NBT標籤來指定實體使用此自定義的戰利品表。

在LootTable/DeathLootTable/戰利品表的name標籤裡,那個路徑是如此填寫的:命名空间:战利品表 比如testing:testing1就是指定存檔/datapacks/資料包名稱/data/testing/loot_tables/testing裡的testing1.json。而testing:test/testing2就是指定存檔/datapacks/資料包名稱/data/testing/loot_tables/test/裡的testing2.json。命名空間如果是指定minecraft方案的戰利品表,則無需填寫,比如entities/zombie就是指定方案(或者是存檔/datapacks/資料包名稱/data/minecraft/loot_tables/entities裡)的zombie.json。

歷史[編輯 | 編輯原始碼]

Java版
1.9 2015年10月19日Dinnerbone宣布了製作戰利品表。
15w43a 加入戰利品表。
15w43b 增加條件entity_scores
15w43c 重命名「villager_golem.json」為「iron_golem.json」
增加了釣魚、無毛羊、殭屍馬和骷髏馬的戰利品表。
重命名
 item
 name,重命名
 items
 entries
增加了
 type並支持讀取一個戰利品表以代替物品。
增加了
 luck
增加了函數set_damage
15w44a 增加了函數enchant_randomlyset_attributes


錯誤[編輯 | 編輯原始碼]

關於「戰利品表」的錯誤由錯誤追蹤器維護,請在那裡使用英文匯報錯誤。