複製鏈接
請複製以下鏈接發送給好友

NBT

(二進制命名標籤)

鎖定
我的世界二進制命名標籤(Name Binary Tag),NBT格式為Minecraft中用於向文件中存儲數據的一種存儲格式。NBT格式以樹形結構並配以許多標籤的形式存儲數據。所有的標籤都有一個獨立的ID和名稱。最初的版本如Minecraft Beta1.3中所示為19132個標籤,但是隨着鐵砧的引入,增加了一個整形指針變量,標籤數量增加至19133個。在NBT格式最初在Minecraft Indev的版本中只有0到10這11個標籤可用。
中文名
二進制命名標籤
外文名
Name Binary Tag

NBTNBT的作用

NBT在物品中就有,是數據標籤的一種,通過修改物品的NBT可以自定義物品的傷害、耐久等。

NBTNBT的定義

每一個標籤在數據樹中都是一個獨立的部分。標籤的第一個字節為標籤類型(ID),其後兩字節為存儲名稱的長度,之後以UTF-8格式的字符串的方式存儲標籤。儘管在默認的情況下Minecraft本身並不會存儲帶有空格的名稱,但是標籤名稱可以包含空格。最後,取決於標籤的類型,之後的字節為該標籤的輔助信息。下表所示為在19133標籤版本中二進制命名標籤格式中所有12個已知的標籤類型:
ID
圖標
標籤類型
輔助信息
描述
0
-
TAG_End
用於標記複合標籤的結尾。本標籤無任何名稱所以只有一個零字節。
1
-
TAG_Byte
1字節 / 8位,有正負
有正負的整值數據類型,通常用於布爾表達式。
2
-
TAG_Short
2字節 / 16位,有正負,字節序:BE
有正負的整值數據類型。
3
-
TAG_Int
4 字節 / 32 位,有正負,字節序:BE
有正負的整值數據類型。
4
-
TAG_Long
8 字節 / 64 位,有正負,字節序:BE
有正負的整值數據類型。
5
-
TAG_Float
4 字節 / 32 位,有正負,字節序:BE,IEEE 754-2008標準,binary32。
有正負的浮點數據類型。
6
-
TAG_Double
8 字節 / 64 位,有正負,字節序:BE,IEEE 754-2008標準,binary64。
有正負的浮點數據類型。
7
-
TAG_Byte_Array
TAG_Int的輔助信息大小以及 TAG_Byte的輔助信息大小
數組。
8
-
TAG_String
前2個字節(TAG_Short)存儲字符串字符的個數(字符串的長度length).然後存儲UTF-8標準的字符串,沒有'\0'結束符,只是以單純的字符序列的形式存儲.
一個採用UTF-8標準的字符串,有尺寸限制,也就是説會以空結尾。
9
-
TAG_List
輔助信息的第1個字節(TAG_Byte)存儲列表標籤類型的ID,接下來的4個字節(TAG_Int)存儲列表的size,接下來的字節將存儲size個列表標籤類型的輔助信息.假如第一個字節是0x08,id是8,對應的標籤是TAG_String,如果size是0x00000004,接下來將會存儲4個TAG_String標籤的輔助信息.列表標籤(既然都説了是列表)存儲的內容都是相同類型的標籤,所以只在第一個字節表明標籤類型.
一系列沒有重複標籤ID和標籤名稱的輔助信息。
10
-
TAG_Compound
標籤的完整形式,需要附加TAG_End
一系列完整的標籤信息,包括ID、名稱以及輔助信息等。任意兩個標籤都不會有相同的名稱。
11
-
TAG_Int_Array
輔助信息前4個字節(TAG_Int)用於存儲數組的大小size,緊接size*4 字節(TAG_Int)的數組數據.佔用存儲空間: 4+4*size Byte
存儲TAG_Int的輔助信息的數組。
複合標籤的列表常以嵌套遞歸的方式出現。另外還需注意,在一個包含List的List中,每個List可以包含不同類型的數據。