首页 男生 游戏竞技 Minecraft指令手册

第一百章 开启NBT时代(来,开杯香槟酒庆祝一下,100章了)

Minecraft指令手册 你好MC 4244 2024-07-09 15:29

  (此章节已于2022年8月4日重写)

  首先,在正文开始前,我们先庆祝一下本书写到了100章。

  好巧不巧,第一百章正好正式开讲NBT。

  但估计NBT也要讲100章了.......

  当然,开杯香槟酒庆祝一下那是必须的。

  没香槟酒怎么办?拿雪碧也可以。

  那么,正文开始!

  ——————————————

  在第五十四章中,我们初步了解了NBT(Named Binary Tag),搞懂了SNBT的格式。在接下来的章节中,我们将会依次了解物品、实体和方块的NBT,并更加深入地研究NBT的数据类型,以及搞懂如何将NBT用于指令的方方面面。

  在本卷的前面部分,我们会重点了解物品的NBT。虽然NBT仅仅只能在Java版中使用,但我们也会接触到一些基岩版的类似内容(如物品的JSON组件),所以基岩版玩家也可以来看看。

  本卷的后面部分将会开始接触实体的NBT,实体NBT的相关内容起码要到第十七卷才能结束。但其实你并不需要每章都看,因为作者都是根据Minecraft Wiki上列出的那些『通用标签』来选择讲哪些NBT的,对于一些冷门的通用标签你大可不必了解,等到真正需要时再看也不迟。

  第十二卷我们会暂时休息一下,然后开始深入学习JSON文本。第十五卷我们还会详细了解F3调试界面(所以这跟指令有何关系)。也就是说,尽管接下来有很多章节,但其实NBT的内容的占比不到一半。

  等等,什么是『通用标签』?

  在Minecraft中,难免会有一些类似的生物,比如僵尸和尸壳。但它们又是不同的实体。如果它们的NBT标签也不同的话,那么写指令的以及做开发的都很头疼。『通用标签』因此诞生。

  『通用标签』,正如其名,是指多个不同种类的东西带有的相同名称和功能的标签。比如『实体通用标签』,就是指几乎每个实体都具有的标签。通用标签可以方便Mojang官方和模组开发者开发新的东西,也可以方便CBer们(CBer,Command Blocker,玩命令方块的玩家,也就是指令玩家)使用NBT。我们会在接下来的章节中,详细了解各种『通用标签』。

  虽然通用标签有很多种,但常用的也不过以下几个:

  ①物品通用标签(最好把这个标签背下来)

  ②实体通用标签

  ③方块实体通用标签

  ④生物通用标签

  只要你能搞懂这四个通用标签,那你的NBT基本上就过关了。至于什么『箭通用标签』、『火球通用标签』等等冷门的标签,除非你需要使用到它们,否则一般不需要学习它们的用法。这就是为什么你可以跳着看的原因。

  在正式开始NBT的学习过程前,我们得详细了解Minecraft Java的一次重大更新:

  JAVA1.13扁平化

  我们都知道,Java1.13版本是『水域更新』,加入了珊瑚、溺尸等等新奇的东西。但Java1.13也是一个分水岭,在此次更新中,Miencraft Java的基础源代码被大量重写,导致许多模组被迫停留在1.12.2版本,甚至弃坑。但这次重写也促进了新时代模组的产生,涌现出了基于原版的数据包、Fabric、Rift等新时代的模组,使得Minecraft进入了一个全新的时代。

  在指令方面,Java1.13的更新内容也不容忽视。Java1.13扁平化对许多指令以及指令的相关内容作出了很多重大改变,比如先前我们遇到的execute指令,就是一个鲜明的例子。

  在扁平化中,首当其冲的就是数据值的消失。由于数据值的消失,很多id都被拆分了。比如『灰色床』,它在1.12.2是被统一到『床』(bed)里,作为数据值为7的床。而在扁平化后,『床』被拆分,『灰色床』就有了自己的id:gray_bed。当然,还有少数id被合并。比如Java1.12.2的『水』(water)和『流动的水』(flowing_water),合并之后(1.13)统一成了:水(water)。

  也有些并没有被拆分或者是合并,而是被『重命名』了,比如『甘蔗』在Java1.12.2的id是『reeds』,到了1.13就变成了『sugar_cane』;岩浆块在1.12.2叫做『magma』,扁平化之后就变成了『magma_block』。

  不只是这些方块、物品的id被改变,实体的id也被改变了,只不过比较少,可以全列出来:

  经验球

  1.12.2——xbr /_orb

  1.13——exbr /erience_orb

  附魔之瓶

  1.12.2——xbr /_bottle

  1.13——exbr /erience_bottle

  末影之眼

  1.12.2——eye_of_ender_signal

  1.13——eye_of_ender

  末影水晶

  1.12.2——ender_crystal

  1.13——end_crystal

  烟花火箭

  1.12.2——fireworks_rocket

  1.13——firework_rocket

  命令方块矿车

  1.12.2——commandblock_minecart

  1.13——command_block_minecart

  雪傀儡

  1.12.2——snowman

  1.13——snow_golem

  铁傀儡

  1.12.2——villager_golem

  1.13——iron_golem

  唤魔者尖牙

  1.12.2——evocation_fangs

  1.13——evoker_fangs

  唤魔者

  1.12.2——evocation_illager

  1.13——evoker

  卫道士

  1.12.2——vindication_illager

  1.13——vindicator

  幻术师

  1.12.2——illusion_illager

  1.13——illusioner

  除了方块、实体、物品的命名空间ID被改变,就连生物群系(这是几乎都被重命名了)、粒子、声音、画、名字(这个并不是指id,而是它们显示出来的名字)很多也被改变,具体情况可以自己上Minecraft Wiki查阅。其中,画、粒子的id也有了命名空间(minecraft:)。而方块状态这个我们还不怎么了解的东西也做了大量的改变。

  记分板准则也有了命名空间,比如『击杀生物』这个准则:

  1.12——stat.killEntity.<实体ID>

  1.13——minecraft.killed:namesbr /ace.<实体ID>

  并且在1.13更新后,这个准则和另外一个准则(被实体击杀)所选择的实体其范围也不止能用刷怪蛋生成的实体,而是所有实体都可以用。

  NBT也有很大的改变,比如『物品通用标签』中的Damage标签,在1.12.2中的作用是存储物品的数据值,而到了1.13就被调到了tag标签下,成为了『物品的损坏值』(具体见第一百零三章)。

  命令的改变,大部分就是类似于/give的改变——数据值、方块状态和NBT与命名空间id参数的合并。受到这种影响的指令有:

  /clear

  /clone

  /fill

  /give

  /rebr /laceitem

  /setblock

  还有一些其他的小改变,本书就不列出了,想看的话就到Minecraft Wiki上自己去查『扁平化』。

  夕阳的光辉消失在远方的地平线上,银白色的方月自东方缓缓升起。一位钻套玩家疾跑在桦木林中,他手上的火把如同暗淡的星光点亮了前进的道路。朝前望去,在无数灰白方柱的掩映下,一座由橡木制成的房子缓缓出现,房子上的火把似乎有着无穷的魔力,吸引着这名玩家不断靠近。

  咔嚓一声,房子的橡木门被打开。房子内也有一位戴着钻套的玩家。听到房门打开的声音,他的目光从工作台上移开,看向了那位从遥远的主城跑过来的玩家——张三。

  那位叫做张三的玩家率先发了一条消息:『嘿李四,你知道吗,我搞到了腐竹箱子里的一把2147483647级锋利的下界合金剑!我们要发财了!』

  『???』

  『你怎么偷的?那里可是有出生点保护的啊!』

  『额这个其实并不是我偷的,是一个管理员偷的。告诉你,这把剑可是我花了100多大洋弄到的』

  『那还等什么啊?赶紧趁服务器没其他人去刷啊!』

  『你确定这把剑附魔的是2147483647级的锋利?』一位叫做王五的玩家插嘴到。

  『千真万确』张三把那把剑丢了出来。

  『?』

  『老子昨天听别人说这附魔等级最高也才32767啊?这腐竹是开挂了吗?!』

  『好像腐竹开挂挺正常的啊』李四打趣到。

  『等等』张三不知为何突然紧张了起来,捡起了那把剑。

  『刚刚腐竹在群里说要上线!赶紧撤!』

  →张三退出了游戏

  →王五退出了游戏

  →李四推出了游戏

  ......

  →[超级管理]一只可爱的猫加入了游戏

  →[服主]某某不是女装大佬加入了游戏

目录
设置
手机
书架
书页
评论