教程:制作附加包/战利品表

来自Minecraft基岩版开发Wiki
战利品表
系列教程
所属系列
难度
初级
前置知识
适用版本
国际版
实践设备
WindowsAndroid
所需软件

战利品表是游戏控制掉落物和宝箱内容的机制,如遗迹宝箱、方块挖掘掉落物、怪物生成时的装备和击杀怪物掉落物等。 接下来将会解决如何定义自定义战利品表。

在这之前[编辑]

您将要学习自定义战利品表的存放链接到需要战利品表文件的方法

文件存放[编辑]

自定义战利品表文件需存放在loot_tables/战利品表的用处文件夹中,具体可以参考战利品表#相关文件[注 1]

调用方法[编辑]

如需调用战利品表到相关定义文件,要在"components"对象中写入以下字符:[注 2]

//"components":{
//  ...
    "minecraft:loot": {
      "table": "自定义战利品表文件路径"
    }
//}

(编写完后,放宽心,改善好心态,接下来将编写战利品表了,可能会有点难,慢慢看。)(*^ω^*)

开始自定义战利品表[编辑]

以僵尸掉落物为例(有删改):

{
  "pools": [
    //在这个对象中的数组代表着所有要触发的战利品
    "rolls": 3,//触发战利品表次数
/*
  也可以写成:
    "rolls": {
      "min": 1,//最低
      "max": 3//最高
    },
*/
    "conditions"{//触发条件
      {
        "condition": "killed_by_player_or_pets"//当被玩家或宠物击杀时
      },
      {
        "condition": "random_chance_with_looting",//随机刷新此战利品表
        "chance": 0.025,//概率
        "looting_multiplier": 0.01
      }
    ],
    "entries": [//单次抽取内容,键名自取
      {
        "type": "item",//激活类型,一般填item
        "name": "minecraft:diamond",//要获得的物品
        "functions": [//附加函数
          {
            "function": "set_count",//设置数量(可以填写别的函数)
            //当函数为set_count时:
            "count": {
            "min": 1,//最低
            "max": 3//最高
            }
          }
        ],
        "weight": 1//权重
      },
      {
        "type": "item",
        "name": "minecraft:grass",
        "functions": [
          {
            "function": "set_count",
            "count": {
            "min": 1,
            "max": 64
            }
          }
        ],
        "weight": 99
      }
    ]
  ]
}

以上的作用是让实体被玩家或宠物击杀时,掉落草、钻石或者什么都没有。 触发条件和函数可以去战利品表#数据结构寻找更多。

课后作业[编辑]

(期中考试)

  1. 添加一个名为“篮球”的物品,并将其设置为原版的掉落物。(忘记怎么自定义物品了?
  2. 让原版圆石能掉落钻石

注释[编辑]

  1. 如宝藏箱的JSON文件需存放在loot_tables/chests文件夹,以战利品表#相关文件为准。
  2. 可能某些文件中的"minecraft:loot"组件可能写法不同(如当格式版本为1.16.0的方块定义文件的组件用字符串即可,不需要用对象),详情请前往组件列表查看。

< 配方 | 实体 >