登陆注册
66052300000147

第147章 生物的共通NBT-3

在上一章我们讲到了HandItems和HandDropChances,这两个标签都跟生物的两只手有关。而一个生物,它不光拥有手,还拥有一个可以穿戴东西的身体。

所以,NBT里除了HandItems,还有ArmorItems——用于存储生物的头、胸、腿、脚都穿了些什么鬼东西。

ArmorItems的值和HandItems一样,都是列表。列表内有4个空,分别用于填写四个部位所穿戴的物品:

{ArmorItems:[{靴子},{护腿},{胸甲},{头盔}]}

举个例子,现在这里有个僵尸,它头上戴着皮革帽子(leather_helmet),胸前穿着锁链胸甲(leather_chestplate),腿上是个附了保护I的的钻石护腿(diamond_leggings),脚上穿着铁靴子(iron_boots),那么这个僵尸的ArmorItems就是:

{ArmorItems:[{Count:1,id:“iron_boots“},{Count:1,id:“diamond_leggings“,tag:{Enchantments:[{id:“protection“,lvl:1}]}},{Count:1,id:“leather_chestplate“},{Count:1,id:“leather_helmet“}]}

哦不!这个僵尸死了!那么它掉落身上装备的几率是多少呢?

我们不知道有多少,但我们可以更改成自己想的,这样子就知道了!

和HandItems一样,ArmorItems标签也有一个控制掉落几率的亲兄弟:ArmorDropChances,格式和HandDropChances当然也差不多,都是:

{ArmorDropChances:[靴子掉落几率,护腿掉落几率,胸甲掉落几率,头盔掉落几率]}

这里的几率也照样是单精度浮点数。举个例子:

{ArmorDropChances:[1.0,0.32,0.65,0.99]}

这样子的话这个僵尸其装备的掉落几率就是:

靴子——100%

护腿——32%

胸甲——65%

头盔——99%

是不是灰常简单?

当然,别忘了,击杀一个生物,掉落的不光是它拿的东西以及穿的东西,还有这个生物的战利品表所规定掉落的物品。

控制生物战利品表的标签就是:DeathLootTable,这个的值是个字符串,所以它填的战利品表一般是游戏已经封装好的,比如这个僵尸,它的默认战利品表就是:

{DeathLootTable:“loot_tables/entities/zombie“}

也就是僵尸的战利品表。

当然,你也可以自定义战利品表,只不过你可能需要用到很多的转义符号(\)。

具体的战利品表介绍已经在第八十九章就详细的讲过了,只不过好像很多人都没看懂哎。

没事,没看懂很正常,6000多字的内容可不是一时半会能消化得完的。

战利品表是随机的,但这个随机并不是战利品表自身的,而是要通过种子来完成:

DeathLootTableSeed

DeathLootTableSeed的用途是生成战利品表的种子,当为0或为空时将会随机生成一个种子。

上面的DeathLootTableSeed和DeathLootTable都是关于战利品表的。但如果一个生物没有战利品呢?

除了它的战利品表是loot_tables/empty外,还有一种可能:

它没有DeathLootTableSeed和DeathLootTable这两个标签。

没错,实际上这两个标签是可选的,就算把它两删了也不会出什么惊天大事的。

但下面这个,就不能删了:

CanPickUpLoot(值:true|fasle布尔值)

CanPickUpLoot这个标签控制着这个生物它到底会不会捡起物品(或者说是战利品)。当为true,这个生物就会捡东西,然后把可以用的东西用起来,比如捡起靴子就穿上靴子之类的——这点在僵尸上特别突出:相信你应该经历过苦力怕把你箱子炸了,僵尸紧接着跑过来把你东西拿了,我都怀疑这苦力怕是不是和这僵尸心有灵犀,咋配合得这么默契呢?

所以,如果你不想让僵尸拿起你的剑去砍你,就把这个CanPickUpLoot改成false吧!

生物的共通NBT还有许多和CanPickUpLoot一样是布尔值的标签,且都很简单:

NoAI(值:true|fasle布尔值)——这个生物是否没有AI。true为没有AI,false为有AI。

PersistenceRequired(值:true|fasle布尔值)——这个生物是否不会被自然删除。true为不会被自然删除,false为会被自然删除。

LeftHanded(值:true|fasle布尔值)——这个生物渲染的主手是否为左手。true为渲染时主手为左手,false为渲染时主手为右手。

Leashed(值:true|fasle布尔值)——这个生物是否被拴住。true为被拴住,false为没有被拴住。

而其中,最复杂的应该要数Leashed。当这个为true时,就会有一个新的标签:

Leash

这个Leash稍微有点复杂,它有两种记录方式:

