战利品表
本页面镜像自 BedrockWiki
根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。
WARNING
本文档仍在完善中。
战利品表用于从预定义集合中选择一组物品。战利品表可通过以下方式调用:
/loot
命令- 容器内容物
- 方块掉落
- 钓鱼
- 生物掉落
- 生成生物的装备
- 其他各类生物行为
每次调用同一战利品表时,基于外部条件和内在随机性可能会选择不同的物品组合。这种变化性对于游戏可玩性和冒险体验至关重要,特别是在RPG元素更重的系统中。
集成方式
战利品表并非注册的附加包条目,而是通过路径引用。虽然可以放置在行为包任意位置,但建议遵循原版规范将其置于顶级loot_tables
目录下。
结构
战利品表由包含必需属性"pools"
数组的JSON对象表示。
{
"pools": [
…
]
}
战利品表的调用结果将是所有池(pool)产出的总和。
池(Pools)
池是独立的物品选择单元,不同池之间的结果互不影响。
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "wiki:silver"
}
]
}
存在两种池类型:通用型加权随机池和分层池,后者传统上用于生物装备选择。
加权随机池
传统加权随机池根据相对权重选择物品,通过配置的roll次数决定产出数量。
{
"rolls": {
"min": 2,
"max": 4
},
"entries": [
{
"type": "item",
"name": "minecraft:golden_apple",
"weight": 20
},
{
"type": "item",
"name": "minecraft:appleEnchanted",
"weight": 1
},
{
"type": "item",
"name": "minecraft:name_tag",
"weight": 30
}
]
}
抽取次数(Rolls)
附加抽取(Bonus Rolls)
可通过可选属性"bonus_rolls"
基于玩家幸运值调整抽取次数。
// 示例待补充
条目权重
权重值决定条目被选中的概率。权重相对于其他条目越高,选中几率越大。
"weight": 3
质量(Quality)
通过quality属性可根据玩家幸运值调整条目权重。
"quality": 2
当前仅在使用附有"海之眷顾"附魔的钓鱼竿时生效。
分层池
分层池用于从集合中精确选择一个条目。
{
"tiers": {
"initial_range": 2,
"bonus_rolls": 3,
"bonus_chance": 0.095
},
"entries": [
{
"type": "loot_table",
"name": "loot_tables/entities/armor_set_leather.json"
},
{
"type": "loot_table",
"name": "loot_tables/entities/armor_set_gold.json"
},
{
"type": "loot_table",
"name": "loot_tables/entities/armor_set_chain.json"
},
{
"type": "loot_table",
"name": "loot_tables/entities/armor_set_iron.json"
},
{
"type": "loot_table",
"name": "loot_tables/entities/armor_set_diamond.json"
}
]
}
当包含"tiers"
对象属性时即构成分层池:
"tiers": {
"initial_range": 2,
"bonus_rolls": 3,
"bonus_chance": 0.095
}
分层池中的条目具有顺序性。选择过程分为两个阶段:
- 初始索引:在1到
"initial_range"
间随机选取整数 - 附加尝试:进行
"bonus_rolls"
次成功率"bonus_chance"
的检定,每次成功索引+1
最终索引对应条目将被选中(索引从1开始)。若索引超出条目总数则不产出。
WARNING
分层池中条目的条件将被忽略,但池级别的条件仍然有效。
条目(Entries)
条目是池中的可选项,包含三种类型。
// 示例待补充
物品条目
基础条目类型,用于选择具体物品。
// 示例待补充
战利品表条目
支持嵌套调用其他战利品表。
// 示例待补充
空条目
选中时不产生任何物品。
"type": "empty",
"weight": 4
空条目的作用可通过0次抽取、随机条件或数量函数实现,主要优势在于提升加权随机池的可读性。
函数(Functions)
函数赋予战利品表强大功能,可实现:
- 调整物品数量
- 添加附魔(包括不可附魔物品)
- 修改物品名称和描述
- 编写书籍内容
详见物品函数文档。
{
"type": "item",
"name": "minecraft:dirt",
"weight": 10,
"functions": [
{
"function": "set_count",
"count": {
"min": 16,
"max": 64
}
},
{
"function": "set_name",
"name": "Pile of dirt"
}
]
}
条件(Conditions)
条件用于检测特定标准是否满足,例如:
- 僵尸是否被玩家击杀
- 武器是否附有抢夺附魔及其等级
{
"conditions": [
{
"condition": "killed_by_player"
},
{
"condition": "random_chance_with_looting",
"chance": 0.025,
"looting_multiplier": 0.01
}
],
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:iron_ingot",
"weight": 1
},
{
"type": "item",
"name": "minecraft:carrot",
"weight": 1
},
{
"type": "item",
"name": "minecraft:potato",
"weight": 1
}
]
}