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

第一百零三章 《关于工具耐久的这档事》

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

  (此章节已于2022年8月5日进行大修改)

  众所周知,在基岩版和Java1.13以下版本,如果你更改一个有耐久物品的数据值,改成1以上,你就会发现,数值越大,这个物品的耐久度就越低。当数据值大于物品耐久度的时候,游戏仍然会更改成功,只不过这个物品有个缺点:

  这是一次性物品(当然对于有些地图作者来说是优点)

  比如下面的指令:

  /give @s diamond_shovel 1 9999

  由于9999的数据值已经远超钻石锹的1561点耐久度,因此上面的指令将会给你一把一用就坏的钻石锹。

  在基岩版和Java1.13以下版本,你可以通过上述方法快速获取到具有指定耐久值的工具。但是,对于Java1.13及以上版本,我们该怎么办?

  Mojang给出的答案是:用NBT

  而Mojang给出的NBT标签是『Damage』,是一个值为Int整型的标签,中文翻译为『损坏值』。这东西的用法和我们拿数据值来指定物品耐久度一样,比如:

  /give @s diamond_sword{Damage:20} 1

  你就会获得一个损坏值为20的钻石剑,也就是耐久度为1541点的钻石剑(满值为1561点)。

  这就是在Java1.13及以上版本获得具有指定耐久度物品的方法。但如果我们要的是『永远也不会损坏』的效果,那该怎么办?用/rebr /laceitem或/item一直修改Damage为0吗?

  不需要这么麻烦,因为Mojang也给出了一个NBT标签:Unbreakable(无法破坏的)

  Unbreakable标签的值是一个布尔值,默认情况下它为0,也就是false(关闭)。你可以手动改为1变成true(开启)。当Unbreakable标签的值为1,也就是true(开启)时,该物品就会具有一个『无法损坏』的属性,也就达成了我们想要的效果。

  举个例子:

  /give @s diamond_sword 1 0 {Unbreakable:1}——Java1.13以下版本

  /give @s diamond_sword{Unbreakable:1} 1 ——Java1.13及以上版本

  这样子,你就拥有一个耐久度为∞的钻石剑了!

  附录:本章相关历史

  Java版

  1.7.2——加入了Unbreakable标签

  1.13——移除了数据值,Damage标签被移到物品tag标签下

  (把Unbreakable和Damage都写上会发生什么?)

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