玩家重生事件
本页面镜像自 BedrockWiki
根据原始项目协议授权。本文经过AI翻译处理,如有内容遗漏,可以提交PR进行补充。
前言
当玩家从死亡状态重生时,该系统将执行您指定的命令。
初始化设置
在聊天栏输入以下指令:
/scoreboard objectives add respawn dummy
若希望在世界初始化时自动添加计分板,请参照首次世界加载指南操作。
系统实现
yaml
# 在此处添加你的命令(示例)
execute as @e [scores={respawn=1}] run say 我已死亡并重生。
scoreboard players set @a respawn 1
scoreboard players set @e [type=player] respawn 0
本例中使用/execute - say
指令作为示例,您可以根据需求替换为任意指令,数量不限。
请严格遵循指令顺序,并正确使用选择器参数@e [scores={respawn=1}]
来定位目标玩家。
运行原理
respawn=0
表示玩家存活或已完成重生respawn=1
表示玩家死亡且正在重生(即当前游戏刻内刚触发重生)@a
选择器将定位所有玩家(包括存活/死亡),用于标记全体玩家为1(正在重生状态)@e
选择器仅定位存活玩家,用于重置存活玩家为0(已完成重生状态)
通过此机制,我们可以精准捕捉到刚刚重生的玩家(分数为1的玩家)来执行指定命令。
在系统文件中,自定义命令必须放置在最后两条计分板操作指令之前,因为玩家状态会在游戏刻开始时立即从死亡转为存活。
若将自定义命令置于末尾,计分板操作会先将重生玩家的分数重置为0,此时通过@e [scores={respawn=1}]
选择器将无法定位到目标玩家。若使用分数0作为条件,则会导致指令在已重生玩家身上重复触发。
游戏刻函数配置
若使用函数而非命令方块,需将on_player_respawn
函数添加至tick.json
以实现循环检测。多个函数可通过逗号分隔添加,详见函数文档。
json
{
"values": [
"on_player_respawn"
]
}
函数包的文件结构如下所示:
📁BP
📁functions
📝on_player_respawn.mcfunction
📝tick.json
🖼️pack_icon.png
📝manifest.json
注意: 计分板名称(本例中的'respawn')可能与其他开发者冲突。建议在名称后追加
_
和随机字符组合来降低重复概率,函数文件名也可采用相同策略。例如:
respawn_0fe678
on_player_respawn_0fe678.mcfunction