第一中文网

第一百五十九章 深入了解nbt树和nbt路径 (第1/3页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

在上一章,你应该已经理解了什么叫作Nbt树,但理解不代表会运用。要真正搞懂Nbt树的理念,我们得投入实践,学会阅读Nbt树甚至表示出一个Nbt树。

Nbt数据树常常会表示成下面这样的格式:

<数据类型>[root或其他具体名称]:根、父级标签或其他具体的名称或描述

├<数据类型>[名称]:值或描述

......

└<数据类型>[名称]:值或描述

注:在上面的格式中,<>代表必定会出现,[]代表可能会出现(含义跟指令格式中的一样)。

许多网站和程序,比如minecraft wiki、常用的Java版Nbt编辑器NbtExplorer,都采用了上述格式来表示Nbt。

举个简单的例子,在minecraft wiki上,Java版书与笔的物品Nbt是这么表示出来的:

? tag:父级标签

└? pages:书与笔的各个页面。

空└?:一个单页。每一页是一个字符串,不能超过个字符。

在上面的这个例子中,由于minecraft wiki使用一个图片标识来表示数据类型,所以这里用一些特殊符号来代替:

?——pound复合标签

?——List列表

?——String字符串

仔细观察minecraft wiki给出的Nbt树,结合我们前面所学的知识,你应该不难得出上面这个例子所表示的意思:

『对于物品书与笔,在其物品Nbt标签中的tag复合标签下,有一个名为pages的列表型标签。这个pages列表是一个由多个字符串类型的值组成的列表,每个值都代表着书与笔中的一页,且每个值都不得拥有超过个字符。』

什么?你很难理解?或许我们需要睁大眼睛,逐行研究上面的例子。

第一行:? tag:父级标签

根据上面的格式『<数据类型>[root或其他具体名称]:根、父级标签或其他具体的名称或描述』,我们不难知道这在表示一个名为tag的复合标签。同时,它被解释为『父级标签』,说明minecraft wiki在这里给出的Nbt树是在描述这个标签的孩子(也就是值)。

等等,为什么minecraft wiki不直接从根开始,而是从这个tag标签开始呢?

回忆一下第十一卷的内容,tag标签是物品通用标签内的一个标签,用来储存物品的额外信息。所有额外的物品标签都在tag标签内,因此minecraft wiki不从根开始描述的原因也就不难理解——使文章详略得当。

问题解决,我们来看看第二行:└? pages:书与笔的各个页面。

最开始的└意味着在这里,Nbt数据树的这条树枝上有一个节点,而且由于└没有继续向下延伸,因此这个节点是该树枝上最后一个节点。第二个?代表的意思很明确,即该节点对应的Nbt标签是个列表。『pages』是该列表的标签名,而后面的『书与笔的各个页面。』是对该标签的一个描述。

第三行更加简单:└?:一个单页。每一页是一个字符串,不能超过个字符。

最开始的└不用说,?估计也不用说。但?后面的标签名称呢?

还是那句话,这是个列表,列表是由多个相同类型的值组成,而不是标签。换句话说,这部分Nbt树实际上描述的不是个标签,而是个值,自然也就不需要给出名称,因为没有名称。

冒号右

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办