Учебники / Создание пакета данных

В этом руководстве показано, как создать пакет данных.

Начало работы

Пакеты данных можно использовать для добавления или изменения функций, таблиц добычи, структур мира, достижений, рецептов, тегов, размеров и предикатов.

Чего не следует делать

Есть некоторые вещи, которые вам не следует делать при создании пакета данных. Вот список того, чего нельзя:

  • Выпустить версии или модификации Minecraft , которые позволяют игрокам играть, не купив Minecraft от Mojang.
  • Освободите декомпилированный исходный код Minecraft любым способом.

Создание пакета данных

Чтобы создать пакет данных, начните с перехода к папке datapacks внутри папки world.

Чтобы найти папку мира, найдите папку saves в каталоге игры, по умолчанию это .minecraft.

  • В одиночной игре вы можете выбрать свой мир, нажать «Изменить», затем «Открыть папку мира».
  • На сервере вы можете перейти в его корневой каталог (где находится server.properties), затем ввести каталог world .

Оказавшись в папке datapacks , создайте папку с именем твой выбор. Это будет имя вашего пакета данных. Войдите в папку пакета данных.

Первое, что нужно сделать после того, как вы окажетесь в папке, — это создать файл pack.mcmeta . Это позволяет Minecraft идентифицировать ваш пакет данных.

См. Также: Data_pack § pack.mcmeta

Чтобы создать файл MCMETA, щелкните правой кнопкой мыши в папке пакета данных и создайте новый текстовый документ. Назовите этот файл « pack.mcmeta ».

Примечание

При переименовании убедитесь, что расширение файла — .mcmeta , а не .txt ! Другими словами, удалите старое расширение файла. Вы можете быть предупреждены, что изменение расширения имени файла может сделать файл непригодным для использования. Однако на самом деле это означает, что вы правильно переименовали файл pack.mcmeta .

Если вы используете Microsoft Windows и не видите расширения файлов, для Windows 10, вы можете включить их, перейдя в меню View проводника файлов и установив флажок для расширений имен файлов. Для Windows ниже Windows 10 вы можете снять флажок «скрывать расширения» в настройках папки.

Текстовый редактор

Любой текстовый редактор должен работать. Рекомендуется, чтобы выбранный текстовый редактор поддерживал JSON, формат, используемый файлами с расширением mcmeta и большинством других файлов в пакете данных. Обратите внимание, что большинство текстовых редакторов не распознают mcmeta как JSON. Таким образом, вам необходимо настроить редакторы вручную.

Откройте pack.mcmeta в текстовом редакторе и вставьте или введите следующее:

 {"pack": {"pack_format": 6, "description": "Tutorial Data Pack"}} 

В pack.mcmeta можно использовать символ § (коды форматирования Minecraft) в описании pack.mcmeta и имени пакета данных.

Формат pack_format должен быть установлен на 7, если пакет данных используется в версии 1.17 или выше. Если пакет данных используется в 1.16.2–1.16.5, pack_format должен быть 6. Если пакет данных используется в 1.15–1.16.1, pack_format должен быть 5. Если пакет данных используется в 1.13–1.14, установите pack_format равным 4. . Описание может быть любой строкой или необработанным текстом JSON. Он будет отображаться, когда вы наводите курсор на свой пакет данных в выводе из /datapack list и в пользовательском интерфейсе пакета данных при создании мира.

Примечание

Этот файл написан в JSON! В этом руководстве мы не будем вдаваться в подробности формата, но имейте в виду, как все устроено. Будьте очень осторожны, чтобы не забыть кавычки, двоеточия и фигурные или квадратные скобки. Отсутствие одного из них может привести к тому, что ваш пакет данных не будет работать правильно! Для проверки файлов вы можете использовать валидатор JSON, такой как тот, который находится на JSONLint.

Тестирование вашего пакета

После того, как вы создали свой pack.mcmeta , попробуйте протестировать его в игре! Откройте мир или, если вы уже находитесь в мире, введите /reload , затем введите /datapack list . Он должен перечислить две записи. Один должен быть [vanilla] , второй должен называться как [file/(имя вашего пакета данных)] , где находится имя папки вашего пакета данных в (название вашего пакета данных) . При наведении указателя мыши на запись вашего пакета данных вы должны увидеть описание вашего пакета данных, как вы написали в описании вашего pack.mcmeta .

Когда ваш Появился пакет, вы готовы двигаться дальше.

Устранение неполадок

Если вы не видите свой пакет в списке, убедитесь, что ваш Файл pack.mcmeta правильный и сохранен. Найдите отсутствующие фигурные скобки {} , запятые , , двоеточия : , кавычки " " или квадратные скобки [] . Помните, что для каждой открытой скобки, цитаты или квадратной скобки у вас должна быть закрывающая скобка, цитата или квадратные скобки.

Именование

См. Также: ID в пространстве имен

Создайте папку с именем data в папке пакета данных, куда вы поместили файл pack.mcmeta . В В этой папке data вы должны создать одну или несколько папок, которые будут действовать как ваши пространства имен.

Записи в пакетах данных имеют идентификаторы пространства имен в стиле пространство имен: путь . Соответствующий файл будет находиться в data/namespace/(data_type)/path. (Суффикс) . Обратите внимание, что символы / в пути будут преобразованы в разделители каталогов.

Несколько примеров:

  • тег элемента с идентификатором dummy: foo_proof/bar будет расположен по адресу data/dummy/tags/item/foo_proof/bar.json
  • функция с идентификатором foo: handler/bar_call будет расположена в data/foo/functions/handler/bar_call.mcfunction

Допустимые символы

Пространства имен, пути и другие имена папок и файлов в пакете данных должны содержать только следующие символы:

  • 0123456789 Числа
  • abcdefghijklmnopqrstuvwxyz Строчные буквы
  • _ Подчеркивание
  • - Дефис/минус
  • / Косая черта вперед/ Разделитель каталогов (не может использоваться в пространстве имен)
  • . Точка

Предпочтительное соглашение об именах: lower_case_with_underscores , называется нижним регистром змеи.

Пространство имен

Большинство объектов в игре имеют идентификатор в пространстве имен, чтобы предотвратить потенциальные конфликты содержимого или непреднамеренные переопределения.

Например, если два пакета данных добавьте два новых механизма мини-игр в Minecraft , и оба имеют функцию с именем start . Без пространств имен эти две функции столкнулись бы, и мини-игры были бы сломаны. Но если у них разные пространства имен minigame_one и minigame_two , функции станут minigame_one: start и minigame_two: start , которые больше не конфликтуют.

В большинстве случаев, когда для Minecraft требуется идентификатор, например для /function , вы должны указать пространство имен в дополнение к пути. Если вы не укажете пространство имен, оно вернется к minecraft .

Обязательно всегда используйте свое собственное пространство имен для всего нового, что вы добавляете, и используйте другие пространства имен только в том случае, если вы явно переопределяете что-то еще или, в случае тегов, добавляете что-то еще .

Например, Minecraft использует пространство имен minecraft , что означает, что это пространство имен следует использовать только тогда, когда пакет данных необходимо перезаписать существующие данные Minecraft или добавить их записи в ванильные теги.

Функции

Основная статья: Функция (Java Edition)
См. Также: Руководства/Командные блоки и функции

Функции — это набор команд, которые можно запускать по порядку.

Чтобы добавить функции, сначала создайте папку с именем functions внутри папки пространства имен. Затем создайте файл с именем (имя_функции) .mcfunction в этой папке или в любой из ее подпапок. Это будет ваш файл функции. Ваша функция будет называться в игре как (namespace) :( name) или (namespace) :( subfolder1)/(subfolder2)/.../(имя) , если файл функции находится во вложенной папке.

Таблицы добычи

Основная статья: Таблица добычи

Таблицы добычи сообщают Minecraft , что следует отбрасывать, когда моб умирает, или что должно генерироваться внутри контейнеров, таких как сундуки, при первом открытии, они также могут быть вызваны с помощью/ команда loot.

Чтобы добавить таблицы добычи, сначала создайте папку с именем loot_tables внутри папки пространства имен. Затем создайте файл с именем (loot_table_name) .json в этой папке или в любой из ее подпапок. Это будет ваш файл таблицы добычи. Ваша таблица добычи будет названа в игре как (namespace) :( name) или (namespace) :( subfolder1)/(subfolder2)/.../(name ) , если файл находится во вложенной папке. Все ванильные таблицы добычи находятся в пространстве имен minecraft.

Вот пример таблицы добычи коровы, ее можно использовать в качестве справки:

 1 {2 "тип": "minecraft: entity", 3 "пула": [4 {5 "роликов": 1, 6 "записей": [7 {8 "тип": "minecraft: item", 9  "functions": [10 {11 "function": "minecraft: set_count", 12 "count": {13 "min": 0,14 "max": 2,15 "type": "minecraft: uniform" 16}  17}, 18 {19 "function": "minecraft: looting_enchant", 20 "count": {21 "min": 0,22 "max": 123} 24} 25], 26 "name": "minecraft: leather  "27} 28] 29}, 30 {31" роликов ": 1,32" записей ": [33 {34" тип ":" minecraft: item ", 35" функций ": [36 {37" функция ":"  minecraft: set_count ", 38" count ": {39" min ": 1,40" max ": 3,41" type ":" minecraft: uniform "42} 43}, 44 {45" function ":" minecraft:  печь_smelt ", 46" условия ": [47 {48" условие ":" minecraft: entity_properties ", 49" предикат ": {50" флаги ": {51" is_on_fire ": true52} 53}, 54" объект ":"  this "55} 56] 57}, 58 {59" function ":" minecraft: looting_enchant ", 60  "count": {61 "min": 0,62 "max": 163} 64} 65], 66 "name": "minecraft: beef" 67} 68] 69} 70] 71} 

Чтобы узнать, что означает каждый тег, см. Таблицы добычи. На этой странице также есть список стандартных таблиц добычи.

Структуры

Структуры могут использоваться со структурными блоками и блоками головоломки и/или могут перезаписывать то, как определенные ванильные конструкции смотрите в Minecraft . Сохраняется в формате NBT. Вы можете создать файл NBT, используя блок структуры или экспортируя сборку с помощью сторонней программы, такой как MCEdit.

Чтобы добавить структуры в пакет данных, сначала создайте папку с именем структуры внутри папки пространства имен. Затем поместите свой файл структуры в эту папку или в любую из ее подпапок.. Ваша структура будет называться в игре как (namespace) :( name) или (namespace) :( subfolder1)/(subfolder2)/.../(name) , если файл находится в подпапке.

Достижения

Основная статья: Достижения

Улучшения можно завершить, игроков и дарите различные награды.

Чтобы добавить достижения, сначала создайте папку с именем advancements внутри папки пространства имен. Затем создайте файл с именем (advancement_name) .json (нельзя ставить пробелы в имени файла. Используйте строчные буквы в имени файла). в этой папке или в любой из ее подпапок. Это будет ваш файл о продвижении. Ваше продвижение будет обозначено в игре как (namespace) :( name) или (namespace) :( subfolder1)/(subfolder2)/.../(name) , если файл находится во вложенной папке.

Рецепты

Основная статья: Рецепт

Рецепты используются для того, чтобы игроки создают предметы.

Чтобы добавить рецепты, сначала создайте папку с именем recipes внутри папки пространства имен. Затем создайте файл с именем (recipe_name) .json в этой папке или в любой из ее подпапок. Это будет ваш файл с рецептами. Ваш рецепт будет назван в игре как (namespace) :( name) или (namespace) :( subfolder1)/(subfolder2)/.../(name) , если файл находится в подпапке.

Формованное ремесло

См. также: Рецепт § minecraft: crafting_shaped

Первый распространенный тип крафта — это крафт по форме.

 {"type": "minecraft: crafting_shaped", "pattern": ["123", "231", "312"  "]," key ": {" 1 ": {" item ":" ID элемента в пространстве имен "}," 2 ": {" item ":" ID элемента в пространстве имен "}," 3 ": {"  item ":" ID элемента в пространстве имен "}}," result ": {" item ":" ID элемента в пространстве имен "," count ": 5}} 

Это грубый пример рецепта создания фигурной формы, заданного типом crafting_shaped . pattern — это список, используемый для определения формы рецепта крафта. Он содержит максимум 3 струны, каждая из которых соответствует одному ряду в сетке крафта. Затем эти строки содержат максимум 3 одиночных символа рядом друг с другом, каждый символ занимает одно место в сетке крафта. Вам не нужны все 3 строки, и вам не нужно иметь 3 символа в каждой строке. Но каждая строка должна содержать одинаковое количество символов. Вы можете использовать пробелы для обозначения пустых мест.

key — это соединение, используемое для указания, какой элемент должен использоваться для какого символа в шаблоне код>. Это можно указать с помощью item , за которым следует идентификатор элемента, или тега , за которым следует тег пакета данных элемента.

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

Это исходный рецепт поршня (может использоваться в качестве справки):

 {"type": "crafting_shaped", "pattern": ["TTT", "# X #", "# R #"], "key": {"R  ": {" item ":" minecraft: redstone "}," # ": {" item ":" minecraft: cobblestone "}," T ": {" tag ":" minecraft: planks "}," X ":  {"item": "minecraft: iron_ingot"}}, "result": {"item": "minecraft: поршень"}} 

Бесформенное ремесло

См. также: Рецепт § minecraft: crafting_shapeless

Есть еще один распространенный тип рецептов, бесформенный рецепт.

 {"type":  "crafting_shapeless", "ингридиенты": [{"item": ""}, {"предмет": ""}, [{"предмет": ""}, {  "item": ""}]], "result": {"item": "", "count": 5}} 

Как указано в типе crafting_shapeless , это рецепт без шаблона . Ингредиенты могут быть помещены в сетку крафта в любой форме. В этом примере есть список внутри соединения ингредиентов . Это означает, что можно использовать любой из элементов в этом списке.

Это оригинальный рецепт Огненного заряда (можно использовать в качестве справки):

 {"type": "crafting_shapeless", "components": [{"item": "minecraft: gunpowder"}, {"item": "minecraft: blaze_powder"}, [{"item": "minecraft:  уголь "}, {" item ":" minecraft: charcoal "}]]," result ": {" item ":" minecraft: fire_charge "," count ": 3}} 

Также возможно создать новые рецепты плавки.

 {"type": "smelting", "ингридиент": {"item": "  "}," result ":"  "," experience ": 0,35," Cooktime ": 200} 

Это грубый пример рецепта плавки. «ингредиент» используется для обозначения предмета, который вы собираетесь плавить. «результат» будет указывать на результат. В разделе «Опыт» вы можете выбрать количество опыта, получаемого за плавку, а в «Время приготовления» — количество времени, которое потребуется для плавления предмета, которое в данном случае составляет 10 секунд (200 тиков = 10 секунд. ).

Это стандартный рецепт плавки алмазной руды:

 {"type": "плавка", "ингредиент": {"item  ":" minecraft: diamond_ore "}," result ":" minecraft: diamond "," experience ": 1," cooktime ": 200} 

Основная статья: тег

Теги используются для группировки блоков, элементов, сущностей или функций вместе. Кроме того, тег функции minecraft: tick используется для запуска функций каждый тик, а тег функции minecraft: load используется для запуска функций каждый раз, когда мир (повторно) загружен.

Чтобы добавить теги, сначала создайте папку с именем tags внутри папки пространства имен. Внутри этой папки создайте папки с именами блоки , items и functions . Затем создайте файл с именем (tag_name) .json в одной из этих папок или в любой из их подпапок. Это будет ваш файл тегов. Ваш тег будет назван в игре как (пространство имен) :( имя) или (пространство имен) :( подпапка1)/(подпапка2)/.../(имя) , если файл находится во вложенной папке.

Предикаты

Основная статья: Предикат

Предикаты — это технические файлы JSON которые представляют условия для таблиц добычи, команду /execute if predicate или аргумент целевого селектора predicate .

Чтобы добавить предикаты сначала создайте папку с именем predicates внутри папки пространства имен. Затем создайте файл с именем (имя_предиката) .json (нельзя ставить пробелы в имени файла. Используйте строчные буквы в имени файла). в этой папке или в любой из ее подпапок. Это будет ваш файл предикатов. Ваш предикат будет назван в игре как (namespace) :( name) или (namespace) :( subfolder1)/(subfolder2)/.../(name) , если файл находится во вложенной папке.

Размеры

Основная статья: Специальный параметр

Размеры — это файл JSON используется для указания всех измерений, которые содержит мир.

Чтобы добавить измерения, сначала создайте папку с именем Dimension внутри папки пространства имен. Затем создайте файл с именем (имя_размерности) .json (нельзя помещать пробелы в имя файла. Используйте строчные буквы в имени файла). в этой папке. Это будет ваш файл измерений.

Доступ к настраиваемым размерам можно получить в игре с помощью /execute in (namespace) :( имя_измерения)

Утилиты

Этот список неполный; вы можете помочь, расширив его .

Многие утилиты были созданы для того, чтобы упростить программирование в mc-функциях. Это справочный список для таких утилит, как транспиляторы или плагины подсветки синтаксиса. Пожалуйста, соблюдайте разумную осторожность при загрузке программного обеспечения на свой компьютер, так как создатели несут ответственность за предоставленный контент..

Компиляторы/транспилеры и фреймворки
Имя Хостинг Описание Ссылка
Minecraft Script GitHub Язык, основанный на JavaScript, который можно скомпилировать в рабочий пакет данных с помощью компилятора Node.js. https://mcscript.stevertus.com/
TMS Transpiler GitHub Инструмент Python, который может собирать код mcfunction с отступом в допустимые файлы. Отлично, если вы не хотите изучать новый язык. https://github.com/davidkowalk/advanced_minecraft_scripting
ObjD Pub Фреймворк для создания пакетов данных, позволяющий минимизировать повторяющуюся работу. https://objd .stevertus.com/

Другой вариант — использовать визуальный интерфейс для создания каркаса или содержимого вашего проекта.

Визуальные генераторы
Имя Хостинг Описание Ссылка
Генератор пакетов данных NBT nbt-data.com Онлайн-генератор для необработанной структуры пакета данных без каких-либо функций. https://www.nbt-data.com/datapack-generator
Генератор рецептов thedestruc7i0n.ca Онлайн-генератор для генерации файлов JSON, необходимых для создания. https://crafting.thedestruc7i0n.ca/
Генератор рецептов Minecraft Tools r minecraft.tools Онлайн-генератор для генерации файлов JSON, необходимых для крафта. https://minecraft.tools /en/custom-crafting.php
Misodes Datapack Generator GitHub JSON Generator для пакетов данных Minecraft https://misode.github.io/
MCStacker for MC 1.16 mcstacker.net/ Коллекция генераторов команд. https://mcstacker.net/

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

Подсветка синтаксиса
IDE/Editor Описание Ссылка
Atom Подсветка синтаксиса и фрагменты https://atom.io/packages/mcfunction
Atom Подсветка синтаксиса и автозаполнение. https://atom.io/packages/mcfunction-novum
VisualStudio Расширение, обеспечивающее поддержку языкового сервера minecraft в Visual Studio Code. https://github.com/Levertion/vscode -mcfunction
VisualStudio Грамматики языка и подсветка синтаксиса для файлов mcfunction. https: //github.com/Arcensoth/language-mcfunction
Notepad++ Подсветка синтаксиса. https://pastebin. com/hbMiJ3YV

  • Пакеты данных
  • Пакеты ресурсов
  • Учебники/Установка пакета данных
Оцените статью
Gamicon.ru
Добавить комментарий

  1. Михаил

    Слишком мало информации
    Как датапаки то делать?

    Ответить
  2. Михаил

    Сайт nbtdata не работает

    Ответить