Игровые системы

Квесты в игре: ежедневные задания и награды

Как работают готовые квесты iDos Games - ежедневные, еженедельные и разовые задания, трек очков с сундуками и бонус за группу заданий - и как настроить их в кабинете.

Обновлено: English

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

Что видит игрок

  • Циклы вкладками: ежедневные, еженедельные, достижения, с таймером до следующего цикла.
  • Полосы прогресса у каждого задания и окно с подробностями и всеми целями.
  • Кнопку «Забрать всё» для выполненных заданий.
  • Трек очков с сундуками, которые открываются по мере набора очков.
  • Значок на вкладке, когда есть выполненные задания.
Квесты
12 450
320
Ежедневные2
Неделя
Достижения
Новые задания через 08:12:44
Очки заданий: 45
20
40
60
80
100
Победить 20 монстров
20/20
+10
Забрать
Пройти 3 этапа
3/3
+10
Забрать
Улучшить героя 10 раз
7/10
+15
Забрать
Купить что-нибудь в магазине
0/1
+20
Забрать
Забрать всё
Циклы - вкладками, с таймером до следующего цикла.
Трек очков: забранные задания добавляют очки, по пути открываются сундуки.
Выполненное задание ждёт «Забрать», у остальных виден прогресс.
«Забрать всё» забирает все выполненные задания одним нажатием.
Пример. Экран квестов: циклы, трек очков с сундуками и список заданий.

Как устроены квесты

  • Цикл - набор заданий с расписанием: ежедневный, еженедельный, постоянный или событие на время. Цикл может идти фазами одна за другой, например сезон из восьми недель, у каждой недели свои задания и свой трек очков.
  • Квест - одна или несколько целей, у каждой цели свой счётчик («победить 20 монстров»), и награда. Можно требовать, чтобы перед ним был выполнен другой квест: так строятся цепочки.

Наград три вида, и все работают одновременно:

  1. Награда за квест - когда все цели выполнены.
  2. Сундуки на треке очков - забранный квест добавляет очки цикла, сундук открывается при наборе нужного числа.
  3. Бонус за группу - когда выполнено заданное число квестов одной группы.

Откуда берётся прогресс

ИсточникПримерЧто нужно сделать
Сообщает играПобеда над монстром, пройденный уровеньОдна строка кода в месте действия
Считает сервер самПокупка в магазине, забранный другой квестНичего, только выбрать событие
Серверный скриптСвоё правило в облачном кодеВызов из скрипта

Шаг 01Создайте цикл

Откройте кабинет, выберите проект и перейдите в LiveOps → v2 → Quest. На вкладке Циклы создайте цикл, например ежедневный, и при желании добавьте трек очков с сундуками.

Шаг 02Добавьте задания

На вкладке Задания создайте квест: название, цикл, цели и награду. Для цели выберите, откуда берётся прогресс. Если её засчитывает игра, придумайте имя счётчика, например monsters_defeated.

Кнопка ИИ на странице открывает помощника: «Сделай три ежедневных квеста: на победы, на покупки в магазине и на улучшения героя». Он предложит правки, вы проверите их и нажмёте Сохранить.

Шаг 03Научите игру сообщать о прогрессе

Для целей, которые засчитывает игра, попросите ИИ-кодер: «Засчитывай счётчик monsters_defeated при каждой победе над монстром». Он добавит вызов в нужное место кода. Шаблон idle-RPG уже сообщает о пройденных этапах и улучшениях героя.

Для разработчиков

Квесты работают через client.quest из @idosgames/core. Прогресс отправляется по имени счётчика, а не по квесту: сервер сам раздаёт его всем активным заданиям, которые слушают этот счётчик.

TypeScript
// В месте действия: победа над монстром
await client.quest.addQuestProgress('monsters_defeated', 1)

// Экран заданий: прогресс игрока, циклы обновляются сами
const state = await client.quest.getUserQuestState()

// Забрать награду выполненного квеста
const claim = await client.quest.claimQuestReward('daily_win_20', 'daily')
if (!claim.ok) return showError(claim.error)
  • Через addQuestProgress можно двигать только цели с источником «игра». Цели, которые сервер считает сам, этот вызов отклонит.
  • Не отправляйте значение «с запасом»: если у цели задан максимум за один вызов, превышение блокирует аккаунт игрока.
  • Начисленные награды уже применены к балансам в кэше SDK, перечитывать баланс не нужно.

Подробное описание полей - в навыке quest-system, его отдаёт MCP-сервер SDK.

Частые вопросы

Квесты нужно добавлять в проект отдельно?

Нет. Квесты входят в каждый новый проект. Вкладка заданий видна игрокам, как только в кабинете настроен хотя бы один квест.

Как игра узнаёт, что задание выполнено?

Прогресс считает сервер. Часть заданий он засчитывает сам (покупки, другие квесты), а о действиях внутри игры, например о победе над монстром, игра сообщает серверу одной строкой кода.

Можно сделать боевой пропуск?

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

Смотрите также

Сделайте свою игру

Опишите идею одним предложением - ИИ-кодер соберёт её, и она откроется по своей ссылке.