矿石战利品表
本页面镜像自 BedrockWiki
根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。
格式版本 1.20.30
本教程假设您已具备方块基础知识。 开始前请先查阅方块指南。
实验性功能
需要启用假日创造者特性
来触发事件。
本教程旨在展示一种通过战利品表创建自定义矿石方块的全新方法。使用minecraft:loot
组件时将始终调用指定战利品表,而通过在战利品表中添加match_tool
条件,可以逐池限定挖掘工具要求。
特性:
- 可使用指定工具挖掘(本教程以铁镐为例)
- 可指定工具附魔等级
- 经验值掉落支持
限制:
- 所有工具需逐个单独指定
- 非玩家破坏方式(爆炸/指令等)不会触发掉落
方块JSON
以下方块行为文件可作为模板使用。记得通过terrain_texture.json
设置方块纹理。
json
{
"format_version": "1.20.30",
"minecraft:block": {
"description": {
"identifier": "wiki:silver_ore",
"menu_category": {
"category": "nature",
"group": "itemGroup.name.ore"
}
},
"components": {
...
// 触发加载带有经验奖励结构的事件
"minecraft:on_player_destroyed": {
"event": "wiki:xp_reward"
},
"minecraft:loot": "loot_tables/blocks/silver_ore.json" // 使用精准采集时不会掉落
},
"events": {
"wiki:xp_reward": {
"run_command": {
"command": [
"structure load ore_xp_reward ~~~" // 需下载下方预存经验球的结构文件
]
}
}
}
}
}
战利品表
以下示例展示了必需组件
json
{
"pools": [
{
"rolls": 1,
"conditions": [
{
"condition": "match_tool",
"item": "minecraft:iron_pickaxe",
"count": 1
}
],
"entries": [
{
"type": "item",
"name": "wiki:raw_silver"
}
]
}
]
}
附魔等级限定
可通过添加enchantments
区间限定附魔等级。注意每组工具及其等级需独立成池。
目前兼容检测1级和2级附魔。
json
"conditions": [
{
"condition": "match_tool",
"item": "minecraft:iron_pickaxe",
"count": 1,
"enchantments": [
{
"fortune": {
"level": 1
}
}
]
}
]
非实验性方案
若不想通过方块事件触发经验奖励,可选用以下替代方案。
请从此处下载内含经验球的ore_xp_reward
结构文件。
方案一:虚拟物品与循环函数
步骤1:为需要掉落经验的方块创建战利品表。以"minecraft:redstone"为例:
json
{
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:redstone"
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "item",
"name": "minecraft:barrier" // 虚拟物品
}
]
}
]
}
此处添加已有物品"minecraft:barrier"作为触发经验掉落的虚拟物品,也可创建专用虚拟物品。
步骤2:创建循环函数处理掉落物品。需在BP/functions/tick.json
中定义:
c
execute as @e[type=item, name="Barrier"] at @s run structure load ore_xp_reward ~~~
execute as @e[type=item, name="Barrier"] run kill
该函数会捕捉名为"Barrier"的掉落物,加载经验奖励结构后销毁虚拟物品。
方案二:纯函数循环
步骤1:创建基础战利品表。以"wiki:raw_silver"为例:
json
{
"pools": [
{
"entries": [
{
"type": "item",
"name": "wiki:raw_silver"
}
]
}
]
}
步骤2:创建标记处理函数。需在BP/functions/tick.json
中定义:
c
execute as @e[type=item, name="Raw Silver", tag=!xp] at @s run structure load ore_xp_reward ~~~
execute as @e[type=item, name="Raw Silver", tag=!xp] run tag @s add xp
该函数为所有未标记"xp"的银矿掉落物加载经验结构,并通过标签防止重复触发。
请根据实际情况调整物品ID、标签等参数。
下载结构文件
下载MCSTRUCTURE