第189章 ,/.

在上一章的末尾,我们发现玩家和生物其本身的NBT很多是互通的。所以,你能在生物的共通NBT中找到一些玩家身上也有的NBT。

比如:FallFlying(值:布尔值)

FallFlying是个布尔值,一般来说它是0。如果是1,生物(或者是说“非玩家实体”)就会像用鞘翅滑翔般滑翔起来。而如果是玩家,那么玩家当然是在滑翔时这个值才会是1,所以FallFlying被用于检测一个玩家是否在滑翔。

那么这到底有什么用呢?

或许就是让非玩家实体滑翔起来吧,或者是用于服务器防飞行挂的鞘翅飞行检测,防止误判。

这是一个玩家和生物NBT互通的例子,而在生物的共通NBT中,还有很多这样的例子,比如这三个:

SleepingX(值:数值)

SleepingY(值:数值)

SleepingZ(值:数值)

这三个标签并不是时时刻刻都会出现,因为这三个标签的作用是:

记录实体当前正在睡觉的床的坐标

为什么还要记录呢?直接使用实体本身的坐标不行吗?

肯定不行,因为MC是一个充满特性的世界。如果你哪天在MC里睡觉,没想到触发了一个特性,让你飘离床,在飞天神曲的沐浴下经过了流沙河,翻越了火焰山,到达了西天大雷音寺这样子在睡梦中完成了西天取经的十万八千里。然后你醒来了,如果游戏就是采用直接使用实体本身的坐标的话,那么——

“我是谁?我在哪?我在干什么?”

(过了一会)

这时东土大唐边境河州卫,玄奘正要离开驿馆。突然观音菩萨出现在玄奘面前,告诉他有人已经提前一步拿到了大乘佛法了。

玄奘:.........

所以Mojang为了避免这种情况的发生,使用了在玩家睡觉的时候就记录床位置的方法,这样子就算玩家飘离了十万八千里再起来:

“啊~又是新的一天啊。”

“应该给自己的豪宅再升级一下了。”

(于是玩家挖了几块泥土)

“真不错。”

所以这三个标签是极其重要的。

只不过生物会睡觉吗?好像只有村民会哦。

比如现在这里有个村民,他睡在X=564,Y=87,Z=65这个床上,那么他这个时候的这三个值就是:

{

SleepingX:564,

SleepingY:87,

SleepingZ:65

}

——————一个很不华丽的分界线———————

在上一章我们讲到,生命的最大值其实就是一个属性。如果我们要修改这个属性,该怎么办呢?

生物的共通NBT里就有这么个标签:

Attributes(值:列表)

这是一个列表,所以它的值是这样的:

{Attributes:[A,B,C]}

那么这些ABC该填什么?

答案是属性: