进阶 - 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个标签