[Гайд] Изучаем структуру NBT с нуля
Итак, давайте определимся с тем, что-же такое структура NBT. Упрощённое определение находится ниже.
NBT параметры могут быть как обязательными, так и опциональными. Все они нужны для того, что-бы управлять теми, или иными объектами. Например, с их помощью можно выдавать мобам различные эффекты, броню, и прочее.
NBT код, с версии 1.7, может быть изменён непосредственно в игре, что значительно упрощает работу создателей карт, так как до этого изменить дополнительные параметры было возможно только используя специальные дополнения.
Итак, теперь давайте разберёмся с символами, которые нам потребуются. Фигурные скобки (< и >) потребуются нам в самом начале. Например: /summon Zombie <var:1>. Также фигурные скобки нужны, если какой-либо объект в массиве может иметь дополнительные параметры (Например: Параметры брони моба, /summon Zombie
Список всех возможных параметров для тех, или иных объектов можно найти здесь. Они не переведены на русский язык. Поэтому их придётся переводить самому.
NBTExplorer Minecraft — редактор NBT данных
NBTExplorer — программа для изменения параметров игрового мира Minecraft. С ее помощью пользователь может поменять практически все настройки уже сгенерированного мира, начиная от скорости бега персонажа и, заканчивая длительностью внутриигровых суток. Также возможны и более глубокие изменения, затрагивающие генерацию определенных блоков, чанков и прочего. Программа взаимодействует с NBT-данными, что позволяет регулировать любые настройки мира.
В состав программы входит вспомогательная утилита NBTUtil.exe. Она также позволяет работать с NBT-файлами, но на текущий момент ее функционал несколько урезан.
Функционал NBTExplorer
Какие типы файлов способна редактировать программа:
- стандартные файлы NBT (e.g. level.dat) несжатые файлы формата NBT; карты формата Region (*.mcr); карты формата Anvil (*.mca); чанки.
Как пользоваться
После установки надо открыть программу, затем:
После этого станет доступен интерфейс, где в виде списка будут расположены доступные папки сгенерированных миров Майкрафт.
При клике по файлу откроется древо параметров, доступных для редактирования. Во многом это напоминает работу с реестром — перед пользователем открывается целая куча параметров, отвечающих за генерацию мира. Игрок может настроить размеры, сложность, установить шансы спавна монстров, торговцев и деревень, поставить определенное время.
Чтобы изменения остались, необходимо сохранять новые параметры после каждого успешного действия. К сожалению, если это не делать, новые значения могут не сохраниться и после закрытия NBTExplorer будут возвращены изначальные настройки.
Скачать бесплатно:
Средний рейтинг / 5. Голосов:
Пока нет голосов! Будьте первым, кто оценит этот пост.
Формат 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).

