(此章节已于2022年8月1日再次修改)
你肯定很好奇为什么多人游戏指令讲着讲着就突然讲到NBT了。实际上原本这一章讲的是『解封玩家』,但在本书第一次大修过程中这一章的内容被合并到了第五十二章,因此这一章就空了出来。
还有一个原因是,第一次大修过程中,我也去参考了许多其他制作得比较优良的Minecraft命令教程,发现他们大多数讲NBT比较早,这样子以后深入时就好展开讲。而本书在第一次大修前,NBT的内容在第100章才匆忙开始。
因此,为了让各位读者能够更好地掌握NBT的相关知识,我们就先在这里初步认识一下NBT。
————————————
在第一次听到NBT这个词时,你脑海里肯定会浮现出三个问题:
『什么是NBT?NBT能干什么?我该如何使用NBT?』
NBT,全称Named Binary Tag,中文翻译为二进制命名标签。它在Minecraft中你虽然见不到,但它无处不在:在鸡里面、在计分板里面、在玩家里面、在区块里面......
所以NBT到底是啥?
.........
『看,那里有一个东西!』
单纯这样描述,你估计想不出来也不了解这个『东西』是什么。但如果我这样描述呢:
这个东西的『种类』是『生物』
『生物种类』是『狗』
『毛发颜色』是『黄色』
『品种』是『哈士奇』
『质量』是『33kg』
『主人』是『旁边的那个人』
『年龄』是『5岁』
当我像上面这样描述时,你对这个东西也越发的变得了解。NBT也是个类似的玩意儿,只不过它不光是给你看的,它还是给游戏看的。
在Minecraft中,NBT就像上面我描述那个东西所用的方法一样,它也用于『描述』游戏内部的事物:
『命名空间ID』是『minecraft:mand_block』
『限制』是『无条件限制』
『坐标』是『45,12,32』
『自动激活』是『关闭』
『内部指令』是『say hello!』
通过上面的描述,你和游戏应该都清楚了,这是一个脉冲型、没有条件限制、处于坐标(45,12,32)、需要红石、写有指令『say hello!』的命令方块。
仔细观察上面的内容,你应该会发现,我们都是使用类似于下面的格式来进行描述:
『一个描述』是『多少』
像上面这样子的一对『描述』和『值』,在NBT中就叫做『标签』。
一个标签具有标签名称和值,标签名称规定了这个标签具体是干啥用的,值则描述了这个标签具体是怎么干的。标签名称和值使用英文半角冒号分开,标签名在左,值在右。比如:
Health:20.0f
这个标签的名称是『Health』,代表着这个标签用来记录着这个东西的生命值。值是『20.0f』,代表着这个东西当前的生命值为20.0(你先不用管f是啥)。
标签和标签之间使用英文半角逗号区分,比如:
Health:20.0f,CustomName:“What?“
一堆像这样的标签,就组成了一个NBT标签:
{Health:20.0f,CustomName:“What?“}