进阶 - tag标签
tag指令概述
tag指令是Minecraft基岩版中用于给实体(玩家、生物等)添加、移除或列出标签的强大工具。标签可以帮助你分类和管理实体,实现更复杂的指令系统。
标签的作用
标签可以用于:选择特定实体、标记特殊状态的实体、创建实体分组、实现条件判断等。
基本语法
tag指令的基本格式:
/tag <目标实体> add <标签名称>
/tag <目标实体> remove <标签名称>
/tag <目标实体> list
添加标签
使用add参数给实体添加标签:
示例
/tag @p add vip - 给最近的玩家添加"vip"标签
/tag @e[type=cow] add farm_animal - 给所有牛添加"farm_animal"标签
/tag @a add team_red - 给所有玩家添加"team_red"标签
重要提示
标签名称不能包含空格,可以使用下划线(_)或连字符(-)代替。标签名称区分大小写。
移除标签
使用remove参数移除实体上的标签:
示例
/tag @p remove vip - 移除最近玩家的"vip"标签
/tag @e[tag=farm_animal] remove farm_animal - 移除所有有"farm_animal"标签实体的该标签
列出标签
使用list参数查看实体上的所有标签:
示例
/tag @p list - 列出最近玩家的所有标签
/tag @e[type=zombie] list - 列出所有僵尸的标签
实际应用示例
1. 团队系统
# 给玩家分配队伍
/tag @a[tag=!team_red,tag=!team_blue] add team_red
/tag @a[tag=!team_red,tag=!team_blue] add team_blue
# 给不同队伍不同效果
/effect @a[tag=team_red] resistance 10 1
/effect @a[tag=team_blue] speed 10 1
2. 特殊状态标记
# 标记已经获得奖励的玩家
/tag @p add got_reward
# 检查玩家是否已经获得奖励
/execute @a[tag=!got_reward] ~~~ give @s diamond 1
/execute @a[tag=!got_reward] ~~~ tag @s add got_reward
3. 实体分类
# 标记所有农场动物
/tag @e[type=cow] add farm_animal
/tag @e[type=pig] add farm_animal
/tag @e[type=chicken] add farm_animal
# 传送所有农场动物到指定位置
/tp @e[tag=farm_animal] 100 70 100
4. 结合选择器使用
标签可以与选择器结合使用,实现精确的实体选择:
# 选择有vip标签的玩家
@a[tag=vip]
# 选择没有vip标签的玩家
@a[tag=!vip]
# 选择同时有vip和admin标签的玩家
@a[tag=vip,tag=admin]
注意事项
1. 标签在实体被卸载或世界重新加载后仍然存在
2. 标签不会保存在实体的NBT数据中,与scoreboard不同
3. 单个实体最多可以有1024个标签