Интеграция с командами¶
Главная идея: состояние квеста читается командами. Квест — не закрытый чёрный ящик, а источник данных: его можно опрашивать прямо из командных блоков, функций и цепочек /execute.
Эта страница — про мысленную модель и про то, как инструменты сочетаются. Точный синтаксис каждой команды — в Справочник команд.
Три способа прочитать состояние¶
| Инструмент | Что возвращает | Когда брать |
|---|---|---|
quest test |
1 / 0 и печать в чат |
Свериться со статусом вручную. |
execute if quest / execute if task |
Ветку /execute (да / нет) |
Вплести статус в цепочку команд — без вывода в чат. |
quest query |
Число — прогресс, счётчик, процент | Получить величину, а не просто да/нет. |
Все три читают одно и то же состояние, просто в разной форме. Выбор — по тому, что нужно на выходе: quest test отвечает в чат, когда сверяешься вручную; execute if тихо ветвит команды; quest query отдаёт число для scoreboard.
execute if — статус как условие¶
/execute if|unless quest и /execute if|unless task — расширение ванильной /execute. Статус квеста становится таким же условием, как if block или if score, и комбинируется с ними в одной строке:
Это самый прямой способ привязать игровое событие к прогрессу: открыть дверь, заспавнить NPC, выдать награду — ровно тем игрокам, чьё состояние подходит.
quest query — прогресс как число¶
quest query отдаёт числовую величину, которую удобно положить в scoreboard через store result:
Дальше это число — обычный счёт: его можно показать на табло, сравнить через if score, отобразить в bossbar. Так из квестового прогресса собираются прогресс-бары, пороги и индикаторы, живущие средствами ванильного scoreboard.
quest queryчитает прогресс в обе стороны: можно спросить и про этапы квеста, и про задачи этапа, и про значение конкретного условия (value/target/percent). Полный список форм — в Справочник команд.
Обратная сторона: команды меняют состояние¶
Чтение — половина интеграции. Вторая половина в том, что и сам квест управляется командами: выдача (quest give), завершение задач (quest complete), закрепление (quest pin). А задачи, в свою очередь, умеют запускать твои функции через хуки on — см. Хуки жизненного цикла задачи.
Получается замкнутый цикл: командный блок выдаёт квест → задача при завершении вызывает твою функцию → функция читает состояние других квестов и решает, что выдать дальше. На этом цикле строятся все паттерны — от цепочек до серверных ивентов.
Связь со scoreboard напрямую¶
Условие score читает обычный scoreboard objective, а хуки on могут этот objective менять своими функциями. Это вторая точка стыковки с ванильными командами: считаешь что угодно средствами Minecraft (статистику, кастомные счётчики), а квест лишь следит за достижением цели. Самый наглядный пример — общесерверный счётчик в Глобальный квест.
См. также¶
- Справочник команд — точный синтаксис
quest test,quest query,execute if quest. - Хуки жизненного цикла задачи — как задача вызывает твои функции.
- Условия выполнения задачи — условие
scoreкак мост к scoreboard. - Паттерны квестов — готовые сборки на этих механизмах.