附加包教程:13.战利品表
前言
上期,我们学习了模型。接下来,我们即将学习战利品表。简单来说,战利品表就是在世界中掉落物品的一种方法。它存储了所有可能掉落的物品,会根据情况掉落一些其中的物品。
::: tip 提示
战利品表可以很简单,但也可以很复杂。
:::
战利品表
打开行为包根目录,打开loot_tables文件夹,打开blocks文件夹。这里用于存放方块的战利品表。
我在下面放一些代码,简单地说明了战利品表的结构。
{
"pools": [ //这个数组里包含了若干个战利品池,会在这个池里随机抽取战利品。
{
"rolls": 1, //表示这个战利品池要从下面的数组里抽取战利品的次数。
"entries": [ //这个数组包含了若干项战利品。
{ //一项战利品。
"type": "item", //战利品的种类。item指物品,loot_table指另一个战利品表,empty指不掉落任何物品。
"name": "supplementary:test_item", //物品名称或战利品表路径。
"weight": 3, //权重,决定了这一项被抽取到的几率。这一项的几率的计算公式是这一项的weight值除以此战利品池中全部weight值之和。
"functions": [ //这个数组里有若干个修饰这个物品的功能。
{ //一项功能。
"function": "set_count", //功能名称。set_count是设置数量。
"count": { //数量。
"min": 1, //最小值,必须大于等于0
"max": 1 //最大值,必须大于等于最小值
}
}
]
},
{ //又一项战利品。
"type": "item",
"name": "minecraft:air", //设置空气表示不会掉落任何东西。也可以用"type": "empty"。
"weight": 16,
"functions": [
{
"function": "set_count", //功能有很多。
"count": {
"min": 0,
"max": 1
}
}
]
}
]
}
]
}
战利品表还可以有条件,指定条件下掉落战利品。以后会再出一期已经研究清楚的功能和条件及它们的语法。(已经出了,在第四十五期,点击这里前往新帖)这一期就先了解一下就可以了。
总结
这一期,我们简单地了解了战利品表。如果你不想手写战利品表,可以自动生成一个点我。只需要按照它的流程操作即可,它也支持所有类型的条件和功能。下一期,我们将回到方块上,讲方块事件。