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

第五十八章 使用NBT来自定义附魔

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

  在前一章,我们了解到在Java版也可以使用NBT来自定义附魔。那么具体该如何自定义呢?

  先让我们来看看上一章那些拥有不合常理等级附魔的玩家,他们给出的指令如下:

  /give @br / xxx x x {ench:[{id:xx,lvl:xx},{id:xx,lvl:xx}]}

  你应该还记得Java1.13更新前的/give格式吧:

  /give <目标选择器><物品id:字符串>[<物品数量:整数>][<物品数据值:整数>][NBT标签]

  对比一下,你会发现这些玩家给出的指令格式是完全正确的,因此我们只需要关注NBT部分。

  在第五十四章中,我们已经初步了解了NBT的样子。让我们来试一试你能不能看懂这个NBT:

  {ench:[{id:xx,lvl:xx},{id:xx,lvl:xx}]}

  很明显,这个NBT标签只有一个ench标签,这个标签的值类型是列表,而且是由多个复合标签组成的列表。而那些复合标签内的两个标签id和lvl的值类型是个整型数。

  格式看懂了,但我们还不知道怎么用,如何用。其实用起来很简单,如果你会一点英文的话那就更简单了。

  ench这个单词,实则是英文单词enchantment /ɪn'tʃæntmənt/(魔咒)的缩写,再联系它的值是个列表,也就不难理解ench标签的作用:储存物品的附魔信息。

  在Minecraft中,一个魔咒一定拥有有两个信息:魔咒ID和魔咒等级。对应到上面的NBT中,每个魔咒就是列表内的复合标签,魔咒ID就是复合标签内的id标签,魔咒等级就是复合标签内的lvl标签。

  比如{ench:[{id:34,lvl:10},{id:16,lvl:8}]},在Java版就代表耐久X和锋利ⅤIII两个魔咒(注:Java版和基岩版的魔咒ID并不一样,这里是Java版的魔咒ID)。也就是说,当你运行/give @s diamond 1 0 {ench:[{id:34,lvl:10},{id:16,lvl:8}]}时,你会获得一个附魔了耐久X和锋利ⅤIII的钻石。

  标签lvl的值的上限是32767,这就是为什么32767级的附魔这么出名。

  现在你会用了吧?但请注意,以上的所有内容都是基于Java1.13更新前的版本和基岩版,在Java1.13更新后,情况就不一样了。

  在Java1.13更新后的版本中,自定义附魔的NBT变成了:

  {Enchantments:[{id:“xx“,lvl:xx},{id:“xx“,lvl:xx}]}

  不难发现,附魔用的NBT标签有两个大修改:

  ①标签ench的名称变成了全称Enchantment的复数Enchantments

  ②标签id的值类型变成了字符串,填的是魔咒的英文ID

  除了这两个显而易见的大修改外,还有一个细微的小修改:

  lvl的值类型从短整形(Short)变成了整形(Int)。

  这是什么意思呢?简单来说,就是lvl的值上限从32767提高到了2147483647!

  没错,在Java1.13更新后,你可以附魔超过32767级的魔咒!可惜这么令人震惊的事情却未能改变目前大多数玩家的潜意识,很多玩家仍然认为32767级就是最厉害的。

  Java1.13更新过后,如果你要获得一把2147483647级锋利的剑,你就需要执行:

  /give @s diamond_sword{Enchantments:[{id:“sharbr /ness“,lvl:2147483647}]}

  注意,这条指令仅适用于Java1.13~1.17,这是为什么呢?

  因为在Java1.17.1,Mojang做了一个更改:lvl的值重新被改回Short短整型,且限定制值范围到0~255之间。

  也就是说,在目前的Java最新版本,自定义附魔等级的上限最高只能是255级!

  这太糟糕了!但255级好像也完全够用就是了。

  本章到此为止。

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