第一百零九章 掉落物的nbt 下

(此章节内容不怎么重要,可跳过此章节)

众所周知,使用\/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整型数组。

上一章目录+书架下一章