1.该实体为拴绳的头(没错,就是栏杆上那个长方形状的拴绳头,那也是个实体)或拿着拴的实体,那么将会记录它拴住的实体的UUID(1.15版本及以下是UUIDMost和UUIDLeast),即:

{Leash:{UUID:[I;-211674134,1944866746,-1405592313,1790609596]}}

(1.15版本及以下:

{Leash:{UUIDMost:-909133480994254918,UUIDLeast:-6036973014053386052}})

2.该实体为被拴住的生物,那么将会记录拴住它的拴绳头或拿着拴着它的绳子的实体位置,即:

{Leash:{X:921,Y:65,Z=343}}

嗯,还是挺简单的。

到目前为止,我们已经了解了大部分生物的共通NBT,只剩下了三个没讲的了:

Team(值:字符串)

Brain(值:复合标签{})

ActiveEffects(值:列表[])

其中,Team是这里面最简单的。但是它的作用并不是存储这个生物所加入的队伍,而是:

如果Team的值里面有填东西,该生物将会自动且立马加入Team所填的队伍,加入后自动清空Team的值。

所以这个标签实际上并不是个生物的NBT数据,而是方便在创建生物时让生物加入队伍。

所以这个标签的用武之地就是——

实现起床战争召唤自家队伍的铁傀儡!

........

然后是ActiveEffects。Brain最复杂,我们留最后。

ActiveEffects的作用是存储这个生物所有的状态效果。如果这个生物没有状态效果,就不会有这个标签。

ActiveEffects的格式是这样的:

{ActiveEffects:[{效果1},{效果2},{效果3},...]}

而这个效果,就要涉及到——效果的NBT(效果没有共通之说,因为效果的NBT都是一样的):

Id——效果id(值:数值)

Amplifier——效果等级,实际等级是这里的数值加上1。如这边填0,等级将是1(值:数值,范围:0~255)

Duration——距离效果消失的时间刻数。或者说是效果的剩余时间,单位为刻(值:数值[int整型])

Ambient——这个效果是否是信标施加。如果是由信标施加,则为true,将会减弱粒子效果。不是则为false(值:true|fasle布尔值)

ShowParticles——是否显示粒子效果。显示则为true,不显示则为false(值:true|fasle布尔值)

ShowIcon——是否显示效果图标(这个挺有用,配合ShowParticles可以神不知鬼不觉给人附上效果,比如用于起床战争)。显示图标则为true,不显示为false。(值:true|fasle布尔值)

HiddenEffect——相同类型但效果等级更低的效果,将会暂时放在这边。如果上面的状态效果失效将会立刻取代它。当然,存在这边的效果剩余时间仍然会减少。(值:复合标签{})

都懂了吧?这已经说得很详细了。举个例子,假设一个村民被玩家使用指令施加了110级时长3分30秒的跳跃提升,那么这个村民的ActiveEffects将是:

{ActiveEffects:[{id:8,Amplifier:109,Duration:4200,Ambient:“false“,ShowParticles:“true“,ShowIcon:“true“}]}

但如果这时候玩家又给这个村民添加一个相同类型的状态效果,但等级达到了120级,时长只有1分钟,将会怎么样?

这时候就要了解一下HiddenEffect标签里的东西了,实际上还是一样的:

Id

Amplifier

Duration

Ambient

ShowParticles

ShowIcon

HiddenEffect

可以发现这里又有HiddenEffect。没错,确实是可以套状态效果的,想套多少都可以。

所以这时候村民的ActiveEffects就成了:

{ActiveEffects:[{id:8,Amplifier:119,Duration:1200,Ambient:“false“,ShowParticles:“true“,ShowIcon:“true“,HiddenEffect:{id:8,Amplifier:109,Duration:4200,Ambient:“false“,ShowParticles:“true“,ShowIcon:“true“}}]}

懂了吧?其实灰常简单的。

最后就只剩下Brain(值:复合标签{})了。

Brain相当于这个生物的记忆,所以很高级。高级到什么程度呢?在生物里,到1.16,只有村民和猪灵有记忆。

Brain的内容只有一个:

memories(值:复合标签{})

而memories的值,就多了:

minecraft:meeting_point

minecraft:home

minecraft:job_site

minecraft:last_slept

minecraft:last_woken

minecraft:last_worked_at_poi

minecraft:angry_at

minecraft:admiring_item

minecraft:admiring_disabled

minecraft:hunted_recently

只不过这些内容,由于太多了,我们只好放到下一章再来讲了。

