A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

pages / minecraft_nbt.md

  • Go to file T
  • Go to line L
  • Copy path
  • Copy permalink

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Cannot retrieve contributors at this time
89 lines (78 sloc) 7.3 KB

  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents Copy raw contents

Copy raw contents

Материал подготовлен Rikonardo. Информация взята отсюда.
Обратите внимание — данный гайд подготовлен для версий игры выше 1.13! Примеры использования NBT тегов в предыдущих версиях могут отличаться от приведённых в статье!

Формат NBT (от англ. Named Binary Tag — «именованный двоичный тег») используется Minecraft в различных файлах для хранения данных. Формат описан Нотчем в очень краткой спецификации. Формат разработан для хранения данных в структуре-дереве, состоящей из различных тегов. У каждого тега есть идентификатор и название.

Что такое NBT теги или как хранятся миры в Майнкрафте | Майнкрафт изнутри

NBT (именованный двоичный тег) — это двоичный формат на основе тегов, предназначенный для переноса больших объемов двоичных данных с меньшими объемами дополнительных данных. Ячейка именованного тега имеет следующий формат:

Тип Описание
byte tagType Тип тега, хранимый в формате byte , означает тип данных содержащихся в ячейке (поле payload )
TAG_String name Название ячейки
[payload] Информация, хранимая в ячейке

Как это работает?

Давайте представим себе следующую ситуацию: нам нужно сохранить 3 параметра о предмете, а именно числовое id (идентификатор предмета), строковое name (название предмета), логическое isMagic (является ли предмет магическим). Визуально результат будет выглядеть так:

byte tagType TAG_String name [payload]
TAG_Int id 122
TAG_String name «Magic crystal»
TAG_Byte isMagic 1
Читайте также:  В каком году сделали майнкрафт

Или в приблизительном переводе в json:

< «id»: 122, «name»: «Magic crystal», «isMagic»: true >

Список возможных типов данных для NBT-тега

Тип Содержимое Описание
TAG_End Нет. Используется для обозначения конца составных тегов. У этого тега нет названия, поэтому он всегда представлен одним байтом, равным 0. Также этот тип используется в пустых тегах списков.
TAG_Byte 1 байт / 8 битов, со знаком Целочисленный тип со знаком. Иногда используется для логических переменных.
TAG_Short 2 байта / 16 битов, со знаком, обратный порядок байтов Целочисленный тип со знаком.
TAG_Int 4 байта / 32 бита, со знаком, обратный порядок байтов Целочисленный тип со знаком.
TAG_Long 8 байт / 64 бита, со знаком, обратный порядок байтов. Целочисленный тип со знаком.
TAG_Float 4 байта / 32 бита, со знаком, обратный порядок байтов, IEEE 754-2008, binary32 Тип чисел с плавающей точкой со знаком.
TAG_Double 8 байт / 64 бита, со знаком, обратный порядок байтов, IEEE 754-2008, binary64 Тип чисел с плавающей точкой со знаком.
TAG_Byte_Array Один TAG_Int, обозначающий размер, затем размер тегов TAG_Byte. Массив байтовых переменных.
TAG_String Один TAG_Short, обозначающий длину, затем строка в формате UTF-8 с размером длина. Строка в формате UTF-8. Она имеет размер, а не завершается нулём.
TAG_List Один TAG_Byte, обозначающий тип, затем TAG_Int, обозначающий размер, затем размер тегов типа тип. Список нагрузок тегов без ID и без названий.
TAG_Compound Полные теги, затем один тег TAG_End. Список полных тегов, включающий их типы, названия и содержимые. Все теги должны иметь различные имена.
TAG_Int_Array Один TAG_Int, обозначающий размер, затем размер тегов TAG_Int. Массив тегов TAG_Int.

Структура дерева NBT очень похожа на структуру JSON, и для использования NBT в командах используется именно псевдо-JSON. Вот пример подачи информации о предмете в виде JSON-подобной структуры:

В развёрнутом виде:

А вот пример с реальным блоком:

Вложенное в <> — объект, для выборки элементов в котором используется текстовое название объекта. Вложенное в [] — список, элементы в нём не имеют никаких видимых селекторов, но по факту для выборки используются номера элементов в списке.

