(个人觉得还是直接写NBT好,所以不用标签了)
在正式开始NBT前,我们需要解决一些问题:/give格式
你可能在第八章的时候已经记住了这个JAVA版的/give格式(基岩版没问题):
/give 〈目标选择器〉〈物品ID〉〈数量〉〈数据值〉〈NBT〉
你一定认为这是对的格式是不是?
但如果你在版本及以上版本使用第五十八章的附魔指令:
/give s apple 1 0 {ench:[{lvl:32767,id:16}]}
(给予自己一个锋利32767级的苹果)
你就会提出一个问题:
哎这指令不对呀。
这很正常。
是什么更新?水域更新。
实际上它还有一个更新:指令更新。
如你所见,添加了tag,更改了execute,删除了数据值,反正用一个词总结就是:
大翻新!
而我们的give,从版本被添加到,基本没啥大更新。于是Mojang就盯上了give,然后上面这条指令,如你所见,没用了。
那么问题来了:Mojang在版本给give更新了个啥格式呢?
比较一下你就知道了:
版本以前——/give 〈目标选择器〉〈物品ID〉〈数量〉〈数据值〉〈NBT〉
版本以后——/give 〈目标选择器〉〈物品ID〉〈数量〉
你肯定很气愤:为什么把NBT删了?
其实没删,NBT还在,只不过和物品ID融合在一起了。
也就是说,版本以后,上面这条指令就要变成:
/give s apple{ench:[{lvl:32767,id:“sharpness“}]} 1
NBT跑数量前面去了。
其实这样子更合理一些,因为NBT是物品的NBT,过了好几个版本回回家也是可以理解的......
但如果你去运行这条指令,你会发现:你获得的只是一个普通的钻石剑。
为什么呢?其实Mojang还对NBT进行了修改。
然后,缩写就被Mojang改成了全称。
没错,ench是缩写,那么它的全称又是什么呢?
Enchantments(注意大小写)
没错,ench是缩写,是enchant的缩写,但enchant还是缩写,真正的全称是Enchantments(而且还要注意大小写我靠)。
上面说到的指令大翻新,其实更准确的说法也就是官方的说法叫做:
Java版扁平化
简称扁平化。
在扁平化中,首当其冲的就是数据值的消失。由于数据值的消失,很多id都被拆分了,比如“灰色床”,其在是被统一到“床”(bed)里,其在床的数据值为7。而在扁平化后,“床”被拆分了,“灰色床”就有了自己的id:gray_bed。
而有些id却合并了,只不过这部分较少。比如的“水”(water)和“流动的水”(flowing_water),合并之后统一成了:水(water)
也有些并没有被拆分或者是合并,而是被“重命名”了,比如“甘蔗”在其id是“reeds”,到了就变成了“sugar_cane”;岩浆块在叫做“magma”,扁平化之后就变成了“magma_block”。
不只是这些方块、物品的id被改变了,实体的id也被改变了,只不过比较少,可以全列出来:
经验球
——xp_o
——experience_o
附魔之瓶
——xp_bottle
——experience_bottle
末影之眼
——eye_of_ender_signal
——eye_of_ende
末影水晶
——ender_crystal
——end_crystal
烟花火箭
——fireworks_rocket
——firework_rocket
命令方块矿车
——mandblock_minecart
——mand_block_minecart
雪傀儡
——snowman
——snow_golem
铁傀儡
——villager_golem
——iron_golem
唤魔者尖牙
——evocation_fangs
——evoker_fangs
唤魔者
——evocation_illage
——evoke
卫道士
——vindication_illage
——vindicato
幻术师
——illusion_illage
——illusione
除了方块、实体、物品的id被改变,就连生物群系(这是几乎都被重命名了)、粒子、声音、画、名字(这个并不是指id,而是它们显示出来的名字)很多也都被改变了,具体内容自己上Minecraft Wiki看吧。
其中,画、粒子的id也有了命名空间(minecraft:)。而方块状态这个我们并不常听见的东西也做了大量的改变。
我们的记分板准则也有了命名空间,比如“击杀生物”这个准则:
——(实体id)
——:namespace.(实体id)
而在,这个准则和另外一个准则(被实体击杀)所选择的实体其范围也不止能用刷怪蛋生成的实体了,而是所有实体都可以用了。
而我们的NBT也有很大的改变,比如物品的通用NBT中的Damage,在中的作用是指数据值,而到了就被调到了tag下,成为了“物品的损坏值”(具体见第一百零三章)。
上面讲到的ench的重命名也是个改变。
而命令的改变,大部分就是类似于上面/give的改变——数据值以及NBT格式与id的合并。受到这种影响的指令有:
/clea
/clone
/fill
/give
/replaceitem
/setblock
还有两个指令并不是这种影响,其中一个就是大家所熟悉的/execute,另一个就是article(实际上这只是把“参数”改成了“粒子名称”而已.....)。
还有一些其他的小改变,具体作者就不在这里讲了,想看的话就到Minecraft Wiki上吧。
(张三(高兴):嘿李四,我获得了腐竹箱子里的一把2147483647级锋利的下界合金剑!我们要发财了!)
(李四(震惊):我靠你怎么偷的?那里可是有出生点保护的啊!)
(张三:额这个其实并不是我偷的,是一个管理员偷的。告诉你,这把剑可是我花了100多大洋弄到的)
(李四:那还等什么啊?赶紧趁服务器没其他人去刷啊!)
(王五(惊讶):张三兄,你确定这把剑附魔的是2147483647级的锋利?)
(张三:千真万确)
(王五:这不对呀......老子昨天听别人说这附魔等级最高也才32767啊?这腐竹是开挂了吗?!)
(张三&李四:???)
(赵六(紧张):快点!刚刚腐竹在QQ群说要上线了!赶紧撤!)
([赵六退出了游戏])
([李四推出了游戏])
([张三退出了游戏])
([王五退出了游戏])
([一只可爱的管理加入了游戏])
([腐竹加入了游戏])
.......
阅读Minecraft指令手册最新章节 请关注热血小说网(www.oaksh.cn)