Создание диалогов
Необходимое ПО:
- Notepad++ (доступно в мод-пакете)
Шаг 1. Создание файла диалога.
Первым шагом в создании диалога идёт файл диалога, давайте рассмотрим порядок создания XML-файла диалога.
Запускаем Notepad++, перед вами появится окно этой программы:
Далее нам нужно указать, что мы собираемся создавать XML-файл, для этого выберите
Синтаксис->XML.
Далее можем начинать работу с файлом. Рассмотрим структуру:
|
Код
|
1
2
3
4
5
6
7
8
|
<Root name="Грот">
<Question id="1" text="Эх, тяжка жизнь!">
<Answer text="И не говори!" nextQuestion="2"/>
</Question>
<Question id="2" text="А я буду говорить!">
<Answer text="Хорошо-хорошо! Пока!" result="1"/>
</Question>
</Root>
|
Первой строкой идёт главный — корневой пункт —
Root:
|
Код
|
1
|
<Root name="Грот">
|
- В атрибуте name указывается имя NPC, с которым будет говорить игрок.
Далее следует реплика NPC, которая будет отображена при начале разговора с NPC:
|
Код
|
1
|
<Question id="1" text="Эх, тяжка жизнь!">
|
- В атрибуте name указывается номер-идентификатор реплики, этот идентификатор служит для перехода по репликам и структуризации реплик.
- В атрибуте text указывается текст реплики, если требуется перенос строки, укажите 
, но не рекомендуется слишком часто использовать.
Далее следует вариант ответа игрока:
|
Код
|
1
|
<Answer text="И не говори!" nextQuestion="2"/>
|
- В атрибуте text указывается текст варианта ответа, если требуется перенос строки, укажите 
, но не рекомендуется слишком часто использовать.
- В атрибуте nextQuestion указывается идентификатор следующей реплики, использовать совместно с result не рекомендуется.
- В атрибуте result указывается выводной идентификатор, он пригодится на следующем этапе.
Количество таких вариантов ответа ограничивается в зависимости от длины текста варианта ответа, старайтесь не писать слишком длинный текст варианта ответа.
Теперь пора сохранять файл, прежде чем сохранять, нажмите
Кодировки->Преобразовать в UTF-8 без BOM, далее нажмите
Файл->Сохранить как..., и перейдите в любой каталог в пределах папки модификации (
Crysis\Mods\CryZone), мы рекомендуем перейти в
Crysis\Mods\CryZone\Game\Libs\UI. После перехода в каталог, укажите название файла (чем короче, тем лучше), затем нажмите
«Сохранить». На этом процесс создания файла завершён.
Шаг 2. Создание диалога в редакторе.
Следующим этапом идёт внедрение диалога в игру и назначение его на NPC.
Для этого запустите редактор Sandbox 2, ярлык к нему доступен на рабочем столе Вашего компьютера:
Далее откройте или создайте Вашу карту, используй команды
File->Open… или
File->New, соответственно.
Перейдите к Вашему NPC, или добавьте его на карту, сделайте NPC дружелюбным, для этого в списке параметров в правой части в параметре
Species задайте значение
0.
Чуть ниже в списке параметров, в группе
Flow Graph нажмите
Create, выберите пункт
<None> и нажмите
OK. В появившемся окне, щелкните правой кнопкой мыши по серой сетке, и выберите
Add Node->HUD->DialogMenu, затем вновь щелкните правой кнопкой по сетке и выберите
Fit Graph to View. В центре сетки вы увидите блок, называемый нодом, в котором Вы можете указать файл диалога и NPC.
Щелкните правой кнопкой мыши по пункту
Choose Entity и выберите
Assign graph entity, далее щелкните по заголовку
HUD:DialogMenu и в правой части экрана в поле
File введите относительный путь к файлу диалогу (например,
Libs\UI\tutorial.xml), в итоге получится как на снимке ниже:
Помните, на первом этапе я упоминал, что нам пригодится выводной идентификатор? Так вот, в упомянутом ноде, в правой части есть пункт
Result, именно он выводит идентификатор. Данный идентификатор можно сравнить с требуемым значением. Пример:
В данном случае, если выводной идентификатор равен
1, то игровое время станет 9 утра, а если равен
2, то игровое время станет 21 час. Таким образом можно сделать буквально любую логическую цепочку, но имейте ввиду, любой вариант ответа имеющий выводной идентификатор является заканчивающим диалог, то есть текущий процесс разговора будет завершён, и нужно будет вновь начинать разговор.
На этом урок подходит к концу. Любые вопросы задавайте в этой теме.