10月16日(星期日),我們會將大部分所屬Wiki遷移到新的主機。受此影響,大部分的Wiki在移動開始後的數日會進入只讀狀態。詳情可參考幫助Wiki的Gamepedia AWS合併頁面。

We have begun migration of most wikis to our new host, Amazon Web Services. All but the top 100 wikis are in read-only mode until the migration is complete. Estimated completion: TBD -- Update: Fri 10/20 11pm UTC - We have encountered some unexpected issues. Our staff is working around the clock to complete this process as quickly as possible. Thank you for your patience.

战利品表

来自Minecraft Wiki
跳转至: 导航搜索
此页面的部分内容由于太久没更新而已过期。
你可以帮助我们来更新此页面

战利品表(Loot table,前称可抢夺物品表)是一种技术性JSON表。它的功能是用来替换自然生成的箱子的内容物以及杀死实体时的掉落物

用途[编辑 | 编辑源代码]

战利品表由诸多String标签和一个Long标签组成,这些标签决定了表的用法,Long标签决定种子。在相同的种子下生物或者是箱子掉落相同的物品。战利品表不决定箱子内部的排列方式。这种随机完全基于种子。

对于箱子陷阱箱漏斗运输矿车漏斗矿车发射器投掷器潜影盒而言:







    •  LootTable:战利品表用于在箱子下次打开的时候进行物品的装填。 如果箱子是一个双倍的大箱子的话,只有有这个tag的半边箱子会被影响。

    •  LootTableSeed:生成战利品表的种子。此项为空或者是0时将使用随机的种子。

在箱子被打开或者与其内部的物品互动的时候,这些标签会被移除。

对实体而言:


  • 根标签

    •  DeathLootTable:战利品表决定生物死亡时的掉落。

    •  DeathLootTableSeed:生成战利品表的种子。此项为空或者是0时将使用随机的种子。

实体和箱子的战利品表可以用/entitydata/blockdata修改。

标签[编辑 | 编辑源代码]

