nbt что это майнкрафт
[Гайд] Изучаем структуру NBT с нуля
Итак, давайте определимся с тем, что-же такое структура NBT. Упрощённое определение находится ниже.
NBT параметры могут быть как обязательными, так и опциональными. Все они нужны для того, что-бы управлять теми, или иными объектами. Например, с их помощью можно выдавать мобам различные эффекты, броню, и прочее.
NBT код, с версии 1.7, может быть изменён непосредственно в игре, что значительно упрощает работу создателей карт, так как до этого изменить дополнительные параметры было возможно только используя специальные дополнения.
Итак, теперь давайте разберёмся с символами, которые нам потребуются. Фигурные скобки (< и >) потребуются нам в самом начале. Например: /summon Zombie <var:1>. Также фигурные скобки нужны, если какой-либо объект в массиве может иметь дополнительные параметры (Например: Параметры брони моба, /summon Zombie
Список всех возможных параметров для тех, или иных объектов можно найти здесь. Они не переведены на русский язык. Поэтому их придётся переводить самому.
Формат NBT
Формат NBT (от англ. Named Binary Tag — «именованный двоичный тег») используется Minecraft в различных файлах для хранения данных. Формат описан Нотчем в очень краткой спецификации. Формат разработан для хранения данных в структуре-дереве, состоящей из различных тегов. У каждого тега есть идентификатор и название. Оригинальная известная версия NBT, 19132, была введена в Beta 1.3, и с тех пор была обновлена до 19133 вместе с Anvil; в этом обновлении был добавлен тег для массива целочисленных переменных. Формат NBT был ещё в Indev и использовал теги с 0 по 10.
Содержание
Определение тега [ ]
Тег — отдельный элемент дерева данных. Первый байт в теге — это тип тега (также называемый идентификатором или ID), затем 2 байта хранят длину названия, затем название в виде строки в формате UTF-8 (следует отметить, что TAG_End не имеет названия и не включает дополнительные 2 байта; предполагается, что название пустое). Названия тегов могут содержать пробелы, хотя сам Minecraft не имеет таких тегов. Наконец, следующие байты — содержимое тега, зависящее от типа тега. Таблица ниже описывает 12 известных тегов в версии NBT 19133:
Списки и составные теги могут быть вложены. Следует отметить, что в списке списков подсписки могут иметь разные типы элементов.
Формат файлов [ ]
Использование в Minecraft [ ]
Использование формата NBT в Minecraft местами является странным. В некоторых случаях пустые списки могут быть представлены списками байтов (или тегов End в более новых версиях Minecraft), а не списками правильного типа. К тому же, каждый корневой тег имеет пустое название и включает только один составной тег с самими данными и названием. Например:
Ещё одна заметная странность — это то, что, хотя оригинальная спецификация Нотча допускает пробелы в названиях тегов и приведённый в ней пример использует это, в Minecraft нет файлов с пробелами в тегах. Также использование прописных букв в названиях тегов непостоянно: где-то с прописной буквы пишется каждое слово, где-то — каждое, кроме первого, а где-то используются только строчные буквы.
Область применения [ ]
Программное обеспечение [ ]
Mojang предоставила экземпляры классов Java для работы с NBT, предназначенные для использования разработчиками, как часть исходного кода для преобразователя McRegion → Anvil. Помимо этого, сообщество разработало программы для просмотра и изменения сжатых и несжатых файлов NBT, например, NBTExplorer и NBT2YAML (все вышеприведённые программы поддерживают последние версии NBT).
Java Edition
Формат файлов Minecraft (NBT)
Формат файлов Minecraft или NBT (Named Binary Tags) — формат хранения файлов игрового мира, который был разработан Нотчем и использует расширение .mclevel. Основой для него является формат NBT.
Это формат файлов использовался начиная из версии indev 0.31.
Хотя для хранения уровней в Alpha и Infdev используются NBT-файлы, формат хранения данных у них все равно разный.
Чтобы прочитать больше информации про формат бесконечной карты, смотрите Alpha (формат карты).
Содержание
Блоки
Массив данных в этом формате используется для определения типов блоков, которые размещены на карте. Число байтов в массиве может быть рассчитано путем умножения размеров трёхмерной карты. Координата Y выступает в качестве вертикального показателя, а не Z, как принято в базовой трёхмерной системе координат. Для значений Hex смотрите нумерация данных.
Чтобы получит доступ к конкретному блоку из массива данных про XYZ координаты, используйте следующую формулу:
Показатель = x + (y * высота + z) * ширина
Данные
Массив данных также используется для эмуляции освещения, а также для хранения другой дополнительной информации относительно блоков. Первые 4 бита содержат дополнительную информацию про блоки и остальные 4 для освещения.
Дополнительные данные используют следующие блоки:
Грядка
0x0 значит сухое состояние, 0x1 указывает на то, что грядка увлажненная. Показатель увлажнения зависит от того, насколько далеко грядка расположена от воды.
Семена
Семена вырастают начиная из значения 0x0 и заканчивая 0x7.
Факела
Факелы используют дополнительные данные для определения их положения.
0x0 значит, что факел установлен вертикально на горизонтальную поверхность. Значения от 0x1 до 0x4 указывают на то, что факел «прилеплен» к одной из вертикальных граней блока.
Освещение
Существует 16 уровней света для блоков от 0x0 (полностью тёмный) до 0xF (максимально светлый).
Формат файлов Minecraft (NBT)
Формат файлов Minecraft или NBT (Named Binary Tags) — формат хранения файлов игрового мира, который был разработан Нотчем и использует расширение .mclevel. Основой для него является формат NBT.
Это формат файлов использовался начиная из версии indev 0.31.
Хотя для хранения уровней в Alpha и Infdev используются NBT-файлы, формат хранения данных у них все равно разный.
Чтобы прочитать больше информации про формат бесконечной карты, смотрите Alpha (формат карты).
Содержание
Блоки [ ]
Массив данных в этом формате используется для определения типов блоков, которые размещены на карте. Число байтов в массиве может быть рассчитано путем умножения размеров трёхмерной карты. Координата Y выступает в качестве вертикального показателя, а не Z, как принято в базовой трёхмерной системе координат. Для значений Hex смотрите нумерация данных.
Чтобы получит доступ к конкретному блоку из массива данных про XYZ координаты, используйте следующую формулу:
Показатель = x + (y * высота + z) * ширина
Данные [ ]
Массив данных также используется для эмуляции освещения, а также для хранения другой дополнительной информации относительно блоков. Первые 4 бита содержат дополнительную информацию про блоки и остальные 4 для освещения.
Дополнительные данные используют следующие блоки:
Грядка [ ]
0x0 значит сухое состояние, 0x1 указывает на то, что грядка увлажненная. Показатель увлажнения зависит от того, насколько далеко грядка расположена от воды.
Семена [ ]
Семена вырастают начиная из значения 0x0 и заканчивая 0x7.
Факела [ ]
Факелы используют дополнительные данные для определения их положения.
0x0 значит, что факел установлен вертикально на горизонтальную поверхность. Значения от 0x1 до 0x4 указывают на то, что факел «прилеплен» к одной из вертикальных граней блока.
Освещение [ ]
Существует 16 уровней света для блоков от 0x0 (полностью тёмный) до 0xF (максимально светлый).
Формат NBT
Формат NBT (от англ. Named Binary Tag — «именованный двоичный тег») используется Minecraft в различных файлах для хранения данных. Формат описан Нотчем в очень краткой спецификации. Формат разработан для хранения данных в структуре-дереве, состоящей из различных тегов. У каждого тега есть идентификатор и название. Оригинальная известная версия NBT, 19132, была введена в Beta 1.3, и с тех пор была обновлена до 19133 вместе с Anvil; в этом обновлении был добавлен тег для массива целочисленных переменных. Формат NBT был ещё в Indev и использовал теги с 0 по 10.
Содержание
Определение тега
Тег — отдельный элемент дерева данных. Первый байт в теге — это тип тега (также называемый идентификатором или ID), затем 2 байта хранят длину названия, затем название в виде строки в формате UTF-8 (следует отметить, что TAG_End не имеет названия и не включает дополнительные 2 байта; предполагается, что название пустое). Названия тегов могут содержать пробелы, хотя сам Minecraft не имеет таких тегов. Наконец, следующие байты — содержимое тега, зависящее от типа тега. Таблица ниже описывает 12 известных тегов в версии NBT 19133:
Формат файлов
Использование в Minecraft
Использование формата NBT в Minecraft местами является странным. В некоторых случаях пустые списки могут быть представлены списками байтов (или тегов End в более новых версиях Minecraft), а не списками правильного типа. К тому же, каждый корневой тег имеет пустое название и включает только один составной тег с самими данными и названием. Например:
Ещё одна заметная странность — это то, что, хотя оригинальная спецификация Нотча допускает пробелы в названиях тегов и приведённый в ней пример использует это, в Minecraft нет файлов с пробелами в тегах. Также использование прописных букв в названиях тегов непостоянно: где-то с прописной буквы пишется каждое слово, где-то — каждое, кроме первого, а где-то используются только строчные буквы.
Область применения
Программное обеспечение
Mojang предоставила экземпляры классов Java для работы с NBT, предназначенные для использования разработчиками, как часть исходного кода для преобразователя McRegion → Anvil. Помимо этого, сообщество разработало программы для просмотра и изменения сжатых и несжатых файлов NBT, например, NBTExplorer и NBT2YAML (все вышеприведённые программы поддерживают последние версии NBT).
Java Edition