Gaming
 

Диалоги для квестов

Материал из Д'жинни Вики

Для начала создадим диалог для Зигфрида. На самом деле, мы создадим несколько разных диалогов, но какой из них будет выводиться в игре, зависит от конкретной ситуации. Зигфрид должен дать Геральту задание убить главаря разбойников. Чтобы создать файл диалога, в меню Файл (File) выберите Создать -> Диалог (.dig) (New ‐> Conversation (.dig)).

Изображение:Image1115.png

Откроется окно Новый диалог (new conversation).

Изображение:Image1117.png

Откройте только окно свойств. В меню Вид (View) выберите Окна -> Свойства (Utility Windows -> Properties).

Изображение:Image1119.png

В правой части экрана откроется окно Свойства (Properties).

Изображение:Image1121.png

Теперь добавим первую реплику диалога. Для этого щелкните правой кнопкой мыши по пункту Новый диалог (new conversation).

Изображение:Image1123.png

Если мы сохраним наш диалог, на месте этого пункта будет отображаться имя файла (например, dialog_zygfryda). Мы сохраним диалог чуть позже. А пока выберите в меню пункт Создать реплику для квеста (Create Quest Node).

Изображение:Image1125.png


Именно так создается диалог для квеста. Здесь появится первая пустая реплика (EMPTY).

Изображение:Image1127.png

Учтите, что каждый диалог, независимо от его типа (то есть диалоги для квестов, для видео и стандартные диалоги), должен начинаться компьютерным персонажем. Геральт никогда не начинает диалог. Именно поэтому реплика, которую мы только что создали, предназначается для Зигфрида. Чтобы создать текст, который произнесет Зигфрид, дважды щелкните по пункту EMPTY.

Изображение:Image1129.png

Откроется окно.

Изображение:Image1131.png

Введите текст "Привет, Геральт" (Witaj Geralt) и нажмите клавишу Enter. Первая реплика Зигфрида готова.

Изображение:Image1133.png

Теперь Геральт должен ответить. Выберите реплику "Привет, Геральт" (Witaj Geralt) и щелкните по ней правой кнопкой мыши.

Изображение:Image1135.png

В меню выберите пункт Создать ответ для квеста (Create Quest Reply).

Изображение:Image1137.png

Будет создана еще одна пустая реплика (EMPTY).

Изображение:Image1139.png

Обратите внимание, что эта реплика отображается синим цветом. Это означает, что данная реплика произносится Геральтом. Персонажи говорят по очереди: сначала один персонаж, затем другой и так далее. Чтобы ввести ответ Геральта, дважды щелкните по новой реплике. Откроется окно. Введите в нем "Привет, Зигфрид. У тебя есть для меня задания?" (Witaj Zygfrydzie. Masz dla mnie jakieś zlecenia?) и нажмите клавишу Enter.

Изображение:Image1141.png

Добавим еще одну реплику Геральта. Выберите пункт "Привет, Геральт" (Witaj Geralt) и щелкните по нему правой кнопкой мыши.

Изображение:Image1143.png

Снова выберите пункт Создать ответ для квеста (Create Quest Reply).

Изображение:Image1145.png

Будет создана еще одна пустая реплика Геральта.

Изображение:Image1147.png

Дважды щелкните по ней и введите "Бывай" (Bywaj). Нажмите клавишу Enter.

Изображение:Image1149.png

Обратите внимание, что реплика "Бывай" (Bywaj) является вторым ответом в диалоге для квестов. Игрок сможет выбрать фразу "Привет, Зигфрид. У тебя есть для меня задания?" (Witaj Zygfrydzie. Masz dla mnie jakieś zlecenia?) или "Бывай" (Bywaj). Щелкните левой кнопкой мыши по реплике "Бывай" (Bywaj).

Изображение:Image1151.png

Теперь в окне свойств щелкните по правой ячейке параметра Тип диалога (Conv Type). В списке значений выберите Сопроводительный текст (Accompanying).

Изображение:Image1153.png

Теперь реплика "Бывай" (Bywaj) является вторым вариантом в диалоге для квестов. Её новый статус отображается новой иконкой слева от реплики.

Изображение:Image1155.png

Вот что мы только что с вами сделали: в начале диалога Зигфрид говорит: "Привет, Геральт" (Witaj Geralt). После этого игрок может спросить, есть ли у Зигфрида для него задания, выбрав "Привет, Зигфрид. У тебя есть для меня задания?" (Witaj Zygfrydzie. Czy masz dla mnie jakieś zlecenia?), или просто закончить диалог, выбрав ответ "Бывай" (Bywaj).

Теперь необходимо создать реплику, позволяющую Зигфриду ответить на вопрос Геральта о заданиях. Для этого выберите реплику "Привет, Зигфрид. У тебя есть для меня задания?" (Witaj Zygfrydzie. Czy masz dla mnie jakieś zlecenia?), и щелкните по ней правой кнопкой мыши.

Изображение:Image1157.png

В меню выберите пункт Создать запись для квеста (Create Quest Entry).

Изображение:Image1159.png

Будет создана пустая реплика Зигфрида.

Изображение:Image1161.png

Дважды щелкните по этой реплике и введите следующий текст: "Да. Ты должен разобраться с главарем разбойников. Сам я не справлюсь." (Mam. Trzeba zlikwidowac herszta bandytów. Ja nie moge tego zrobić). Затем нажмите клавишу Enter.

Изображение:Image1163.png

Теперь необходимо создать ответ. Выберите реплику "Да. Ты должен разобраться с главарем разбойников. Сам я не справлюсь." (Mam. Trzeba zlikwidowac herszta bandytów. Ja nie moge tego zrobić) и щелкните по ней правой кнопкой мыши.

Изображение:Image1165.png

В меню выберите пункт Создать ответ для квеста (Create Quest Reply).

Изображение:Image1167.png

Будет создана ещё одна реплика.

Изображение:Image1169.png

Дважды щелкните по ней и введите "Согласен" (Zrobi się). Нажмите клавишу Enter.

Изображение:Image1171.png

Так как Геральт не обязан соглашаться на это задание, мы должны добавить реплику для его отказа. Если игрок не желает брать задание Зигфрида, он может ответить "Бывай" (Bywaj). Так как такой ответ мы уже создавали, нет необходимости заново его вводить. Сделаем небольшой трюк. Выберите реплику "Бывай" (Bywaj) и щелкните по ней правой кнопкой мыши.

Изображение:Image1173.png

В меню выберите пункт Копировать (Copy).

Изображение:Image1175.png

Теперь выберите реплику "Да. Ты должен разобраться с главарем разбойников. Сам я не справлюсь." (Mam. Trzeba zlikwidowac herszta bandytów. Ja nie moge tego zrobić) и щелкните по ней правой кнопкой мыши.

Изображение:Image1177.png

В меню выберите пункт Вставить ссылку (Paste as link).

Изображение:Image1179.png

Появится реплика, которая на самом деле является ссылкой на другую реплику.

Изображение:Image1181.png

С помощью этого трюка можно избежать повторного создания одинаковых реплик. На экране же будет отображаться все тот же вариант ответа "Бывай" (Bywaj). Однако новую ссылку необходимо установить после реплики "Согласен" (Zrobi się). Для этого щелкните по ссылке "Бывай" (Bywaj) и удерживайте левую кнопку мыши.

Изображение:Image1183.png

Теперь перетащите ссылку под реплику "Согласен" (Zrobi się) и отпустите левую кнопку мыши.

Изображение:Image1185.png

Это простой и эффективный способ организации реплик. Итак, вот что мы имеем на данный момент. В начале диалога Зигфрид говорит: "Привет, Геральт" (Witaj Geralt). После этого игрок может спросить, есть ли у Зигфрида для него задания, выбрав "Привет, Зигфрид. У тебя есть для меня задания?" (Witaj Zygfrydzie. Masz jakieś zlecenia dla mnie?), или просто закончить диалог, выбрав ответ "Бывай" (Bywaj).

