玩家死亡事件
本页面镜像自 BedrockWiki
根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。
系统介绍
本系统将在玩家死亡时执行你预设的命令。
系统配置
在聊天栏输入以下指令:
/scoreboard objectives add alive dummy
若希望在世界初始化时自动创建计分板,请参考首次世界加载事件中的操作流程。
系统实现
yaml
scoreboard players set @a [scores={alive=!2}] alive 0
scoreboard players set @e [type=player] alive 1
#在此处添加你的命令(示例)
execute as @a [scores={alive=0}] run say 我死了
scoreboard players set @a [scores={alive=0}] alive 2
我们以/execute - say
指令为例,你可以根据需求替换为任意指令并自由扩展数量。
请严格遵循给定顺序,并确保在目标指令中正确添加选择器参数scores={alive=0}
。
系统原理
alive=0
表示玩家处于死亡状态alive=1
表示玩家处于存活状态alive=2
表示已对死亡玩家执行过预设命令@a
选择器会选中所有玩家(无论生死),因此我们用它将所有玩家标记为0(死亡)- 注意:需要排除已标记为2的玩家,否则会导致命令在死亡玩家身上重复执行
@e
选择器仅会选中存活玩家,因此我们用它将所有存活玩家标记为1(存活)通过上述标记,我们可以在死亡玩家(标记0)身上执行预设命令
- 执行后需将其分数设为2,否则命令会在玩家复活前持续执行
循环执行配置
若使用函数实现,需将on_player_death
函数添加至tick.json
以实现循环执行。多个函数可通过逗号分隔添加,详见函数文档。
json
{
"values": [
"on_player_death"
]
}
使用函数时,资源包文件夹结构如下:
📁BP
📁functions
📝on_player_death.mcfunction
📝tick.json
🖼️pack_icon.png
📝manifest.json
注意: 计分板名称(如本例中的'alive')可能被他人重复使用。建议在名称后追加
_
和随机字符来降低冲突概率,函数文件名也可采用相同策略。例如:
alive_0fe678
on_player_death_0fe678.mcfunction