Редактор квестовых диалогов

Создание диалога в игре, задача скажем так, со сложностями, особенно, если нужно сделать диалоги, привязанные к квесту. Создать окно диалога достаточно просто, но, когда дело доходит до организации структуры самого диалога, с учетом множества параметров, в которых легко запутаться, тут, дело значительно усложняется. Наш редактор квестовых диалогов, предназначен как раз для решения такой проблемы. В зависимости от выбранного действия ответа игрока, редактор предлагает необходимый набор переменных, правильность заполнения которых, он так же будет проверять. Таким образом, создавать структуры диалогов намного проще.


Система работает на отслеживании состояния квеста, значении типа int. Значение может меняться как самим скриптом квеста, так и ответами игрока в диалоге, за счет того, что система может отправлять сообщения квесту напрямую. Например, если значения квеста равно нулю, то в диалоге появится фраза "Я возьмусь за это задание", как только игрок выбирает этот ответ, квесту будет отправлено сообщение о том, что задание начато, и соответственно запустятся необходимы механизмы для выполнения этого квеста.



Основные возможности:
  • Система позволяет отслеживать четыре состояния квеста: больше, меньше, равно, диапазон.
  • Редактор контролирует правильность структуры диалога.
  • Возможность редактировать ранее созданные диалоги.
  • Диалоговое окно использует вертикальный скроллинг.
  • Диалоговое окно поддерживает несколько языков.


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

Конечно, такие файлы можно редактировать вручную при необходимости, но чтобы не запутаться в условиях и их соответствия, лучше делать это через редактор.
Если взять конкретную строку, то та что на скриншоте выше, появится в диалоге, только если состояние указанного (quest="TestQuest") квеста, будет строго равно единице (equal="1"), после чего произойдет перенаправленные на другой узел диалога (toNode="3"). По сценарию скрипта, эта строка появляется если квест взят, но еще не выполнен.

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

Скачать:
https://boosty.to/null-code/posts/50bfc20d-674b-4d1f-9e8d-cd697865bc4d
Тестировалось на: Unity 2018.3.1
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика