Minecraft指令手册

你好MC

首页 >> Minecraft指令手册 >> Minecraft指令手册最新章节(目录)
大家在看 穿越:不一样的元气骑士 重生方协文玫瑰孕气不断 开局强化癌细胞,我独获登神序列 灌篮:我的湘北留学生涯 熊学派的阿斯塔特 抗战,成了鬼子医生的我也要救国 穿成真千金后,副本邪神他跟来了 开局在马刺发育三年 重生之神级败家女 修真门派掌门人
Minecraft指令手册 你好MC - Minecraft指令手册全文阅读 - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - 好看的游戏小说

第一百五十八章 重新认识NB

上一章 书 页 下一章 阅读记录

看到这个题目,你是不是大吃一惊?Nbt怎么还要重新认识?

别太惊讶。还记得最开始我们接触到Nbt的时候吗?在第五十四章的最后,我指出这其实并不是真正的Nbt,而是mojang专门搞出来给人看的『SNbt』,即『Stringified Nbt』,『字符串化的二进制命名标签』。在之后的章节,我们也重点了解了SNbt,知道了它的格式和使用方法。而现在,我们已经了解并掌握了许多物品和实体的Nbt,这时候,也是时候来认识一下真正的树状结构的Nbt,这样子你才能真正理解接下来的内容。

—————分割线—————

树,是大自然的鬼斧神工。它提供了人类赖以生存的氧气和食物,也给了人类许多灵福

一棵树,有树根、树干、树叶。它们均发源于一点,我们可以把这一点称为——根(root)。为了方便讲解,我们接下来忽略位于地底下的树根,只看树干和树叶。

树干上有许多分叉点,我们可以把这些分叉点称为——节点(node)。通过节点可以长出一些树叶或新的树干,在新的树干上则又有许多新的节点,分叉出更多的树叶和树干。

一个节点所分叉出的所有树叶和树干,以及这些树干上所有的节点,可以全部视为这个节点的值(value)。你可以这么理解——这些树叶和树干,就是这个节点所存在的价值。如果没有这些树叶和树干,那么这个节点也将不复存在。

这就是一棵树——一颗完全由根、节点和值构成的树!(图158-1)

根其实是一种特殊的节点,它是整个树的开始,所以整个树都可以看作是根的值。

除了根,其他节点都可以取名字。在同一个树干上,每个节点的名字都必须是独一无二的,以防与其他节点弄混。

比如,我们可以给根上面的第一个节点取名『Apple』、第二个节点取名『beluga』。这样子,我们就不容易搞混这两个节点,也可以方便用名称指代这两个节点。

假设第一个节点长出了一条树干,上面也有一个节点,我们给它取名为『cen』。而这个『cen』节点也长出了一条树干,上面也是有一个节点,我们给他取名『Sama』(图158-2)。那么,如果其他人也要寻找『Sama』节点,该如何寻找呢?

假设其他人只知道这个节点胶Sama』然后去寻找它,在节点很多的情况下这无疑是大海捞针。而且有可能在不同树干上的其他节点也胶Sama』。这时候该怎么办?

我们来看一个现实生活中的情景:

你此时正在学校里上课,老师要求你将书翻到这节课要讲的『第三模块第五单元第一课』。你肯定是先找到『第三模块』,然后找到『第五单元』,最后找到『第一课』。老师不可能只告诉你『翻到第一课』,因为每个单元都有自己的第一课。老师这样,让你得知了『第一课』的路径(path),于是你才找到了这节课要讲的『第一课』。

回到上面的问题,答案已经十分明显了——那位要寻找『Sama』节点的,应该去询问得知『Sama』节点具体位置的人,比如我们。然后我们应该将『Sama』节点的路径告诉他,也就是:

Apple.cen.Sama

这就是『Sama』节点的路径。如你所见,一个路径就是『节点.节点.节点』的形式,从左往右的节点指出了一条从根开始通向终点节点的具体道路(图158-3)。

路径既然可以用来找到节点,那么他们应该也就能够表示节点,乃至于表示这个节点的值。毕竟『一个节点』只对应『一条路径』,『一条路径』也只对应『一个节点』,『一个节点』也只能雍一个值』。因此,如果我们再一次看向『Sama』节点的路径『Apple.cen.Sama』,我们就会发现『Apple.cen.Sama』既可以用来表示『Sama』节点,也可以用来表示『Sama』节点的值。(只不过Sama节点的值是空的)

