当前位置:笔屋小说网>Minecraft指令手册> 第一百五十八章 重新认识NBT(3/3)
阅读设置 (推荐配合 快捷键[F11] 进入全屏沉浸式阅读)

设置 X

第一百五十八章 重新认识NBT(3/3)

章节不对?章节无内容?换源看看: 81中文网
  

  回到这棵NBT树上,仔细观察它与它的SNBT形式,你应该不难发现,id节点的树叶上写着“minecraft:jukebox“,x、y、z节点的树叶上写着-160和-53,IsPying节点的树叶上写着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路径(NBTpath)——用来从NBT树中指定一系列特定元素的描述性标签。

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

  本章到此为止。

  对了,2023新年快乐!

上一页 目录 我的书架 下一章