Что значит тег данных в майнкрафт

Новые темы на Minecraft Форуме
Тема Автор Раздел Ответов Последнее сообщение
Что в майнкрафте можно делать с ребенком? Артём124 Вопросы от новичков о Minecraft 5 Вчера 17:58
Мод Remove Mouseover Highlight [1.7.10] EvilMaster Моды Minecraft 0 Вчера 10:02
здраствуйте. стоит ли поиграть в майнкрафт? послед. -_-даня-_- Вопросы от новичков о Minecraft 5 2019-08-23 12:35
В чем смысл игры маинкрафт?) nikitosd Вопросы от новичков о Minecraft 3 2019-08-22 17:59
В чем смысл маинкрфата? h0t3wka Вопросы от новичков о Minecraft 5 2019-08-22 13:54
Как отомстить гриферу в майнкрафт на выживании? Beka Вопросы от новичков о Minecraft 5 2019-08-19 16:54

Тег — отдельный элемент дерева данных. Первый байт в теге — это тип тега (также называемый идентификатором или ID), затем 2 байта хранят длину названия, затем название в виде строки в формате UTF-8 (следует отметить, что TAG_End не имеет названия и не включает дополнительные 2 байта; предполагается, что название пустое). Названия тегов могут содержать пробелы, хотя сам Minecraft не имеет таких тегов. Наконец, следующие байты — содержимое тега, зависящее от типа тега. Таблица ниже описывает 12 известных тегов в версии NBT 19133:

