Minecraft指令手册

你好MC

首页 >> Minecraft指令手册 >> Minecraft指令手册最新章节(目录)
大家在看西游:截胡猴子,赐他混沌法被宗门放弃后,步入巅峰这破系统竟然逼我当大侠!吞噬圣尊我在大唐猎妖军当伙夫我突破的太快了诡秘:不死人不死于传火长生修仙:开局和女魔头双修带着农场混异界一身反骨,逆破苍天
Minecraft指令手册 你好MC - Minecraft指令手册全文阅读 - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - 好看的玄幻魔法小说

第一百三十一章 生物的共通NBT-1

上一章目录下一章阅读记录

在第一百一十二章到一百一十三章这两章里,我详细地介绍了实体的通用Nbt,或者说是实体的基础Nbt。在此基础上,mojang又添加了一些新的Nbt,这些新的Nbt加上原来的实体Nbt,就变成了:

生物的共通Nbt

生物的共通Nbt的内容相较于实体基础Nbt增加了很多,以至于要用更多的篇幅去讲述它。当然这些并不一定要背下来,稍微了解个大概,需要用的时候过来看就行了。有时候用着用着说不定就记下来了呢!(当然,荒废一段时间还是会还回去的)

那么这些共通的Nbt到底是什么呢?

我们知道,一个生物,最基础的就是血量,所以共通Nbt自然而然就有血量:

health(值:数值)

这个health就是生物的血量值。但如果你玩过游戏,应该就会知道一个生物的血量至少要有两个变量:

1.当前的血量

2.血量最大值

而这个health就是指当前的血量,比如现在有一只猪它有1滴血,它的Nbt就是:

{health:1}

但实际上,很多时候这个health并不是个整数,而是个小数(准确的来说是“浮点数”)。比如你徒手去攻击一位全是钻石套的大佬,你别看它的心数没变,就认为你的攻击没起到作用,实际上是因为伤害过小被约没了而已,因为这个大佬在受伤后的的health是:

{health:19.}

你给这位大佬造成了0.0滴血的伤害,相当于这位大佬血量的3.‰

嗯,确实够小的。

而有时候,health也可以达到负数,比如你一击就秒了对方,那么对方在临终前的血量就是:

{health:-623.5}

嗯,这伤害都够同时秒末影龙和一只JAVA版的凋零了。

而如果这个health的值超过了所允许的最大值,比如你通过修改器把自己的血量修改成了会怎么样?

答案是你进入游戏后就会拥有滴血,只不过这并没有什么卵用,因为当你遭受到了伤害,就算是一点点,游戏也会:

本次攻击共造成了0.00635滴血的伤害,正在扣除中

我靠,这家伙的血量怎么超过了这个生物属性里的generic.maxhealth*数值!

(*关于generic.maxhealth早在第一百零五章时就讲到了,当时就已经讲到了生物的属性,建议忘记的同学赶紧回去复习一下)

不行,这家伙绝对开挂了!必须要干点什么。

也不知道这家伙在修改之前的生命值是多少。算了,直接改成允许的最大值吧!

——health的值从变成了20

——health的值从20变成了19.

恭喜你,你的血量一夜回到了解放前!

所以说以后改血量的时候最好先把最大值改了,不然改个毛线。

上面说过,要弄血量至少需要两个变量。但mc作为一个十多年还在焕发活力的老游戏,只有两个血量的变量,未免有些奇怪。所以mc不只两个血量变量,而是还有:

AbsorptionAmount(值:数值)

(哎作者,最大值还没讲呢!)

呃,其实早就讲过了,最大值其实就是一个属性,在第一百零五章时就讲过了。

AbsorptionAmount的作用是指通过伤害吸收效果所获得的额外生命值,就是那个吃了金苹果生命值多了的那个黄色小心心。

为什么mojang要单独添加这个属性呢?

因为minecraft还有一个和伤害吸收作用很相似的效果:生命提升

但这只是表面相似,实际上生命提升是直接提升generic.maxhealth生命最大值,所以显示出来的是红心,而且掉了还可以回。伤害吸收就不一样了,那黄色生命是一次性的,生命最大值还是最大值,提升的实际上并不是生命,而是添加了类似于盾牌的效果,只不过抵挡的生命值是可以直观显示的。

所以,AbsorptionAmount这个属性的作用是指能抵消的伤害量,并不是指提升的血量。

比如:

{health:20,AbsorptionAmount:4}

这样子显示成心的话将会是10颗红心+2颗黄心。

.......一个并不华丽的分割线......

“......看,红队那名玩家刚刚挖了蓝队的床,蓝队的那些成员都围在那红队的旁边。可以看到有一名胆小的蓝队跑了,虽然这看起来有些背叛其他人,但接下来那名红队玩家以一挡五,使用了单身起码15年的手速迅速地先干掉两名离他最近的蓝队,将其打下虚空。剩下那3名蓝队竟然没有溃逃,而是团结在了一起,重新像那红队发起进攻。红队那名玩家看动作应该是打算先虚张声势一下,趁蓝队恍惚间逃走,但没想到蓝队反应速度之快,将其打个措手不及,死亡......”