Читайте также:  Чит баритон на Майнкрафт

Получить палку с название «Палка неправды»:

Полный список параметров на английском можно найти здесь.

Источник: github.com

Что такое nbt в майнкрафт

Очередной перевод зарубежного урока от менья.
На этот раз статья была взята с оф. вики форджа.

В этом примере мы сделаем предмет-ключ, который будет открывать дверь, если коды двери и предмета сходятся. Мы разберем только то, как в нашем случае надо работать в NBT в классе двери и в предмете.

Мы рассмотрим некоторые методы, которые взаимодействуют с NBT. Не буду перечислять все методы, их можно увидеть в классе net.minecraft.item.Item. Там вы увидите описание для каждого интересующего вас метода.

Вызывается, когда предмет используют (на ПКМ), возвращает true, если что-то происходит, false — если ничего не происходит.

В командах заменяйте слово «БЛОК» на id блока, «МОБ» — на id моба, «ПРЕДМЕТ» на id предмета, « » — на NBT теги

КОМАНДЫ ДЛЯ 1.7 — 1.12.2:

БЛОК 3 replace
4:34 blockdata

КОМАНДЫ ДЛЯ 1.13+:

БЛОК
4:34 data merge block

Итак, давайте определимся с тем, что-же такое структура NBT. Упрощённое определение находится ниже.

NBT или Named Binary Tags — это формат хранения данных мира, разработанный Нотчем. Использует расширение .mclevel.

NBT параметры могут быть как обязательными, так и опциональными. Все они нужны для того, что-бы управлять теми, или иными объектами. Например, с их помощью можно выдавать мобам различные эффекты, броню, и прочее.

NBT код, с версии 1.7, может быть изменён непосредственно в игре, что значительно упрощает работу создателей карт, так как до этого изменить дополнительные параметры было возможно только используя специальные дополнения.

Итак, теперь давайте разберёмся с символами, которые нам потребуются. Фигурные скобки ( ) потребуются нам в самом начале. Например: /summon Zombie . Также фигурные скобки нужны, если какой-либо объект в массиве может иметь дополнительные параметры (Например: Параметры брони моба, /summon Zombie ]>). Квадратные скобки ([ и ]) нужны для открытия и закрытия массивов.

Читайте также:  Как ускорить рост тростника в майнкрафте

Например: /summon Zombie . Присвоение значений производится с помощью знака «:». Например: /summon Zombie . Для разделения различных параметров, нам потребуется запятые. Например: /summon Zombie

Список всех возможных параметров для тех, или иных объектов можно найти здесь. Они не переведены на русский язык. Поэтому их придётся переводить самому.

Источник: minecraft-kak.ru

[Гайд] Изучаем структуру NBT с нуля

[Гайд] Изучаем структуру NBT с нуля

Итак, давайте определимся с тем, что-же такое структура NBT. Упрощённое определение находится ниже.

NBT или Named Binary Tags — это формат хранения данных мира, разработанный Нотчем. Использует расширение .mclevel.

NBT параметры могут быть как обязательными, так и опциональными. Все они нужны для того, что-бы управлять теми, или иными объектами. Например, с их помощью можно выдавать мобам различные эффекты, броню, и прочее.

NBT код, с версии 1.7, может быть изменён непосредственно в игре, что значительно упрощает работу создателей карт, так как до этого изменить дополнительные параметры было возможно только используя специальные дополнения.

Итак, теперь давайте разберёмся с символами, которые нам потребуются. Фигурные скобки (< и >) потребуются нам в самом начале. Например: /summon Zombie var:1>. Также фигурные скобки нужны, если какой-либо объект в массиве может иметь дополнительные параметры (Например: Параметры брони моба, /summon Zombie var:1,var:1>]>). Квадратные скобки ([ и ]) нужны для открытия и закрытия массивов.

Например: /summon Zombie [var:1]>. Присвоение значений производится с помощью знака «:». Например: /summon Zombie :1>. Для разделения различных параметров, нам потребуется запятые. Например: /summon Zombie ,var:1>

Список всех возможных параметров для тех, или иных объектов можно найти здесь. Они не переведены на русский язык. Поэтому их придётся переводить самому.

Источник: ru-minecraft.ru