玩家重生事件系统
简介
本系统将在玩家从死亡状态重生时执行您指定的命令。
设置
在聊天栏输入以下命令:
/scoreboard objectives add wiki:respawn dummy
如果您使用函数并希望在游戏初始化时自动添加该计分项,请按照首次世界加载中概述的流程操作。
系统
BP/functions/events/player/on_respawn.mcfunction
yaml
## 在此处输入您的命令(示例)
execute as @e[scores={wiki:respawn=1}] run say 我死亡后重生了。
## 设置玩家状态
### 当前正在重生
scoreboard players set @a wiki:respawn 1
### 当前未重生
scoreboard players set @e[type=player] wiki:respawn 0
这里我们使用了/execute - say命令作为示例,但您可以使用任何您喜欢的命令,数量不限。
只需确保遵循给定的顺序,并正确应用@e[scores={wiki:respawn=1}]选择器参数,如示例所示。
原理说明
wiki:respawn=0表示玩家存活或已完成重生。wiki:respawn=1表示玩家死亡或刚刚重生(在当前游戏刻内)。@a选择器将同时选中存活/死亡的玩家。因此我们用它来标记玩家为1"正在重生"状态。@e选择器则只会选中存活的玩家,因此我们可以用它来将所有存活玩家标记为0"已完成重生"状态。
现在正在重生的玩家被标记为1,已完成重生的玩家被标记为0,我们可以利用这一点在玩家从死亡状态重生时(分数为1)执行所需命令。这些玩家通过@e选择器被选中。
在系统中,您希望执行的命令必须放在另外两个命令之前,因为玩家从死亡状态转变为存活状态的过程发生在游戏刻开始时,在命令运行之前。
因此,如果我们将它们放在最后,另外两个命令会先将重生玩家的分数设为0,而您想要运行的命令将无法选中这些玩家,因为我们的选择器参数是@e[scores={wiki:respawn=1}]而不是0。使用0会导致命令在已完成重生的玩家身上不断重复执行。
Tick JSON
如果您使用函数而非命令方块,必须将on_respawn函数添加到tick.json中才能循环持续运行。可以通过在每个字符串后添加逗号来将多个文件添加到tick.json中。更多信息请参考函数文档。
BP/functions/tick.json
json
{
"values": [
"wiki/event/players/on_respawn"
]
}如果使用函数,您的资源包文件夹结构应如下所示:
- 📝on_respawn.mcfunction
- 📝tick.json
- 🖼️pack_icon.png
- 📝manifest.json