又比如,路径『Apple.cen』既表示节点『cen』,也表示节点『cen』的值——从『cen』节点长出的树干以及上面的『Sama』节点。

看起来像『节点.节点』这样的路径解决了寻找节点以及节点的值的问题,但如果『Apple』节点又长出了一条新的树干,这条新的树干上又有一个节点『touhou』该怎么办(图158-4)?此时『Sama』节点的路径又该如何表示?

很明显,现在『Apple』节点长出了两条树干(另外两条是贯穿Apple节点的从根长出来的主干,其实是一条,不要搞错了),我们需要有一个正确的方式来表示这两条树干。比如我们可以取名字,但这似乎过于麻烦了,而且容易把树干和节点搞混。最好也最简单的方法就是给树干编『号数』,也就是使用索引(index)。

将节点『cen』所在的树干编上索引0,那条新的树干编上1,然后我们只需要在路径中的『Apple』后面,『.』前面加上树干的索引,就大功告成了:

Apple[0].cen.Sama

其中,[0]指的就是索引为0的树干,也就是『cen』节点所在的那一条。通过这种方法,我们也可以表示『touhou』节点:

Apple[1].touhou

不过,这些东西跟Nbt有什么关系呢?

这个问题问得好。现在,让我们再来看看另外一颗树(图158-5):

├id:“minecraft:jukebox“

├Isplaying: 1b

├ RecordItem:

│├count: 1b

││

│└id:“minecraft:music_disc_ard“

├x:-1

├y: 60

├z:-53

├RecordStarttick: 0L

└tickcount: 514L

仔细看这东西,你有没有发现?

如果没有发现,那让我们把这棵树的形态转化一下,变成:

{id:“minecraft:jukebox“,x:-1,y:60,z:-53, Isplaying :1b, RecordItem :{count:1b,id:“minecraft:music_disc_ard“}, RecordStarttick:0L, tickcount:514L}

这不就是SNbt吗?

没错,上面那棵树,其实就是下面这个SNbt的Nbt形式,游戏所看到的Nbt就长这个模样。

这棵Nbt其实就是一个放在(-1,60,-53)的唱片机的方块实体。我们会在第十八卷具体了解到方块以及方块实体的内容,在这边你只需要将方块实体当作是方块Nbt即可。从这棵Nbt中,我们和游戏都可以得知,这个唱片机此时正在播放(Isplaying)ard唱片(RecordItem),并且已经播放了25.7秒(tickcount),这个唱片机在此之前没有播放过任何唱片(RecordStarttick)。

你可以在minecraft iki上搜索『唱片机』来具体了解上述标签的作用,Nbt都讲到这了你应该不可能看不懂minecraft iki上关于Nbt的内容吧?

回到这棵Nbt树上,仔细观察它与它的SNbt形式,你应该不难发现,id节点的树叶上写着『“minecraft:jukebox“』,x、y、z节点的树叶上写着『-1』『60』和『-53』,Isplaying节点的树叶上写着『1b』,RecordStarttick和tickcount节点的树叶上写着『0L』和『514L』。在SNbt中,上面这些节点所对应的标签的值的类型都是字符串、Int整型、byte字节型和Long长整型。也就是,String字符串、byte字节型、Short短整型、Int整型和Long长整型,以及其他的浮点数数据类型,在Nbt树中都无一例外承载于『树叶』之上。

而RecordItem节点,长出的是一条树干,树干上有id和count节点。在SNbt中,RecordItem标签的值类型是复合标签,复合标签内也有id和count标签。也就是,『复合标签』在Nbt树中所体现出来的就是一条树干。

也就是,整个Nbt标签其实就是一个复合标签?

没错,确实是这样。

通过上面的观察,你应该已经总结出来了Nbt树与SNbt的一些对应关系,比如节点对应标签名,树干对应复合标签。那……列表呢?在Nbt树中,列表又是长什么样子?

还记得上面的『Apple』节点吗,我们在研究节点的路径(path)时,遇到了一个节点长出两条树干的情况。如果我们以SNbt的形式将『Apple』节点表示出来,其实就是这样的:

