本文将介绍tag相关指令与tag的目标选择器的使用。
tag指令部分语法
添加、移除标签:tag 目标 add/remove 标签名字
tag目标选择器示例:@a[tag=标签名称]
该目标选择器可选择所有指定标签的玩家。@p[tag=!标签名称]
该目标选择器能选择最近的无指定标签的玩家。
tag指令通常与目标选择器搭配使用,来选定特定的玩家。
原理介绍
我们可以给所有玩家添加一个标签,利用@e[type=player]
会选定所有活着的玩家,所以我们可以移除活着玩家的标签,利用目标选择器对有标签的玩家执行操作。为了防止死亡的玩家一直被执行操作,我们可以利用第2个标签来排除已经死亡的玩家。
指令实践
目标:将所有死亡的玩家扣10等级经验。
一、给所有玩家添加死亡标签。放置一个命令方块,循环、无条件、保持开启。
tag @a add 死亡
二、移出所有活着玩家的死亡标签。放置一个命令方块,连锁、无条件、保持开启。
tag @e[type=player] remove 死亡
三、此时,我们就可以用目标选择器@a[tag=死亡,tag=!排除]
操控已经死亡的玩家了。放置一个命令方块,连锁、无条件、保持开启。
xp @a[tag=死亡,tag=!排除] -10l
四、给所有死亡标签的玩家排除标签。放置一个命令方块,连锁、无条件、保持开启。
tag @a[tag=死亡] add 排除
五、移除所有活着玩家的排除标签。放置一个命令方块,连锁、无条件、保持开启。
tag @e[type=player] remove 排除
要使命令方块一直执行,可以在其附近设置常加载区块。设置常加载区块可以站在命令方块旁边使用以下指令:
/tickingarea add circle ~ ~ ~ 1 death
命令方块摆放方向朝向一定要一致,如下图所示:
正文完