第189章 ,/.

您别说,您又对了。这两个标签的作用还真是这样的。

但我们还没有回答上面的问题呢。实际上的确是被合并了。至于合并成了什么东西.......

已知Block+Data=BlockState,Block=Tile,求单词式inTile+inData的单词值。

解:

inTile+inData=in(Tile+Data)①

将Block=Tile代入①,得

inTile+inData=in(Block+Data)②

将Block+Data=BlockState代入②,得

inTile+inData=inBlockState

∴inTile+inData=inBlockState

1.13版本扁平化过后,inTile和inData被合并成inBlockState(值类型:复合标签),内含两个NBT标签:

本小章还未完,请点击下一页继续阅读后面精彩内容!

Name(字符串)——该方块的ID

Propertie(复合标签)——该方块的命名空间

——方块状态名称:值(类型:字符串)

......

crit这个单词的意思是“暴击”。在上面的NBT中,crit标签的值是:

1b

说明crit标签的值类型是Byte字节型。既然值类型是字节型,那就说明这个标签的作用不是确定这支箭暴击的伤害,而是这支箭是否会造成暴击。

所以,这支箭会造成暴击,因为它的crit值是1。

crit标签在1.11版本才被添加,1.11版本前没有这个标签,这需要注意一下。

最后,我们还剩下三个我们还未曾见过的标签:

xTile,yTile,zTile

这三个标签在上面的NBT中值都为-1,且没有类型字母,应该是Long长整型。并且它们三看起来跟坐标有关,而且坐标的三个值也是长整型......

首先,我这边说一点,这三个标签不是箭共通标签内的,它们还出现在1.11以前的鱼竿浮标和火球类实体(如火焰弹,凋零之首)中。至于它们三有什么用,我们以后再了解。

现在我们知道箭共通标签内有这些东西:

damage、shake、inGround、pickup、inTile和inData(inBlockState)、crit,那这就是全部了吗?

不,在更新的版本中,还有一些更新的标签:

PierceLevel(Byte:字节型)——中文Wiki介绍是“箭能射穿实体的时间长度”,但这好像并不是这个用途

ShotFromCrossbow(Byte:字节型[true|false])(1.14+)——表示这支箭是否来自于一把弩

SoundEvent——击中东西时触发的声音事件

SoundEvent我们先不用管。这个PierceLevel我本人也搞不懂,返回的值一直是0b,这可能是在击中实体的那一瞬间才可能会变化。剩下的这个,就是ShotFromCrossbow。

ShotFromCrossbow很简单,上面都介绍过了,相信只要是看得懂的都能懂吧?

总之,只要ShotFromCrossbow的值为1b,那么这箭就来自一把弩,0b则来自其他的东东。

这就是“箭共通标签”。