Если игрок выберет первый вариант, Зигфрид ответит: "Да. Ты должен разобраться с главарем разбойников. Сам я не справлюсь." (Mam. Trzeba zlikwidowac herszta bandytów. Ja nie moge tego zrobić). Теперь игрок может решить, соглашаться ему на задание или нет. Он может согласиться и выбрать ответ "Согласен" (Zrobi się), а может отказаться и выбрать ответ "Бывай" (Bywaj). Как вы уже поняли, ответ "Согласен" (Zrobi się) означает, что игрок принял задание Зигфрида. Поэтому мы должны присвоить этой реплике идентификатор квеста. Щелкните по реплике "Согласен" (Zrobi się).

Изображение:Image1187.png

В окне свойств (Properties), щелкните по правой ячейке параметра Идентификатор квеста (Quest Id). Введите zygfryd_zadanie (zygfryd_zlecenie).

Изображение:Image1189.png

Обратите внимание, что иконка рядом с репликой "Согласен" (Zrobi się) изменилась.

Изображение:Image1191.png


Запомните: в одной и той же ветви может быть только одна реплика квеста (то есть реплика, которой присвоен идентификатор квеста). В нашем случае это не проблема, так как в той же ветви у нас находится ссылка на реплику "Бывай" (Bywaj), которая в свою очередь является сопроводительным текстом (Accompanying).

Итак, мы создали реплику с заданием Зигфрида. Однако, если игрок уже получил это задание, этот диалог не должен отображаться. Теперь мы должны создать новый диалог, в котором Зигфрид поинтересуется у Геральта, как идут дела с заданием. Если Геральт ответит, что уже выполнил задание, Зигфрид должен вознаградить его.

Если всего создано три диалога, откуда игра узнает, какой именно выводить на экран? Для этого мы должны создать систему признаков. Выберите реплику "Привет, Геральт" (Witaj Geralt).

Изображение:Image1193.png

В окне свойств (Properties) в разделе Устанавливаемые признаки (After Flags) щелкните по желтой иконке в правой ячейке параметра Добавить признак (Add Flag).

Изображение:Image1195.png

Откроется окно Признаки (Flags).

Изображение:Image1197.png

Щелкните правой кнопкой мыши по полю в окне и выберите в меню пункт Создать имя (Create Name).

Изображение:Image1199.png

Откроется окно Введите имя (Enter name).

Изображение:Image1201.png

Введите zadanie_polucheno (posiada_zlecenie).

Изображение:Image1203.png

Нажмите кнопку OK. В окне Признаки (Flags) появится новый признак.

Изображение:Image1205.png

Если хотите удалить тот или иной признак, щелкните по нему правой кнопкой мыши и выберите в контекстном меню пункт Удалить имя (Delete Name).

Изображение:Image1207.png

Однако, в нашем случае удалять признак не надо. Поэтому, создав признак, просто нажмите кнопку OK в окне Признаки (Flags).

Изображение:Image1209.png

Теперь создадим второй признак с именем glavar_ubit (herszt_zabity). Значение этого признака будет равно 0, пока главарь все еще жив. Когда Геральт убьет главаря разбойников, значение признака изменится и будет равно 1.

Однако, этот признак должен быть глобальным. До этого мы создавали локальные признаки, то есть признаки, действующие только во время диалога. Глобальные признаки действуют на протяжении всей игры, поэтому их можно использовать, к примеру, при создании квестов. Более подробную информацию по этой теме вы найдете в другой главе этого руководства. Глобальные признаки сохраняются в файле globaldlgflags.2da.

Создадим глобальный признак. Для этого в меню Файл (File) выберите Создать -> Ida-файл (.2da) (New ‐ > 2DA file (.2da)).

Изображение:Image1211.png