ID Иконка Тип тега Содержимое Описание Ёмкость
0 TAG_End Нет. Используется для обозначения конца составных тегов. У этого тега нет названия, поэтому он всегда представлен одним байтом, равным 0. Также этот тип используется в пустых тегах списков.
1 TAG_Byte 1 байт / 8 битов, со знаком Целочисленный тип со знаком. Иногда используется для логических переменных. Весь промежуток от -(2 7 ) до (2 7 — 1)
(от -128 до 127)
2 TAG_Short 2 байта / 16 битов, со знаком, обратный порядок байтов Целочисленный тип со знаком. Весь промежуток от -(2 15 ) до (2 15 — 1)
(от -32�768 до 32�767)
3 TAG_Int 4 байта / 32 бита, со знаком, обратный порядок байтов Целочисленный тип со знаком. Весь промежуток от -(2 31 ) до (2 31 — 1)
(от -2�147�483�648 до 2�147�483�647)
4 TAG_Long 8 байт / 64 бита, со знаком, обратный порядок байтов. Целочисленный тип со знаком. Весь промежуток от -(2 63 ) до (2 63 — 1)
(от -9�223�372�036�854�775�808 до 9�223�372�036�854�775�807)
5 TAG_Float 4 байта / 32 бита, со знаком, обратный порядок байтов, IEEE 754-2008, binary32 Тип чисел с плавающей точкой со знаком. Точность меняется на протяжении числовой прямой;
см. Число одинарной точности.
6 TAG_Double 8 байт / 64 бита, со знаком, обратный порядок байтов, IEEE 754-2008, binary64 Тип чисел с плавающей точкой со знаком. Точность меняется на протяжении числовой прямой;
см. Число двойной точности.
7 TAG_Byte_Array Один TAG_Int, обозначающий размер, затем размер тегов TAG_Byte. Массив байтовых переменных. Максимальное число элементов изменяется от (2 31 — 9) до (2 31 — 1) (от 2�147�483�639 до 2�147�483�647) и зависит от текущей JVM.
8 TAG_String Один TAG_Short, обозначающий длину, затем строка в формате UTF-8 с размером длина. Строка в формате UTF-8. Она имеет размер, а не завершается нулём. 32�767 точек кода UTF-8 (см. UTF-8; наиболее распространённые символы состоят из одной точки кода.
9 TAG_List Один TAG_Byte, обозначающий тип, затем TAG_Int, обозначающий размер, затем размер тегов типа тип. Список нагрузок тегов без ID и без названий. В связи с ограничениями JVM и реализацией ArrayList, максимальный размер списка — (2 31 — 9) или 2�147�483�639. Также следует отметить, что максимальная глубина размещения списков и составных тегов равна 512.
10 TAG_Compound Полные теги, затем один тег TAG_End. Список полных тегов, включающий их типы, названия и содержимые. Все теги должны иметь различные имена. В отличие от списков, ограничения на количество тегов в составном теге нет (хотя имеется неявное ограничение в виде размера виртуальной памяти). Также следует отметить, что максимальная глубина размещения списков и составных тегов равна 512.
11 TAG_Int_Array Один TAG_Int, обозначающий размер, затем размер тегов TAG_Int. Массив тегов TAG_Int. Максимальное число элементов изменяется от (2 31 — 9) до (2 31 — 1) (от 2�147�483�639 до 2�147�483�647) и зависит от текущей JVM.

Списки и составные теги могут быть вложены. Следует отметить, что в списке списков подсписки могут иметь разные типы элементов.

Файл NBT — это сжатый GZip составной тег, включающий название и тип. Некоторые такие файлы, используемые Minecraft, не являются сжатыми GZip, хотя в большинстве случаев спецификация Нотча, предписывающая сжатие, соблюдается. В Xbox 360 издании чанки сжимаются XMemCompress, разновидностью алгоритма сжатия LZX. Заголовка, указывающего версию или какую-либо иную информацию, в файлах нет, версия указана только в файле level.dat.

Использование формата NBT в Minecraft местами является странным. В некоторых случаях пустые списки могут быть представлены списками байтов (или тегов End в более новых версиях Minecraft), а не списками правильного типа. К тому же, каждый корневой тег имеет пустое название и включает только один составной тег с самими данными и названием. Например:


  • Корневой тег для большинства структур NBT в Minecraft.

    • �Название : Единственный тег, содержащийся в корневом теге. Он имеет название и содержит сами данные.

Ещё одна заметная странность — это то, что хотя оригинальная спецификация Нотча допускает пробелы в названиях тегов, и приведённый в ней пример использует это, в Minecraft нет файлов с пробелами в тегах. Также использование прописных букв в названиях тегов непостоянно: где-то с прописной буквы пишется каждое слово, где-то — каждое, кроме первого, а где-то используются только строчные буквы.

  • level.dat хранится в сжатом формате NBT.
  • Файлы

.dat хранятся в сжатом формате NBT.

  • idcounts.dat хранится в несжатом формате NBT.
  • villages.dat хранится в сжатом формате NBT.
  • Файлы map_ .dat хранятся в сжатом формате NBT.
  • servers.dat, используется для хранения списка сохранённых серверов как несжатый формат NBT.
  • Чанки хранятся в сжатом формате NBT в файлах областей.
  • scoreboard.dat хранится в сжатом формате NBT.
  • Натуральные структуры хранятся в сжатом формате NBT.
  • Mojang предоставила экземпляры классов Java для работы с NBT, предназначенные для использования разработчиками, как часть исходного кода для преобразователя McRegion → Anvil. Помимо этого, сообщество разработало программы для просмотра и изменения сжатых и несжатых файлов NBT, например, NBTExplorer и NBT2YAML (все вышеприведённые программы поддерживают последние версии NBT).

    Тег — отдельный элемент дерева данных. Первый байт в теге — это тип тега (также называемый идентификатором или ID), затем 2 байта хранят длину названия, затем название в виде строки в формате UTF-8 (следует отметить, что TAG_End не имеет названия и не включает дополнительные 2 байта; предполагается, что название пустое). Названия тегов могут содержать пробелы, хотя сам Minecraft не имеет таких тегов. Наконец, следующие байты — содержимое тега, зависящее от типа тега. Таблица ниже описывает 12 известных тегов в версии NBT 19133:

    ID Иконка Тип тега Содержимое Описание Ёмкость
    0 TAG_End Нет. Используется для обозначения конца составных тегов. У этого тега нет названия, поэтому он всегда представлен одним байтом, равным 0. Также этот тип используется в пустых тегах списков.
    1 TAG_Byte 1 байт / 8 битов, со знаком Целочисленный тип со знаком. Иногда используется для логических переменных. Весь промежуток от -(2 7 ) до (2 7 — 1)
    (от -128 до 127)
    2 TAG_Short 2 байта / 16 битов, со знаком, обратный порядок байтов Целочисленный тип со знаком. Весь промежуток от -(2 15 ) до (2 15 — 1)
    (от -32 768 до 32 767)
    3 TAG_Int 4 байта / 32 бита, со знаком, обратный порядок байтов Целочисленный тип со знаком. Весь промежуток от -(2 31 ) до (2 31 — 1)
    (от -2 147 483 648 до 2 147 483 647)
    4 TAG_Long 8 байт / 64 бита, со знаком, обратный порядок байтов. Целочисленный тип со знаком. Весь промежуток от -(2 63 ) до (2 63 — 1)
    (от -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807)
    5 TAG_Float 4 байта / 32 бита, со знаком, обратный порядок байтов, IEEE 754-2008, binary32 Тип чисел с плавающей точкой со знаком. Точность меняется на протяжении числовой прямой;
    см. Число одинарной точности.
    6 TAG_Double 8 байт / 64 бита, со знаком, обратный порядок байтов, IEEE 754-2008, binary64 Тип чисел с плавающей точкой со знаком. Точность меняется на протяжении числовой прямой;
    см. Число двойной точности.
    7 TAG_Byte_Array Один TAG_Int, обозначающий размер, затем размер тегов TAG_Byte. Массив байтовых переменных. Максимальное число элементов изменяется от (2 31 — 9) до (2 31 — 1) (от 2 147 483 639 до 2 147 483 647) и зависит от текущей JVM.
    8 TAG_String Один TAG_Short, обозначающий длину, затем строка в формате UTF-8 с размером длина. Строка в формате UTF-8. Она имеет размер, а не завершается нулём. 32 767 точек кода UTF-8 (см. UTF-8; наиболее распространённые символы состоят из одной точки кода.
    9 TAG_List Один TAG_Byte, обозначающий тип, затем TAG_Int, обозначающий размер, затем размер тегов типа тип. Список нагрузок тегов без ID и без названий. В связи с ограничениями JVM и реализацией ArrayList, максимальный размер списка — (2 31 — 9) или 2 147 483 639. Также следует отметить, что максимальная глубина размещения списков и составных тегов равна 512.
    10 TAG_Compound Полные теги, затем один тег TAG_End. Список полных тегов, включающий их типы, названия и содержимые. Все теги должны иметь различные имена. В отличие от списков, ограничения на количество тегов в составном теге нет (хотя имеется неявное ограничение в виде размера виртуальной памяти). Также следует отметить, что максимальная глубина размещения списков и составных тегов равна 512.
    11 TAG_Int_Array Один TAG_Int, обозначающий размер, затем размер тегов TAG_Int. Массив тегов TAG_Int. Максимальное число элементов изменяется от (2 31 — 9) до (2 31 — 1) (от 2 147 483 639 до 2 147 483 647) и зависит от текущей JVM.

    Списки и составные теги могут быть вложены. Следует отметить, что в списке списков подсписки могут иметь разные типы элементов.

    Файл NBT — это сжатый GZip составной тег, включающий название и тип. Некоторые такие файлы, используемые Minecraft, не являются сжатыми GZip, хотя в большинстве случаев спецификация Нотча, предписывающая сжатие, соблюдается. В Xbox 360 издании чанки сжимаются XMemCompress, разновидностью алгоритма сжатия LZX. Заголовка, указывающего версию или какую-либо иную информацию, в файлах нет, версия указана только в файле level.dat.

    Использование формата NBT в Minecraft местами является странным. В некоторых случаях пустые списки могут быть представлены списками байтов (или тегов End в более новых версиях Minecraft), а не списками правильного типа. К тому же, каждый корневой тег имеет пустое название и включает только один составной тег с самими данными и названием. Например:

    • Корневой тег для большинства структур NBT в Minecraft.
      • Название : Единственный тег, содержащийся в корневом теге. Он имеет название и содержит сами данные.

    Ещё одна заметная странность — это то, что хотя оригинальная спецификация Нотча допускает пробелы в названиях тегов, и приведённый в ней пример использует это, в Minecraft нет файлов с пробелами в тегах. Также использование прописных букв в названиях тегов непостоянно: где-то с прописной буквы пишется каждое слово, где-то — каждое, кроме первого, а где-то используются только строчные буквы.

    • level.dat хранится в сжатом формате NBT.
    • Файлы

    .dat хранятся в сжатом формате NBT.

  • idcounts.dat хранится в несжатом формате NBT.
  • villages.dat хранится в сжатом формате NBT.
  • Файлы map_ .dat хранятся в сжатом формате NBT.
  • servers.dat, используется для хранения списка сохранённых серверов как несжатый формат NBT.
  • Чанки хранятся в сжатом формате NBT в файлах областей.
  • scoreboard.dat хранится в сжатом формате NBT.
  • Натуральные структуры хранятся в сжатом формате NBT.
  • Mojang предоставила экземпляры классов Java для работы с NBT, предназначенные для использования разработчиками, как часть исходного кода для преобразователя McRegion → Anvil. Помимо этого, сообщество разработало программы для просмотра и изменения сжатых и несжатых файлов NBT, например, NBTExplorer и NBT2YAML (все вышеприведённые программы поддерживают последние версии NBT).

    У кого есть идеи, как читать нбт предмета в инвентаре?

    Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

    У нас играют и пишут программы как новички так и опытные программисты. А самые продвинутые участники нашего коллектива даже разрабатывают собственные авторские моды и аддоны, ресурспаки, репозитории, мощнейшие библиотеки и операционные системы! Эти участники — гордость нашего проекта, которые по праву носят почетное звание Гуру!

    Регистрируйтесь прямо сейчас и присоединяйтесь к нашему дружному коллективу фанатов игры Майнкрафт, компьютерных и инженерных модов!

    1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
    Загрузка...
    Adblock
    detector