{Apple:[{cen:{Sama:}},{touhou:}]}

在SNbt中,『Apple』标签的值就是一个复合标签列表!列表的顺序规定了列表内每个元素(element)的索引值(index)。和生活中数数不一样的是,列表的索引并不是从1开始,而是从0开始,这就是为什么我们给『cen』节点所在的树干标上索引0而不是1的原因。

同理,如果一个节点长出了一堆承载相同类型数据的叶子,那这个节点的值也是一个列表(或数组)。如果一堆值是列表的节点挤在一起,那这一堆节点所形成的大节点自然也是一个值是列表的节点,而且这列表还是列表的列表:

{节点:[[{},{},…],[{},{},…],…]}

\\\\它的SNbt形式\\\\

只不过,像这样的二维列表,甚至是三维列表,我们在之前都没有碰到过,在以后也很有可能不会碰到。

这就是Nbt的树状结构,也就是真正的Nbt。看起来讲了很多,但其实内容并不是很难,唯一的难点估计是语言比较枯燥。

但这并不是本章唯一的重点。你应该还记得刚才讲的『节点的路径』。相比于Nbt的树状结构,我们会在接下来的内容中更常碰见节点的路径(path)。其实,这个『节点的路径』,就是Nbt路径(Nbt path)——用来从Nbt数据树中指定一系列特定元素的描述性标签。

在接下来的\/data指令中,Nbt路径是非常重要的一个东西,可以只要你掌握了Nbt路径,你就几乎掌握了\/data指令。我们会在下一章更加深入了解Nbt路径,但在此之前,请你『务实一点,把Nbt的战术打法,Nbt树的这个理念先搞懂』——范志毅,国家minecraft指令教学前任大将军,此句话为他2013年6月15日在评价minecraft指令教学时所的名言警句。

本章到此为止。

对了,2023新年快乐!

喜欢Minecraft指令手册请大家收藏:(m.86xiaoshuo.com)Minecraft指令手册86小说更新速度最快。

上一章 目 录 下一章 存书签
站内强推 恋爱有风险,分手需谨慎 这个书生不能惹 至尊鼎 邪道鬼尊 我以正法镇万妖,邪祟竟是我自己 [重生]之邪不压正 校花的贴身高手 卜卦天师 云的归途是故乡 儿砸养成指南[综基三] 云翘传 我乃茅山大师 废柴王妃有点冷 我怎么成别人的外挂了 看见未来厄运,国家追着我喂饭 极道武学修改器 崽崽一岁半,爱吃爱睡爱嗷嗷叫 镜像多元宇宙 快穿拯救女主后,恶毒女配崩人设 道长好凶猛
经典收藏 最强重装 夺命圣枪王 穿越00后动漫融合的世界 全球游戏:附带随身商店 我穿书是来搞笑不是被强制爱的 天哪!我怀了外星人的孩子! 乐园之主:从网游开始 转生我进入圣域战争 我的名字叫备胎 老公,你良心掉了 三国之武魂传说 赛尔号全员降临魔法世界 热血传奇之沙城城主 女友全家大佬!我苟亿点怎么了? 灵玉落君怀 爱你,怪我入戏太深 御灵师手册 绝顶枪王 shlj日记 我想打篮球拒绝当舔狗
最近更新 从战场上的英雄到四合院的街溜子 无职法师 魔王大人 联盟:选出艾希,Rita坏掉了 网游:神级刺客,我即是暗影! 世界融合,开局无人侏罗纪星露谷 王者:巅峰榜一!全网求我打职业 梦幻西游之一梦十八年 LOLS9世界赛及之后比赛记录 东方美人在美国 新还珠之皆大欢喜 致命游戏:全能大佬搞钱攻略 HP:克劳奇小姐志向不止于此 刚到漫威,你告诉我这是美漫! 超能进化:我的兵种有点贵 百变小樱:转世后制作卡牌 遵守怪谈规则,但没说不让超度诡 XCY龙凤战队:加入PEL舞台 柯南:不平行恋爱日记 CSGO之黄金年代
Minecraft指令手册 你好MC - Minecraft指令手册txt下载 - Minecraft指令手册最新章节 - Minecraft指令手册全文阅读 - 好看的游戏小说