Общаемся с NBT
Эта заметка возможно будет небольшой, но полезной. Главное, чем поделюсь:
• Как подключиться к NBT для до установивших в е-серию
• Как правильно отобразить кузов
И так, когда новый, симпатичный NBT появился в наших состарившихся E-шках, возникает необходимость с ним общаться, только вот NCS Expert о нем ничего не знает, как и ISTA+.
Вот какую «чудесную» картинку ISTA+ нарисовала мне после дооснащения NBT:
И здесь нет ничего удивительного. Вот перечень ошибок:
Ну да не суть. Начали с простого изменения комплектации в NCS Expert. Выбрасываем все ненужное. Много это не дало, но слегка подчистило.
Если кто-то знает, как привести это к фэншую, буду очень признателен, т.к. такое количество ошибок ведет очень долгой идентификации в ISTA+.
Ok. Теперь к NBT. Понятно, что в машине живет как бы 2 разных машины (2 разные архитектуры – E и F серии) и каждая ничего не знает о другой. Связка между ними — Retrofit-адаптер. И, соответственно, т.к. ни о каком BDC/ZGW E-серия не ведала, к NBT подключиться надо напрямую. Теоретически просто и понятно, но вот никто не опишет этот процесс досконально, а подводные камни, как выяснилось, есть.
Попытаюсь я. Дабы научиться, нужна какая-либо простенькая задачка. Я выбрал отображение записей о техническом обслуживании на экране NBT. Очень внятно этот процесс показан в видео BimmerDoc Коррекция истории сервисного обслуживания вашего БМВ. С точки зрения кодирования NBT, надо провести простейшую операцию, установив параметр SERVICE_HISTORY в activ. Что было в начале?
Ужас! Вот и поехали.
Создание FA/VO
Прежде чем подключаться к авто, необходимо провести подготовительную работу. Если бы у нас была F/G серия, мы могли бы просто прочитать VO/FA (левый верхний квадрант Read), но ничего подобного у нас нет и предварительно надо вручную создать файлик конфигурации нашего авто (без этого кодирование не запустится). Займемся. Есть статья, она на английском. Это нас не остановит.
Данные, необходимые для заполнения, я брал на сайте mdecoder.com воспользовавшись вином донора NBT, который был F16 2016 года и поимел на этом «головняк», но о нем позже.
Уф! Выдохнули. Связь восстановлена. Но уж очень не нравились мне бесцельные прибамбасы, появившиеся в NBT, да и изображения F16 не радовали глаз. Посему, разбираемся дальше.
Я решил воспользоваться конфигурацией моего прежнего F15, которую я хорошо знал, и она меня устраивала. Как выяснилось входе экспериментов, E-SYS не очень привередлив и спокойно принял к VIN от F16 все прочее от F15. На самом деле, Typschlüssel зашит в VIN авто (4-7 знаки). Однако, не все они понятны и поддерживаются E-SYS. В моем случае, я искал его для моего F15, но подстановка KT29 вываливало E-SYS в ошибку «calculate FP». Видимо, причина в калининградском происхождении. Удачей стало нахождение немецкого сайта, описывающего все Typschlüssel und Varianten для всех кузовов BMW. Вот здесь то по типу кузова и двигателя, я подобрал Typschlüssel для европейского производства (KS41), который E-SYS с удовольствием проглотил.
Ну да вернемся к составлению FA. Осталось прописать коды присутствующих опций в SALAPA (9). Я так же воспользовался данными сайта mdecoder.com, но вдумчиво, изрядно подчищая все, что могло не иметь отношения к NBT. SALAPA-Element прописываются через запятую в нижнем левом квадранте и имеют формат 3-х знаков, т.е., например, опция подогрева руля имеет вид не $248А и не S248, а просто 248.
Помимо этого, «для полноты картины», стоит прописать в E-Wort тип используемой АКБ (у меня А090 — отдельная тема) и, по желанию, в HO-Wort опции отключения гонга ремня безопасности OI11 и OI12 (Пристёгивайтесь, господа!).
Когда FA готов, записываем его. При записи он пройдет первую проверку на наличие грубых ошибок. Если все удачно, правой кнопкой на папке FA «calculate FP». Вот тут настает момент истины. Написали без ошибок, получим что-то вроде такого
Если ошибки были, E-SYS подскажет, о чем речь, включаем голову.
Все проделанные нами операции не требовали подключения к автомобилю. Теперь же пришла пора это сделать.
Подключение к NBT
Для кодирования головы, подключаемся E-SYSом через enet-шнурок. Все это у меня уже было, оставшись от обновления карт навигации на прошлом F15. Как я уже говорил, в ODBII должен быть разведен ethernet.
И так: Connect
Для Е70 выбираем Main series: F025 (не DIRECT), Connection via gateway URL
Несмотря на то, что он «ругнется»,
к машине присоединится. Почему такой IP? Отошлю к фундаментальной статье MrPerfekt. Хотя у него все описано для CIC, в NBT все так же. Здесь тоже есть нюанс, но о нем ниже. Пока же выбираем слева «Expert Mode». Нажав в правом нижнем квадранте Read (ECU), получаем
Теперь подгружаем созданный в первой части FA и активируем его.
Можем прочитать CAFD (вторая строка с зеленым кружком). Для этого правой кнопкой мыши по нему (ну или у меня два пальца по тачпад) и Read Coding Data
Отлично. Вот теперь и покодируем! Выбираем выделенную строку
и Edit FDL Открывается окно
В строке поиска набираем service и меняем значение параметра SERVISE_HISTORY на activ. Записываем и возвращаемся на страницу кодирования.
Что мы здесь можем? Есть 2 варианта, в правом нижнем квадранте:
1. Выбрать «Code»
2. Выбрать «Code FDL»
Выбор варианта 2 приведет к простому кодированию FDL, т.е. в нашем случае, запишет измененное значение SERVISE_HISTORY.
Выбор варианта 1 произведет более глобальное перекодирование NBT с учетом созданного нами FA.
Вот только, на самом деле, любой из этих вариантов закончится неудачей.
В чем же дело? А дело в том, что NBT, подключенное таким образом, при кодировании уходит в перезагрузку, а загрузившись, меняет IP и, как следствие, не может завершить процесс.
Как это посмотреть?
И опять обращаемся к фундаментальным статьям MrPerfekt. Открываем Tool32 и выполняем команду status_get_ipconfig из файла NBT.prg (файлик можно взять в ISTA-P) и в строке STAT_IPADDRESS будет выведен сконфигурированный IP-адрес.
Ну это в общем то не обязательно. Можно просто поверить.
Что делать?
Ну ясно же!) Заставить NBT получить статический IP. Дальше просто. Надо либо подключаться через аппаратный HUB/Router, и, на самом деле, не очень важно какой, либо под Windows поднять программный DHCP- сервер (TFTPD), что я и сделал, и на всякий случай зажал его так, что он раздает только один IP-адрес).