相信你一定玩过起床战争,就算没玩过也起码干过pVp或pVE。在攻击敌方时,敌方受到攻击都会发红,这点在羊身上特别明显,一白一红的强烈反差述说着那羊的痛苦,以及引出了一个新的问题:

这个发红的时间是否有跟生物本身的Nbt有关?

确实有关。

在生物的共通Nbt里,有这么一个标签:

hurttime

这个英文简直是太简单了,按照现在的神童标准出生不到一分钟就可以翻译了:

疼痛时间

这个疼痛时间其也是一个数值,存储着生物被击中后发红了多长时间,单位是刻。生物不红之后值返回0,即代表着:生物最近未被击中。如:

{health:4.65,AbsorptionAmount:0,hurttime:16}

说明这个生物发红已经持续16刻了。

这个标签是控制生物的发红时间的,我们不需要太深入研究。

而另外一个标签:

hurtbytimestamp(值:数值)

和hurttime也与伤害有关,只不过这个标签记录的是“距离该生物上次受到伤害的时间”,单位也是刻,比如:

{health:6,hurtbytimestamp:853,hurttime:0}

就说明该生物距离上次受到伤害已经过去853刻的时间了。

真的是这么理解的吗?

实际上还有另外一种理解方式:

就说明该生物距离生成或出生已经过去853刻的时间了。

没错,如果该生物这生还没受到伤害,那么这个值将会记录它已经出生或生成多久了。

而当该生物死亡了呢?

如果这个生物不是玩家的话,那就没了。

但如果是玩家,实际上生物的共通Nbt里有这么一个标签:

deathtime(值:数值)

这对于生物本身没什么用,但它在玩家的Nbt里就有用了——它记录者玩家距离上次死亡多久了,主要是用于控制死亡动画,单位当然也是刻。

这个标签我们当然不需要深究,但我们却可以思考一个问题:

为什么生物的Nbt里有这个玩家才用得到的标签呢?

答案很不简单,作者猜是这样的:

上古时期(JAVA-classic),贫瘠的minecraft迎来了第一个生命——人类。这个神奇的生物不会饥饿,不会口渴,更不会死亡。它们会在世界里乱跑,乱跳。正是因为它们的存在,minecraft才出现了树、史蒂夫、羊、牛、鸡等物种,给这片本来贫瘠的大地带来勃勃生机。

(哎作者,minecraft的第一个生命不是草吗?)

所以玩家是由生物进化而来的,自然而然玩家就遗传了生物的dNA(Nbt)。

嗯,这样子就解释得通了。

oK生物的共通Nbt就先讲到这,我们下章再见!

上一章目录下一章存书签
站内强推抗战:鬼子太太不想丈夫丢工作明末:从土匪到列强让你来加速中上班,你抓哭白露?被赶出豪门当天,我和大佬闪婚了吴胜与思梨爱情之旅修仙界的捡尸人囤好物资迎末世大秦:九皇子的全能逆袭穿成疯批反派,万人迷皇子杀疯了女神的贴身侍卫关于我退休终焉下岗再就业这档事嫁死人?她随军一夜怀双宝了让你援助抗战,你成列强了?你不是我的菜[娱乐圈]不从圣我和男友在七零为国家做贡献字符的游戏极乐合欢功影视剧里的甜宠万人迷重返1999激昂年代
经典收藏医仙谷打杂三十年,我白日飞升大武器时代之红瞳少年开局两个福利怪不死的召唤师不小心统治了篮坛修罗:至高界主,主宰万界诸天!重生年代,退婚嫁最猛糙汉子我在红楼做曹贼师妹结婚了,新郎不是我傲世嫡女倾天下我靠捡宝变无敌重生之万古仙尊我的警长是狼人分身幻影之花影儿开局洪荒天花板,弟子虐哭了众圣诡秘:不死人不死于传火双面殿下太傲娇:落跑甜心快点跑我雕刻神像,敕封诸天神明美杜莎之约重生异界狂妃她又A又飒
最近更新造化无上三道独步,纪元飞升!我为法老,凌驾诸神之上!龙帝归来,开局便被悔婚身为妖族的我,却在人族成家立业灵幻星辰:魂耀大陆传奇香火证道,从皇妃求子开始你们敬仰的人皇,只是我的分身三战风云之灵气复苏神道山下天命反派:从拒绝退婚开始无敌!暴躁师兄巴掌带电,教你在线打脸肉佬:问道长生决一口造化鼎!从敲诈宗门开始无敌!天命大反派:开局投资主角,万倍返利双穿,辰星耀大黎座下九大女帝,你管这叫没落宗门本是无情人,怎奈有情生?我的手环能修仙我为反派本无敌,何须欺妹证道
Minecraft指令手册 你好MC - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - Minecraft指令手册全文阅读 - 好看的玄幻魔法小说