目录

新人手册

标签(Tag)

增加、移除、列出Tag、Tags NBT

增加tag

命令

/scoreboard players tag <实体> add <标签名字> [数据标签]

例子

/scoreboard players tag @a add player

为所有玩家加上player tag。

Stats

移除tag

命令

/scoreboard players tag <实体> remove <标签名字> [数据标签]

例子

/scoreboard players tag @a remove player

为所有玩家移除player tag。

Stats

当指定实体有该标签

列出tag

命令

/scoreboard players tag <实体> list

实体: 该实体必须存在。需要列出tag的实体。可以是选择器。也能使用'*'代表所有有分数、存在的对象实体。

例子

/scoreboard players tag @a list

列出所有玩家的tag

Stats

Tags NBT

Tag是储存在实体的Tags(list)nbt里的, 而不是scoreboard.dat。
通过修改Tags NBT, 我们可以在实体生成时直接赋予其tag, 或者是一次过覆盖、删除掉所有的tag等。

举个例子, 生成一个有a、b两个tag的僵尸

~~pcb
/summon zombie ~ ~ ~ {Tags:["a","b"]}
//或者是
/summon zombie ~ ~ ~ {Tags:[a,b]}

检测Tag

选择器参数单个检测

透过参数tag, 我们可以检测有tag/没有tag/有指定tag/没有指定tag的实体

注意, 一个选择器只能检查一个tag, 如果需要检查多个tag, 请使用以下方法

execute多个检测

方法非常简单, 就是利用@e[r=0,c=1]一般情况下会选择自己的特性, 来以execute嵌套选择。

例子

/execute @e[r=0,c=1,tag=a] ~ ~ ~ execute @e[r=0,c=1,tag=b] ~ ~ ~ execute @e[r=0,c=1,tag=c] ~ ~ ~ say hi

这样子, 有a、b、c tag的实体就会say hi。

注意: 这个方法在实体重叠的时候可能会出现bug。
不过在1.9开始, 选择器的距离检测非常准确, 该bug需要两个实体在完全一样的坐标才会出现, 一般情况下不会出现。
然而如果系统曾把需要检测的实体tp到别的实体的坐标, 或是把别的实体tp到需要检测的实体的位置, 则需要小心。

nbt多个检测

能够以分数/别的tag来标记拥有指定tags的实体。
方法为检测其Tags NBT

例子

/scoreboard players set @e scb 1 {Tags:["a","b","c"]}