(此章节内容不怎么重要,可跳过此章节)
众所周知,使用\/give指令可以让你获得指定的物品。
比如指令『\/give mand_block』的作用就是让你获得一个命令方块。
但你知道你是怎么获得这个命令方块的吗?
在你运行该指令的那一刻,这条指令会被游戏进行处理,然后你就获得了这个命令方块。奇妙的是,在java版,你似乎并不是直接获得命令方块,而是捡起了一个命令方块掉落物。
如果那真的是一个掉落物的话,那么这个掉落物的属性是什么呢?
pickupdy标签的值肯定为0,age标签很有可能是6000。
但此时又有一个新的问题出现了:如果是在服务器中,你站在茫茫人海,但这个掉落物仍然被你精准地捡起了,这是为什么呢?(说实话还没等你捡起你家宽带以及你的电脑就要主机火苗万丈高了)
因为掉落物的nbt还有一个可能不存在的标签:owner
owner标签的数据类型是复合标签,在及以上版本是int整型数组。它的值本质上是一个玩家的uuid,用来决定这个掉落物可以被哪个玩家捡起。
举个栗子,假设有这么一个叫做『liu_huaqiang』的玩家,如果你要生成一个只能够被它捡起的掉落物,那owner标签就得这样子填:
{owner:{uuidmost:l,uuidleast:-l}}
\\\\版本以下\\\\
{owner:[i;,-,-,]}zuqi.org 葡萄小说网
\\\\及以上版本\\\\
其中,uuidmost和uuidleast这两个标签填的是这名玩家的uuid高位和uuid低位。我们会在下一章讲到uuid。
这就是owner标签的用法,只不过你现在其实并不需要急着去用,因为掉落物还可能会有一个标签。
假设你在矿洞挖矿,刚刚挖到8颗钻石,你很兴奋,然后听到后面有一个........
“嘶~~~”
你转头一看:“creeper?”
“booooom!”
恭喜你,你的钻石成为了一个掉落物。
这颗钻石掉落物的nbt也值得研究。
它的nbt除了上一章所说的,还有一个你从未见过的nbt标签:
thrower——这个物品本来是谁的
和owner一样,它的值也是一个玩家的uuid信息。当某名玩家把这个物品以某种形式丢掉了,这个物品的thrower标签就会存储该名玩家的uuid。
thrower的用法和上面的owner一模一样,这里就不细讲了。
这一章到此为止。
easecation真好玩——唉,好像作业还没做唉。
附录:历史
java
1.16——为适应新版本的uuid,owner和thrower标签的数据类型从复合标签改成int整型数组。