Откроется окно Редактор нового Ida-файла (new 2da editor).

Изображение:Image1213.png

В игре "Ведьмак" 2da‐файлы – это простые базы данных, в которых текст записан в 2D‐таблицах. В 2da‐файле может быть неограниченное количество столбцов и строк, но каждый новый 2da‐файл содержит всего два столбца и две строки. Первая строка – заголовок, а вторая строка – запись. Первый столбец – ключ записи, по которому производится адресация в базе данных. Для файла globaldlgflags.2da достаточно одного столбца. Чтобы удалить второй, щелкните правой кнопкой мыши по любому из столбцов.

Изображение:Image1215.png

В меню выберите пункт Удалить столбец (Remove Column).

Изображение:Image1217.png

Откроется окно Удаление столбцов (Removing columns).

Изображение:Image1219.png

Нажмите кнопку Да.

Изображение:Image1221.png

Столбец будет удален. Если вам понадобится добавить новый столбец, щелкните правой кнопкой мыши по месту в окне, куда вы хотите вставить столбец, и выберите в меню пункт Вставить столбец (Insert Column).

Изображение:Image1223.png

Чтобы добавить столбец в конец файла, выберите в меню пункт Добавить столбец (Add Column).

Изображение:Image1225.png

В нашем 2da‐файле теперь один столбец. На данный момент нам нужна только одна строка, но удалить вторую нельзя. Обратите внимание, что нумерация строк начинается с 0 и со второй строки. Почему? Как мы уже говорили выше, первый столбец и первая строка могут использоваться для создания заголовка. В нашем случае в этом нет никакой необходимости, поэтому просто щелкните правой кнопкой мыши по первой строке.

Изображение:Image1227.png

В меню выберите пункт ****.

Изображение:Image1229.png

Этот пункт подтверждает, что в нашем 2da‐файле нет заголовка столбца.

Изображение:Image1231.png

Теперь два раза щелкните по второй строке.

Изображение:Image1233.png

Введите в поле glavar_ubit (herszt_zabity).

Изображение:Image1235.png

Нажмите клавишу Enter. Вот и все. Если впоследствии захотите добавить в этот файл новые строки, щелкните правой кнопкой мыши по месту, куда нужно вставить строку, и выберите в меню пункт Вставить строку (Insert Row).

Изображение:Image1237.png

Чтобы добавить новую строку в конец файла, выберите в меню пункт Добавить строку (Add Row).

Изображение:Image1239.png

Если бы нам нужно было создать заголовки столбцов и строк в нашем 2da‐файле, перед сохранением файла необходимо было бы выбрать в меню пункт Блокировать/разблокировать (Fix/Unfix).

Изображение:Image1241.png

Это позволило бы превратить первый столбец и первую строку в заголовки. Впоследствии, чтобы внести изменения в такой файл, необходимо сначала выбрать в меню пункт Блокировать/разблокировать (Fix/Unfix). В противном случае, новые строки и столбцы добавить будет невозможно.

В нашем 2da‐файле заголовки не нужны, поэтому мы оставим все как есть. Необходимо только сохранить файл. Для этого в меню Файл (File) выберите пункт Сохранить как... (Save As...).

Изображение:Image1243.png

Откроется стандартное окно Windows для сохранения файлов. Все 2da‐файлы "Ведьмака" хранятся в каталоге Data\2DA. Перейдите в этот каталог, введите имя файла globaldlgflags и нажмите кнопку Сохранить. Проследите за тем, чтобы файл был сохранен в формате 2da.

Изображение:Image1245.png

Если в окне указан другой тип файла, это, возможно, означает, что вы случайно пытаетесь сохранить содержимое другого открытого окна. Прежде, чем сохранять шаблон персонажа, убедитесь, что у вас активно окно Редактор нового Ida-файла (new 2da editor). Если оно не активно, его заголовок будет отображаться серым цветом.

Изображение:Image1247.png

Любой другой цвет заголовка означает, что данное окно является активным.

