Быстрый старт¶
Соберём первый квест — «Побег»: обязательное задание «Найти и опустить рычаг» и дополнительное «Узнать, что стало с выжившими». Квест здесь — не галочка в списке: он проходит этапы и может завершиться успехом или провалом.
Сделать это можно двумя путями — оба дают один и тот же квест:
- Командами — быстро попробовать прямо в игре, не создавая файлов. Такой квест (динамический) сохраняется внутри мира и существует только вместе с ним.
- Через датапак — когда квест станет частью контента. Датапак можно положить в мир, а при необходимости отцепить и распространять отдельно — как самостоятельный набор квестов.
Начни с команд, если хочешь просто пощупать систему.
Путь 1. Квест командами¶
Команды InkQuest требуют прав оператора (уровень 2+). На одиночном мире для этого включи читы.
Создаём квест и две его задачи — обязательную (required) и дополнительную (optional):
/quest new example:escape "Побег"
/quest modify example:escape tasks add required push_the_lever "Найти и опустить рычаг, открывающий люк"
/quest modify example:escape tasks add optional look_for_survivors "Узнать, что стало с выжившими"
Выдаём квест игроку и закрепляем его в HUD:
После выдачи игрок увидит подсказку о новом квесте, а закреплённый квест появится в HUD на экране. Полный список квестов открывается клавишей J — подробнее в Интерфейс игрока.
Чтобы завершить задачи, можно спрятать на карте командные блоки с такими командами:
/quest complete PlayerName example:escape task push_the_lever success
/quest complete PlayerName example:escape task look_for_survivors success
Задачи, добавленные командой, завершаются только командой
quest complete. Чтобы задача срабатывала сама — например, по очкам scoreboard или по minecraft-predicate — нужен датапак-квест (см. ниже и Условия выполнения задачи).
Путь 2. Тот же квест в датапаке¶
Статический квест описывается в JSON и живёт в датапаке — его можно держать вместе с миром или распространять отдельно. В отличие от командного, его задачи могут завершаться сами — по заданным условиям. Положи файлы в датапак мира:
pack.mcmeta — служебный файл датапака (pack_format: 15 соответствует Minecraft 1.20.1):
escape.json — сам квест. Имя файла (escape) и папка (example) вместе дают идентификатор example:escape:
{
"version": 3,
"variant": 1,
"title": "Побег",
"description": "Здесь больше нельзя оставаться, но как же выбраться?",
"tasks": {
"push_the_lever": {
"title": "Найти и опустить рычаг, открывающий люк",
"description": "Когда один из стражей выходил, мне удалось услышать щелчок в дальней части комнаты"
},
"look_for_survivors": {
"title": "Узнать, что стало с выжившими",
"description": "Нужно обыскать камеры, может, удастся найти ещё кого-нибудь, кому удалось спастись"
}
},
"stages": [
["push_the_lever", "look_for_survivors"]
]
}
Несколько вещей о структуре:
versionиvariant— обязательные. Они защищают от загрузки в несовместимой версии мода; текущие значения —version: 3,variant: 1. Разбор — в Формат файла квеста.stages— список этапов, каждый этап — список ID задач. Первая задача в этапе обязательная, остальные — дополнительные. Здесь один этап:push_the_leverведёт прогресс,look_for_survivorsидёт сбоку.
Загрузи датапак командой /reload и убедись, что квест считался:
Если example:escape есть в списке — всё готово; дальше квест выдаётся той же командой quest give. Если его нет — загляни в лог сервера и в Частые вопросы и ошибки.
Не всякий квест должен быть «заданием с прогрессом». Можно сделать квест-заметку без задач — страницу дневника, слух, фрагмент лора — или ивент с общим прогрессом. Готовые рецепты — в Паттерны квестов.
Что дальше¶
Квест из примера — самый простой случай. Дальше документация расходится по интересам:
- Понять модель. Как этапы и задачи складываются в прохождение — Структура квеста, Активный этап, Статусы квестов и задач.
- Автоматизировать задачи. Чтобы задачи завершались сами — Условия выполнения задачи и Хуки жизненного цикла задачи.
- Связать квесты в сюжет. Один открывает следующий — Зависимости между квестами и Цепочка квестов.
- Справочник под рукой. Все поля файла — Формат файла квеста, все команды — Справочник команд.
- Готовые рецепты. Типовые механики целиком — Паттерны квестов.