您别说,您又对了。这两个标签的作用还真是这样的。
但我们还没有回答上面的问题呢。实际上的确是被合并了。至于合并成了什么东西.......
已知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则来自其他的东东。
这就是“箭共通标签”。