что такое nbt в майнкрафт
[Гайд] Изучаем структуру NBT с нуля
Итак, давайте определимся с тем, что-же такое структура NBT. Упрощённое определение находится ниже.
NBT параметры могут быть как обязательными, так и опциональными. Все они нужны для того, что-бы управлять теми, или иными объектами. Например, с их помощью можно выдавать мобам различные эффекты, броню, и прочее.
NBT код, с версии 1.7, может быть изменён непосредственно в игре, что значительно упрощает работу создателей карт, так как до этого изменить дополнительные параметры было возможно только используя специальные дополнения.
Итак, теперь давайте разберёмся с символами, которые нам потребуются. Фигурные скобки (< и >) потребуются нам в самом начале. Например: /summon Zombie <var:1>. Также фигурные скобки нужны, если какой-либо объект в массиве может иметь дополнительные параметры (Например: Параметры брони моба, /summon Zombie
Список всех возможных параметров для тех, или иных объектов можно найти здесь. Они не переведены на русский язык. Поэтому их придётся переводить самому.
[Гайд] Разбираем NBT теги: Предметы и транспорт
Предметы:
Count: Количество предметов.
Slot: Слот, в который будет помещён предмет.
Damage: Дополнительный параметр предмета. Например: Цвет шерсти.
id: ID предмета.
tag (Массив): NBT параметры вызываемого объекта.
Обычная вагонетка: Удалено в версии 13w02a.
Вагонетка с сундуком или воронкой:
Items (Массив): Предметы, которые содержатся в контейнерах вагонетки. О том, как работать с предметами было написано выше.
Вагонетка с печкой:
PushX: Сила толчка по оси X.
PushZ: Сила толчка по оси Z.
Fuel: Количество тиков до того момента, после которого в печке закончится топливо.
Вагонетка с воронкой:
TransferCooldown: Количество тиков до того момента, после которого в воронку поступит следующий предмет.
Вагонетка со спавнером: Параметры спавнера. О том, как с ними работать, будет написано в одной из следующих статей.
Вагонетка с командным блоком:
Command: Команда, прописанная в командном блоке.
SuccessCount: Сила сигнала, получаемая компаратором в результате выполнения команды.
LastOutput: Информация, выводимая при выполнении команды в специальное поле командного блока.
TrackOutput: Неизвестно.
[Гайд] Разбираем NBT теги: Блоковые сущности
Все блоковые сущности:
id: ID блоковой сущности
x: Расположение сущности по оси x
y: Расположение сущности по оси y
z: Расположение сущности по оси z
Сундук:
CustomName: Название сундука
Items (Массив): Предметы, помещённые в сундук
Печь:
CustomName: Название печи
BurnTime: Количество тиков до того момента, после которого в печке закончится топливо (Уголь, дерево)
CookTime: Количество тиков до того момента, после которого в печке приготовится предмет
Items (Массив): Предметы, помещённые в печь
Варочная стойка:
CustomName: Название стойки
BrewTime: Количество тиков, которые понадобились для текущей варки
Items (Массив): Предметы, помещённые в стойку
Воронка:
CustomName: Название воронки
TransferCooldown: Количество тиков до того момента, после которого будет передан следующий предмет
Items (Массив): Предметы, помещённые в воронку
Раздатчик и выбрасыватель:
CustomName: Название раздатчика или выбрасывателя
Items (Массив): Предметы, помещённые в раздатчик или выбрасыватель
Цветочный горшок:
Item: ID предмета, который находится в горшке
Data: Дополнительный параметр блока, который находится в горшке
Маяк:
Levels: Количество уровней блоков под маяком
Primary: Базовый эффект
Secondary: Дополнительный эффект
Проигрыватель:
Record: Выбранная запись (Пластинка)
RecordItem: Предмет в проигрывателе
Компаратор:
OutputSignal: Сила сигнала, выдаваемого компаратором
Командный блок:
CustomName: Название командного блока
Command: Команда, прописанная в командном блоке
LastOutput: Строка состояния в командном блоке
SuccessCount: Мощность выводимого сигнала
TrackOutput: Не используется
Табличка:
Text1: Текст, написанный на первой строчке
Text2: Текст, написанный на второй строчке
Text3: Текст, написанный на третьей строчке
Text4: Текст, написанный на четвёртой строчке
Голова:
SkullType: Тип головы
Rot: Угол поворота
ExtraType: Ник игрока, чья голова надета на голов
Спаунер:
EntiyId: ID выбранной сущности
SpawnCount: Количество мобов, создающихся за раз
SpawnRange: Радиус, в котором создаются сущности
Delay: Количество тиков до того момента, после которого спавнер сработает вновь
MinSpawnDelay: Минимальное количество задержки
MaxSpawnDelay: Максимальное количество задержки
MaxNearbyEntities: Максимальное количество сущностей, которые могут находиться рядом со спавнером
RequiredPlayerRange: Радиус, в котором игрок активирует спавнер
SpawnData: Данные, копируемые в следующую сущность
SpawnPotentials (Массив): Список возможных сущностей для создания
—Type: Замена EntiyId
—Weight: Весовой шанс рождения
—Properties: Потенциально создаваемый объект
Minecraft Wiki
Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.
Формат файлов 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 Wiki
Из-за новой политики Microsoft в отношении сторонних ресурсов, Minecraft Wiki больше не является официальной. В связи с этим были внесены некоторые изменения, в том числе и обновлён логотип вики-проекта. Подробности на нашем Discord-сервере.
Формат 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