战利品表完全使用标准的JSON格式。下面是用到的tag列表。


  •  根标签

    •  pools:这个实体的随机池的全部列表。每个随机池都会随机选择列表里面的物品。这基于rolls的设置数量。

      •  一个随机池

        •  conditions:决定了使用这个随机池的条件。

          •  A condition

            •  condition:这个条件的名称。具体名称将在下方列出。

        •  rolls:决定了roll的数目,以及范围。

        •  rolls:决定了roll的最大和最小次数。

          •  min:roll的最小次数。

          •  max:roll的最大次数。

        •  bonus_rolls:决定了每点幸运(luck)增加多少次roll。计算后会向下舍入

        •  bonus_rolls:决定了每点幸运(luck)增加多少次roll的范围。计算后会向下舍入

          •  min:额外roll的最小次数。

          •  max:额外roll的最大次数。

        •  entries:这个池中能产生的东西列表。每一次roll会随机根据权重选择一个条目(如果它符合指定条件)

          •  一个条目

            •  conditions:决定使用这个条目的条件

              •  一个条件

                •  condition:条件名。 具体名称将在下方列出。

            •  type:条目的种类。 可以填写 item 选择物品, 或loot_table以读取文件夹中的一个战利品表,或者empty什么都不生成。

            •  name:
              • 如果type是物品,这里就是填写物品的ID。举个例子,minecraft:diamond(预设数量为1)。
              • 如果type是战利品表,这里就是填写该物品表的位置。举个例子,minecraft:gameplay/fishing/junk(详见#自定义地图

            •  functions:决定了对这个物品进行的特殊举动。如果没有被设置,它将不会被使用。必须顺序排放,比如looting_enchant必须放在set_count之后以正常运作。

              •  一个举动

                •  function:举动的名字。 具体名称将在下方列出。

                •  conditions:决定了该举动的条件。

                  •  一个条件

                    •  condition:条件的名字。具体名称将在下方列出。

            •  weight:决定了这个物品被选择的权重。这个值越高物品便越容易被选择。

            •  quality:基于杀死/开启箱子/钓鱼的玩家的幸运修改条目的weight。公式为floor( 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:数量增加的最大值。
  • set_attributes - 为物品加上属性修饰符

    •  modifiers

      •  A modifier:其中一个修饰符

        •  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 - 决定了该物品堆叠数的最大值和最小值。 如果未使用,堆叠数将为1。

    •  count:决定了物品的具体堆叠数量,相对于一个范围。

    •  count:决定了物品的具体堆叠数量的最大值和最小值。

      •  min:堆叠数量的最小值。

      •  max:堆叠数量的最大值。
  • set_damage - 设置工具的损伤值(耐久度)

    •  damage:指定伤害的比率(1.0是没有使用过,0.0则是剩下0耐久度)

    •  damage:指定一个随机的伤害比率(在一个范围之内)

      •  min:最小值

      •  max:最大值
  • set_data - 决定了该物品的损害值。

    •  data:决定了该物品的损害值,相对于一个范围。

    •  data:决定了物品的损害值的最大值和最小值。

      •  min:损害值的最小值。

      •  max:损害值的最大值。
  • set_nbt - 在该物品上增加nbt标签。

    •  tag:添加nbt标签,和命令的使用方法类似。注意最外层括号需要书写({})以及内部的引号需要使用转义符标记。 (\)

条件[编辑 | 编辑源代码]

战利品表使用了诸多判断条件来设置实体的掉落,随机池或者函数。下面是条件的列表,以及使用它们所用到的标签。标签都位于
 condition下方。

  • entity_properties -决定了该条件的要求。

    •  entity:决定了被要求满足条件的实体。 设置成this用于检测死亡的实体, killer 检测杀死该实体的实体, killer_player 检测杀死该实体的玩家。

    •  properties:必须满足的条件。

      •  on_fire:实体必须/不能是着火的。
  • entity_scores - 检测实体的分数。

    •  entity:决定了被要求满足条件的实体。设置成this用于检测死亡的实体, killer 检测杀死该实体的实体, killer_player 检测杀死该实体的玩家。

    •  scores:检测的分数。

      •  A score:该标签需要拼写为被检测的计分板,需要为一个确定的值。注意在15w43b中不能使用。

      •  A score:该计分板的最大值和最小值。 注意在15w43b中不能使用。

        •  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 - 废弃矿井中找到的运输矿车
      • desert_pyramid - 沙漠神殿的宝藏室里的箱子。
      • end_city_treasure - 末地城里的箱子。
      • igloo_chest - 雪屋地下室里的箱子。
      • jungle_temple - 丛林神庙里的箱子。
      • nether_bridge - 下界要塞里的箱子。
      • simple_dungeon - 地牢里的箱子。
      • spawn_bonus_chest - 如果打开奖励箱选项的话,新世界生成时的奖励箱
      • stronghold_corridor - 要塞台阶祭坛里的箱子。
      • stronghold_crossing - 要塞储存室里的箱子。
      • stronghold_library - 要塞图书馆里的箱子。
      • village_blacksmith - 村庄中的铁匠铺里的箱子。
    • entities - 实体掉落的物品。应用在箱子上会出现漏洞,可能导致部分堆叠为0。
      • sheep
        • black
        • blue
        • brown
        • cyan
        • gray
        • green
        • light_blue
        • lime
        • magenta
        • orange
        • pink
        • purple
        • red
        • silver
        • white
        • yellow
      • bat
      • blaze
      • 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 - 不包含任何物品

自定义地图[编辑 | 编辑源代码]

自定义地图可以以战利品表以修改箱子生成/生物掉落的物品。它们可以是预设的战利品表或者是玩家新增的。以下是其文件结构:

  • <地图存档文件夹>
    • data
      • loot_tables
        • 命名空间(文件夹)
          • 战利品表(.json)

命名空间名字可以为minecraft或者是自定义的名字。如果该文件夹的名字为minecraft,minecraft就会用里面的文件来取代.jar的loot_tables里的特定战利品表(存档/data/loot_tables/minecraft路径等于.jar里的assets/minecraft/loot_tables/,同路径和名字的战利品表会取代.jar里相对的文件)比如存档里的data/loot_tables/minecraft/entities/zombie.json就会被认作预设的僵尸战利品表,地图中所有僵尸都会根据该表掉落。而存档里的data/loot_tables/除minecraft以外的命名空间/zombie.json或者是data/loot_tables/minecraft/zombie.json也不会替换掉预设的战利品表,而是需要用NBT标签来指定实体使用此自定义的战利品表。

在LootTable/DeathLootTable/战利品表的name标签里,那个路径是如此填写的:[命名空间:]档案(不用后缀) 比如testing:testing1就是指定存档/data/loot_tables/testing里的testing1.json(.json后缀不用填写)。而testing:test/testing2就是指定存档/data/loot_tables/test/里的testing2.json。命名空间如果是指定minecraft预设的战利品表,则无需填写,比如entities/zombie就是指定预设(或者是存档/data/loot_tables/minecraft/entities里)的Zombie.json

历史[编辑 | 编辑源代码]

正式版本
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