第189章 ,/.

或者你可以去找一下那位屎尿屁专家?帮他完成屎尿屁大统一理论?

实体的NBT还有许多标签,好消息是这些标签相对上面的内容来说很简单。

air标签用于储存实体的『空气值』,它的数据类型为Short短整型,允许的最高值为300,实体在水中每刻都会减去1,小于等于0时(对于大多数生物来说)会开始扣血。

FallDistance标签很有趣。如果你玩过JAVA版的老版本,那你可能知道在旧版本中,从高空落下而不被摔死的方法,除了落地水,还可以挑战手速按ESC暂停游戏,然后再继续游戏。这个时候你的再掉下去就只会或几乎没有伤害。这个BUG的核心就在于实体的FallDistance标签。

FallDistance标签的数据类型是单精度浮点型,它用来记录实体已经掉了多远的距离,然后在实体落地时计算会扣多少滴血。老版本暂停游戏的话,这个值就会清零,所以才会导致这个BUG(于是Mojang修复了)。

Passengers标签是一个比较常用的标签,它的数据类型是『复合标签列表』,作用是记录骑着该实体的其他实体的NBT数据。没错,这东西可以用来套娃!OOC也就是用这个标签来制作的。

需要注意,在Java1.9版本之前,实体并没有『Passengers标签』,而是有『Riding标签』。它的用法和新版本的『Passengers标签』一模一样。

Fire标签的数据类型是Short短整型,它的作用是决定实体着火或不会着火的时长。如果它的值是正数,就是决定实体身上的火距离熄灭还有多少游戏刻,如果它的值是一个负数,则代表着该实体在接触到火后,不会着火的刻数。比如:

{Fire:-40s}

这代表着当该实体接触到火时,需要两秒才会燃起来。

PortalCooldown标签的数据类型是Int整型,作用是记录这个实体还有多长时间(单位为游戏刻)才可以再次穿越下界传送门。比如这只粉红羊刚刚穿过下界传送门,它就需要等至少300刻(15秒)才能再次传送,因为它的PortalCooldow标签被设定为了300。

Dimension标签的数据类型是Int整型[Java1.16以下]或文本(String字符串)[Java1.16更新后],它的作用是记录该实体所处的维度。

举个例子:

{Dimension:“minecraft:overworld“}

\\Java1.16更新后\\

{Dimension:0}

\\Java1.16更新前\\

这代表着该实体所处的维度为『主世界』。对了,『下界』的维度数字ID为-1,『末地』为1。

需要注意,似乎自从Java1.16版本开始,Dimension就不再是实体的通用标签之一,而是变成仅玩家拥有该标签。所以对于Java1.16及以上版本的实体来说,并没有Dimension这个标签。

这一章到此为止。

附录:实体通用标签的部分历史

Java

1.9——Riding标签改为Passengers标签

1.16——Dimension标签不再是实体通用标签,数据类型从Int整型改为String字符串。

1.17——实体数据的储存位置被改变