第一百零三章 《關(guān)于工具耐久的這檔事》
?。ù苏鹿?jié)已于2022年8月5日進(jìn)行大修改)
眾所周知,在基巖版和Java1.13以下版本,如果你更改一個(gè)有耐久物品的數(shù)據(jù)值,改成1以上,你就會(huì)發(fā)現(xiàn),數(shù)值越大,這個(gè)物品的耐久度就越低。當(dāng)數(shù)據(jù)值大于物品耐久度的時(shí)候,游戲仍然會(huì)更改成功,只不過這個(gè)物品有個(gè)缺點(diǎn):
這是一次性物品(當(dāng)然對(duì)于有些地圖作者來說是優(yōu)點(diǎn))
比如下面的指令:
/give @s diamond_shovel 1 9999
由于9999的數(shù)據(jù)值已經(jīng)遠(yuǎn)超鉆石鍬的1561點(diǎn)耐久度,因此上面的指令將會(huì)給你一把一用就壞的鉆石鍬。
在基巖版和Java1.13以下版本,你可以通過上述方法快速獲取到具有指定耐久值的工具。但是,對(duì)于Java1.13及以上版本,我們該怎么辦?
Mojang給出的答案是:用NBT
而Mojang給出的NBT標(biāo)簽是『Damage』,是一個(gè)值為Int整型的標(biāo)簽,中文翻譯為『損壞值』。這東西的用法和我們拿數(shù)據(jù)值來指定物品耐久度一樣,比如:
/give @s diamond_sword{Damage:20} 1
你就會(huì)獲得一個(gè)損壞值為20的鉆石劍,也就是耐久度為1541點(diǎn)的鉆石劍(滿值為1561點(diǎn))。
這就是在Java1.13及以上版本獲得具有指定耐久度物品的方法。但如果我們要的是『永遠(yuǎn)也不會(huì)損壞』的效果,那該怎么辦?用/replaceitem或/item一直修改Damage為0嗎?
不需要這么麻煩,因?yàn)镸ojang也給出了一個(gè)NBT標(biāo)簽:Unbreakable(無法破壞的)
Unbreakable標(biāo)簽的值是一個(gè)布爾值,默認(rèn)情況下它為0,也就是false(關(guān)閉)。你可以手動(dòng)改為1變成true(開啟)。當(dāng)Unbreakable標(biāo)簽的值為1,也就是true(開啟)時(shí),該物品就會(huì)具有一個(gè)『無法損壞』的屬性,也就達(dá)成了我們想要的效果。
舉個(gè)例子:
/give @s diamond_sword 1 0 {Unbreakable:1}——Java1.13以下版本
/give @s diamond_sword{Unbreakable:1} 1 ——Java1.13及以上版本
這樣子,你就擁有一個(gè)耐久度為∞的鉆石劍了!
附錄:本章相關(guān)歷史
Java版
1.7.2——加入了Unbreakable標(biāo)簽
1.13——移除了數(shù)據(jù)值,Damage標(biāo)簽被移到物品tag標(biāo)簽下
?。ò裊nbreakable和Damage都寫上會(huì)發(fā)生什么?)