UU看書

第五十八章 使用NBT來自定義附魔

天才一秒記住【UU看書】地址:www.uukanshu.co

在前一章,我們瞭解到在Java版也可以使用NBT來自定義附魔。那麼具體該如何自定義呢?

先讓我們來看看上一章那些擁有不合常理等級附魔的玩家,他們給出的指令如下:

givepxxxxxenchidxx,lvlxx,idxx,lvlxx

你應該還記得Java113更新前的give格式吧:

givelt目標選擇器gtlt物品id:字串gtlt物品數量:整數gtlt物品資料值:整數gtNBT標籤

對比一下,你會發現這些玩家給出的指令格式是完全正確的,因此我們只需要關注NBT部分。

在第五十四章中,我們已經初步瞭解了NBT的樣子。讓我們來試一試你能不能看懂這個NBT:

enchidxx,lvlxx,idxx,lvlxx

很明顯,這個NBT標籤只有一個ench標籤,這個標籤的值型別是列表,而且是由多個複合標籤組成的列表。而那些複合標籤內的兩個標籤id和lvl的值型別是個整型數。

格式看懂了,但我們還不知道怎麼用,如何用。其實用起來很簡單,如果你會一點英文的話那就更簡單了。

ench這個單詞,實則是英文單詞enchantmentɪntʃæntmənt(魔咒)的縮寫,再聯絡它的值是個列表,也就不難理解ench標籤的作用:儲存物品的附魔資訊。

在Minecraft中,一個魔咒一定擁有有兩個資訊:魔咒ID和魔咒等級。對應到上面的NBT中,每個魔咒就是列表內的複合標籤,魔咒ID就是複合標籤內的id標籤,魔咒等級就是複合標籤內的lvl標籤。

比如enchid34,lvl10,id16,lvl8,在Java版就代表耐久X和鋒利ⅤIII兩個魔咒(注:Java版和基岩版的魔咒ID並不一樣,這裡是Java版的魔咒ID)。也就是說,當你執行givesdiamond10enchid34,lvl10,id16,lvl8時,你會獲得一個附魔了耐久X和鋒利ⅤIII的鑽石。

標籤lvl的值的上限是32767,這就是為什麼32767級的附魔這麼出名。

現在你會用了吧?但請注意,以上的所有內容都是基於Java113更新前的版本和基岩版,在Java113更新後,情況就不一樣了。

在Java113更新後的版本中,自定義附魔的NBT變成了:

Enchantmentsid“xx“,lvlxx,id“xx“,lvlxx

不難發現,附魔用的NBT標籤有兩個大修改:

①標籤ench的名稱變成了全稱Enchantment的複數Enchantments

②標籤id的值型別變成了字串,填的是魔咒的英文ID

除了這兩個顯而易見的大修改外,還有一個細微的小修改:

lvl的值型別從短整形(Short)變成了整形(Int)。

這是什麼意思呢?簡單來說,就是lvl的值上限從32767提高到了2147483647!

沒錯,在Java113更新後,你可以附魔超過32767級的魔咒!可惜這麼令人震驚的事情卻未能改變目前大多數玩家的潛意識,很多玩家仍然認為32767級就是最厲害的。

Java113更新過後,如果你要獲得一把2147483647級鋒利的劍,你就需要執行:

givesdiamondswordEnchantmentsid“sharpness“,lvl2147483647

注意,這條指令僅適用於Java113117,這是為什麼呢?

因為在Java1171,Mojang做了一個更改:lvl的值重新被改回Short短整型,且限定製值範圍到0255之間。

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

這太糟糕了!但255級好像也完全夠用就是了。

本章到此為止。

如遇章節錯誤,請點選報錯(無需登陸)

新書推薦

詭異降臨,我能無限回檔 國象小子 死靈法師能有什麼壞心思 天賦拉滿的我,下次還填非常簡單 網遊之對決巔峰 江湖籃球 我的世界之天譚歷險記