同类推荐
  • 全息之幻想

    全息之幻想

    人生最幸运的是,莫过于可以重来。如果可以挽回上辈子的遗憾,那该有多好?本来是打算靠着这上辈子的记忆,轻轻松松赚赚钱、打打擂,拿个首富加冠军的。不过……为什么这游戏玩着玩着,自己却变得越来越非人了?这怎么跟记忆中的不太一样啊?幻想之中,到底有什么秘密存在呢?她的重生到底是……
  • 穿越成猹

    穿越成猹

    男主传越,获得系统,重生成猹,为了生活,偷瓜偷瓜,闰土刺猹。
  • 进入游戏称霸全服

    进入游戏称霸全服

    游戏天才秦洛,一个靠代打为生的宅男,在游戏《神迹》出现时,沉迷其中,谁知却陷入一个巨大的渊源
  • 网游之极品房东

    网游之极品房东

    风流倜傥的华丽哥,巧计抢到游戏头盔,进入游戏成为高攻高幸运的隐藏种族,意气风发的他却迎来九个风情各异的美女房客,一不小心进错浴室,华丽哥彻底拜服,成为美女们的贴身保镖。
  • 彩蛋搜寻家

    彩蛋搜寻家

    2043年,秘境游戏上线,世界上的第一个彩蛋类游戏。同一年,秘境职业联赛拉开帷幕!无数的玩家涌入其中,只为了区域内的终极彩蛋。丧尸之城,海上巨轮,天空之境,精灵国度。。。一切的故事要从这里开始,看头号玩家的称号最终花落谁家。
热门推荐
  • 首席大人又醋了

    首席大人又醋了

    她本是含着金汤勺出身的豪门千金。天性单纯,生活无忧!却不料一场意外,让她的命运发生了天翻地覆的变化......
  • 雾中寻

    雾中寻

    本书为一部青春成长小说。作品通过一个女孩从校园走进社会的成长经历的描述,反映了当代年轻人的思想与工作状态。十九岁的女孩小慕走出校门后进入一家印刷厂工作,对于简单、重复的工作,小慕应付自如。而厂里人多事多的人际关系却使得性格内向的小慕无所适从。在经历了技能比赛、岗位调整、人员变动等一系列事件之后,小慕日渐变得成熟。经过一段时间的历练,小慕终于适应了从校园到社会的生活,完成了她人生中的一个小小的转变。
  • 流梨沧渊

    流梨沧渊

    原本平静的江湖因“波旬剑”的重现而变得风云莫测。奉魔为主的兰陵沧渊宫如获至宝,怀必死之心派出大批精锐。与此同时,以神武修身、佛法修心的“天下佛门之首”流梨山门,誓以佛之慈悲愿力化去波旬剑的魔性,除去人间一场腥风血雨,被世人视为抵御魔道席卷而来的最后一道防线。这场暗流汹涌的漩涡不停地卷入更多的江湖儿女,本无关联的人与物也在这场风波中开始交织。一个不为人知的秘密也在时间的推动下逐渐展开......
  • 不是灰姑娘

    不是灰姑娘

    [花雨授权]拜托,他不过是因为闷热而把衣服脱掉,她有必要把他当成大色狼和暴露狂吗?就算他要露,也要露给舞会上的古典美女看,就她这种小麻雀,他可不稀罕。可是可是,为什么出现的竟然会是这个死女人呢?
  • 余生与你互怼

    余生与你互怼

    学习上,一个天上,一个地下;处事上亦是。更不用说情史上了。那些年说不上几句话就会互怼起来的两人,在多年之后再遇,两人都有着相似的经历,本以为美好的初恋却是惨败,在互怼的氛围中,两人慢慢走出过去,迎接新的生活……秦小姐:宋先生一天不互怼就不舒服。宋先生:秦小姐一分钟不说话就不爽。这是两个不聊天还好,一聊起来各种怼。
  • 凯我光年

    凯我光年

    以前的一切,让我不知所措,但那只是曾经。以后,,我的余生,用来换你一世安康。
  • 末世逆流

    末世逆流

    末世中,退代表着死。化作逆流,击溃所有阻拦道路的困难。我,只想活下去。
  • 唐宋悠然壹残唐余晖

    唐宋悠然壹残唐余晖

    “逢此乱世,已许民再难许卿”“君护此天下长安,我与君渡此余生”
  • 宇宙尽头之星球崛起

    宇宙尽头之星球崛起

    在经历了很久的时间以后,太阳的光和热即将耗尽,为了寻找新的适合人类生存的家园,地球联盟派遣出一群少年精英,使用新的科技力量,踏上了新的征程。
  • 时空邮箱

    时空邮箱

    周轼活了二十余年的人生头一次遇见了怎么也解释不通的事情,一封来自未来的信显示自己未来的老公竟然是暗恋许久未果的男神,周轼看着身边对自己爱搭不理的男人不禁陷入了思考,未来的自己是有多努力,才能把这块冰山挖回家,等等,谁先来解释一下解释下这封信是怎么回事?