第189章 ,/.

Minecraft指令手册 你好MC 2465 字 21小时前

你肯定不知道,但看完下面这一段,你就知道了。

实际上,不光是小白的箭无法捡起。当你开启创造模式用弓射一发再调成生存时,你会发现你照样无法捡起创造模式射出来的箭。

为啥?

pickup这个单词的意思是“皮卡”,但这边应该把它拆分成pick up(捡起)。

既然pick up的意思是捡起,那么就是对捡起的设置咯?

对!

在上面的NBT中,pickup的值是2b,b说明这也是一个byte字节型标签。那这个2说明了什么?

pickup的值你翻遍整个Minecraft之后会发现只有三种:

小白射出的箭——0

你在非创造模式射出的箭——1

你在创造模式射出的箭——2

结合你玩Minecraft的经验和作者上面分享的发现,可以得出:

非玩家生物射出的箭:0——不可被玩家捡起

非创造模式玩家射出的箭(发射器也算):1——可被除旁观者模式外其他模式玩家捡起(注:Wiki上言“可以被玩家在生存或创造模式中捡起”,未提冒险模式,但作者实测冒险模式也可以捡起)

创造模式玩家射出的箭:2——只可被创造模式玩家捡起

现在我们可以回答上面的问题了:

这个2说明了这是一个创造模式玩家射出的箭

(注:用指令生成的箭pickup值也是0,即不可被捡起。推测是游戏本身产生的箭都不可以被玩家捡起)

........

在之前,我们遇见过两个在1.13扁平化中被合并的NBT标签,这两个标签相信大家还记得,它们是:

DisplayTile+DisplayData=DisplayState(矿车共通标签)

Block+Data=BlockState(下落的方块)

现在,我们在1.12.2版本的箭共通标签遇见了:

inTile和inData

这两个NBT标签和我们之前遇见的那两个标签在未合并之前的构造非常相似,那么它们是否在1.13版本中被合并了?

DisplayState和BlockState有个共同点,就在于他们都是与方块有关系。合并之前,它们都分别有一个用来表示数据值的标签:DisplayData和Data。数据值在1.13版本中被删除,所以这种类型的标签也就合并了。

inData和DisplayData、Data一样,末尾都有一个“Data”,那inData是否就是表示方块数据值所用呢?

inData如果真是表示数据值,那inTile呢?是不是用来表示方块id?

您别说,还真是。

在上面的NBT中,这两个标签的值分别是:

inTile:“minecraft:air“

inData:0b

你看,这minecraft:air不就是空气方块吗?这“0”不就是方块数据值吗?

这两个标签存的是啥我们知道了,但用处呢?

我们已经知道这支箭是飞在空中的,既然这里是空气方块,那么这两个的作用难道是.......

这支箭所处的方块?