Всем приветствую! Это снова тот самый ДенТайллер.
Сегодня хочу с вами поделится портом мода NBTedit на версию майнкрафта 1.7.10.
Значит что за мод NBT edit?
По сути это небольшой инструмент для редактирования NBT тегов для любого существа.
При помощи этого мода, вы можете создать свой уникальный предмет или уникального моба.
К предмету можно добавить разноцветное описание и имя к нему, можно добавить зачарование,поменять урон и многое другое.
К мобу можно добавить так же разноцветное имя, поменять количество жизней или урона.
Мод довольно полезный для картоделов.
Думаю он вам уж точно приглядится!
Значит как тут всё работает?
Давайте попробуем добавить разноцветное имя или может ещё описание (если это предмет).
Ну первое вам надо подойти к любой сущности.
Если вы хотите редактировать предмет, то вам стоит поставить сундук и положить туда предмет для редактирования.
Когда вы подошли к мобу или поставили сундук с предметом, вам надо навестить на него.
Потом вам надо будет прописать команду в чат /nbtedit и у вас откроется менюшка редактирования.

Далее вы увидите все NBT теги, которые прописаны к сущности или к предмету.

Чтобы начать уже добавлять имя или может ещё описание (если это предмет) к сущности или к предмету.
Вам нужно добавить новый TagCompound, добавить её можно кнопкой Compound, которая находится сверху среди многих кнопок.
Когда вы добавили, вам надо её по редактировать, нажав на кнопку Edit сверху.
У вас откроется менюшка редактирования.
Вам надо в первое поле написать просто tag.


После кодов цветов, я ещё добавил код вида текста.
К примеру текст можно сделать жирным,зачёркнутым,подчёркнутым и курсивным.
Чтобы его добавить вам надо после кода цвета, добавить код вида.
Список кодов вида текста:
Теперь перейдём к описанию.
Выбираем тег display и создаём уже TagList, нажав на кнопку List сверху и редактируем.
В первое поле пишем Lore.
Далее создаём String и редактируем.
Во второе поле уже пишем само описание, используя коды.

Подходя к финишу, нажимаем на кнопку Save, сохраняя наши изменения.
И идём проверять, получилось ли у нас.
Вот что у меня получилось. 
Чтобы добавить разноцветное имя для моба.
Вам надо найти тег CustomName и выбрать его, потом нажать на Edit.
Во второе поле пишем уже имя для моба, используя коды цветов и видов.

Далее просто сохраняем, нажав на кнопку Save и смотрим что получилось.

Ура! У нас получилось добавить разноцветное имя и описание к предмету.
Лично я этот мод использую только для того чтобы добавлять разноцветные надписи к предметам.
А как добавить свой урон и другие прикольные плюшки к предмету, вы можете узнать по ролику ниже.
И ещё хотел кое-что рассказать.
NBTedit уже есть на сайте ru-minecraft.ru, но его нету на версию майнкрафта 1.7.10.
Так что советую вам заглянуть к этой новости, так как там очень много полезной информации.
На этом всё!
Спасибо что обратили внимание на мою новость.
Жду вас оценки на данную новость и комментарии.
Увидимся в следующих новостях!

