Изображение:Image1249.png

Звездочка перед текстом в заголовке окна означает, что последние изменения в этом файле не были сохранены. Как и в случае с шаблонами, вместо пункта Сохранить как... (Save As...) можно выбрать в меню Файл (File) пункт Сохранить новый 2da‐файл (Save new 2da editor). Таким образом вы сможете сохранить файл непосредственно в модуль. Но сейчас этого не делайте.

Вернемся к нашему диалогу. Щелкните по правой ячейке параметра Добавить признак (Add Flag) в разделе Устанавливаемые признаки (After Flags). В списке значений выберите zadanie_polucheno (posiada_zlecenie).

Изображение:Image1251.png

Все значения в списке перечислены в алфавитном порядке. Итак, мы добавили признак zadanie_polucheno (posiada_zlecenie).

Изображение:Image1253.png

Каждый признак характеризуется двумя состояниями: истина (числовое значение 1) или ложь (значение 0). Когда игрок вступает в диалог с Зигфридом, Геральт еще не получил задание. Поэтому значение признака должно быть установлено на 0. Чтобы изменить значение, щелкните по правой ячейке признака zadanie_polucheno (posiada_zlecenie) и введите 0. Затем нажмите клавишу Enter.

Изображение:Image1255.png

Если вы хотите удалить признак из раздела Устанавливаемые признаки (After Flags) (не путать с удалением признаков в окне Признаки (Flags)), щелкните по правой ячейке соответствующего признака и удалите его значение.

Изображение:Image1257.png

Нажмите клавишу Enter. Признак будет автоматически удален из раздела Устанавливаемые признаки (After Flags).

Изображение:Image1259.png

Если вы удалили признак, вы можете снова добавить его в список, выбрав его и установив соответствующее значение, то есть 0.

Теперь выберите реплику "Согласен" (Zrobi się).

Изображение:Image1261.png

В окне свойств (Properties) щелкните по правой ячейке параметра Добавить признак (Add Flag) в разделе Устанавливаемые признаки (After Flags). В списке выберите пункт zadanie_polucheno (posiada_zlecenie).

Изображение:Image1263.png

Так как значение признака автоматически устанавливается на 1, менять его не нужно.

Изображение:Image1265.png

Еще раз щелкните по правой ячейке параметра Добавить признак (Add Flag) и выберите в списке пункт glavar_ubit (herszt_zabity).

Изображение:Image1267.png

Мы только что добавили признак glavar_ubit (herszt_zabity).

Изображение:Image1269.png

Однако, нам нужно установить значение признака на 0, так как главарь разбойников еще не убит. Щелкните по правой ячейке признака glavar_ubit (herszt_zabity) и введите 0. Затем нажмите клавишу Enter.

Изображение:Image1271.png

Эти признаки сообщают игре, какие диалоги должны выводиться на экран и когда. Диалог, который мы создадим чуть позже, будет отображаться лишь в том случае, когда значение признака zadanie_polucheno (posiada_zlecenie) будет равно 1. Мы уже знаем, что это значение признак приобретает после того, как Геральт соглашается выполнить задание Зигфрида, то есть выбирает в диалоге реплику "Согласен" (Zrobi się).

И, наконец, два важных замечания. Свойства признаков диалогов для квестов можно изменить только в разделе Устанавливаемые признаки (After Flags). Их значение будет установлено после выбора соответствующей реплики в игре. Кроме того, когда игрок выбирает в диалоге реплику квеста (то есть реплику, которой присвоен идентификатор квеста), текст этой и последующих реплик не будет выводиться при следующем диалоге.



СТАТЬИ
Диалоги
ВведениеДиалоги для квестовСтандартные диалоги и диалоги для роликовМини-игры в диалогах
Д'жинни

С чего начатьБазовые статьиМодулиПерсонажиДиалогиКвестыЗапуск и тестирование игрыРолики

СкриптыПриложенияМодели персонажейФорматы файлов