Gaming
 

Мини-игры в диалогах

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

Теперь мы переходим к созданию диалога с Юзом. Хочу напомнить, что Юз не является NPC. Он заядлый игрок в покер, и в его диалогах мы добавим возможность сыграть в покер. Это позволит Геральту играть с Юзом в кости. Чтобы создать новый диалог, в меню Файл (File) выберите Создать ‐> Диалог (.dlg) (New ‐> Conversation (.dlg)).

Image:Entertainment01.png

Откроется окно Новый диалог (new conversation). Учтите, что при этом должно быть открыто окно свойств (Properties). Напомню, как его открыть: в меню Вид (View) выберите Окна ‐> Свойства (Utility Windows ‐> Properties).

Image:Entertainment02.png

Создадим стандартный диалог с Юзом. Щелкните правой кнопкой мыши по пункту Новый диалог (new conversation). В контекстном меню выберите пункт Создать стандартную реплику (Create Dialog Node).

Image:Entertainment03.png

Дважды щелкните по пустой реплике, которую мы только что создали, и введите следующий текст: "Сыграем?" (Zagramy?). Затем нажмите клавишу Enter.

Image:Entertainment04.png

Теперь выберите реплику "Сыграем?" (Zagramy?) и щелкните по ней правой кнопкой мыши. В контекстном меню выберите пункт Создать стандартный ответ (Create Dialog Reply).

Image:Entertainment05.png

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

Image:Entertainment06.png

Затем снова щелкните правой кнопкой мыши по реплике "Сыграем?" (Zagramy?). В меню выберите пункт Создать стандартный ответ (Create Dialog Reply).

Image:Entertainment07.png

Теперь выберите пустую реплику, которую мы только что добавили. Перейдите в окно свойств (Properties). В разделе Текст реплики (Node Text) найдите параметр Тип диалога (Conv Type) и установите его значение на Gameplay.

Image:Entertainment08.png

Появятся несколько новых параметров.

Image:Entertainment09.png

Юз играет в покер, поэтому значение параметра Тип действия (Action Type) установите на DicePoker. Для этого щелкните по правой ячейке параметра и выберите в списке нужное значение.

Image:Entertainment10.png

Пустая реплика в нашем диалоге автоматически изменится на "Сыграем в покер!" (Let’s play poker!).

Image:Entertainment11.png

Теперь во время разговора Геральта с Юзом будет отображаться иконка игры в кости. Обратите внимание, что Параметры действия (Action Param) тоже изменились.

Image:Entertainment12.png

Здесь ничего менять не нужно. Эти параметры имеют следующие функции.

− Параметр действия 1: Тег соперника (Action Param 1: OpponentTag). Здесь указывается тег персонажа, с которым мы будем играть в кости.

− Параметр действия 2: Скрипт при победе (Action Param 2: OnWinScript). Здесь указывается скрипт, который загружается при победе Геральта.

− Параметр действия 3: Скрипт при поражении (Action Param 2: OnLoseScript). Здесь указывается скрипт, который загружается при проигрыше Геральта. Значение Gameplay для параметра Тип диалога (Conv Type) определяет различные виды развлечений, которыми интересуется игрок. В случае Юза это покер. Добавим Юзу возможность участвовать в кулачных боях. Щелкните правой кнопкой мыши по реплике "Сыграем?" (Zagramy?). В меню выберите пункт Создать стандартный ответ (Create Dialog Reply).

Image:Entertainment13.png

Теперь щелкните правой кнопкой мыши по пустой реплике, которую мы только что добавили. Значение параметра Тип диалога (Conv Type) установите на Gameplay.

Image:Entertainment14.png

Параметру Тип действия (Action Type) присвойте значение Fistfight.

Image:Entertainment15.png

Для кулачных боев используются другие Параметры действия (Action Param).

Image:Entertainment16.png

− Параметр действия 1: Мин. ставка (Action Param 1: Min_Gold). Определяет минимальную ставку.

− Параметр действия 2: Макс. ставка (Action Param 2: Max_Gold). Определяет максимальную ставку.

− Параметр действия 3: Префикс области (Action Param 3: Waypoint_Prefix). Определяет префикс области, необходимый для установки маршрута персонажа.

Наш диалог также изменился. Пустая реплика теперь заменилась на реплику "Посмотрим, на что ты способен!" (Show me what you’ve got!).

Image:Entertainment17.png

Поговорив с Юзом, Геральт сможет сыграть с ним в кости. Кроме того, он сможет принять участие в кулачном бое или просто уйти. Прежде, чем мы продолжим, я опишу остальные значения параметра Тип действия (Action Type) и соответствующие Параметры действия (Action Param).

• Bribe, взятка. Геральт может дать взятку персонажу. Например, чтобы получить дополнительную информацию.

− Параметр действия 1: Сумма (Action Param 1: Amount). Минимальная сумма в оренах (валюта игры "Ведьмак"), которую Геральт должен отдать персонажу.

• Dice, кости. Не используется.

• DicePoker, покер с костями. Параметры уже были описаны выше.

• Drink, алкоголь. Геральт может выпить с персонажем.

− Параметр действия 1: Скрипт при опьянении (Action Param 1: Fail_Script). Здесь указывается скрипт, который загрузится, когда Геральт опьянеет и потеряет сознание.

• Fistfight, кулачный бой. Параметры уже были описаны выше.

• Gift, подарок. Геральт может сделать персонажу подарок.

− Параметр действия 1: Тег подарка (Action Param 1: Gift_Tag). Здесь указывается тег подарка, который персонаж хочет получить от Геральта.

− Параметр действия 2: Тег неподходящего подарка (Action Param 2: Bad_Gift_Tag). Здесь указывается тег подарка, от которого персонаж откажется.

− Параметр действия 3: Скрипт неизвестного подарка (Action Param 3: Unknown_Gift_Script). Здесь указывается скрипт, который загрузится, если Геральт предложит персонажу неизвестный подарок.

• Pay, подкуп. Геральт может заплатить персонажу за информацию или просто дать ему взятку.

− Параметр действия 1: Сумма (Action Param 1: Amount). Минимальная сумма в оренах (валюта игры "Ведьмак"), которую Геральт должен отдать персонажу.

• Signet, кольцо. Геральт может отдать персонажу кольцо.

− Параметр действия 1: Тег кольца (Action Param 1: Signet_Tag). Здесь указывается тег кольца, которое должен отдать Геральт.

− Параметр действия 2: Скрипт неизвестного кольца (Action Param 2: Unknown_Signet_Script). Здесь указывается скрипт, который загрузится, если Геральт предложит персонажу неизвестное тому кольцо.

• Sleep, отдых. Геральт может заплатить персонажу за отдых.

− Параметр действия 1: Цена (Action Param 1: Price). Сумма, которую должен заплатить Геральт за отдых.

• Store, хранилище. Хранилище Геральта. Здесь можно хранить ненужные предметы. Более подробно эта тема описана в другой главе руководства.

• SwordUpgrade, улучшение меча. У персонажа есть кузница. Более подробно эта тема описана в другой главе руководства.

• Trade, торговля. У персонажа есть магазин. Более подробно эта тема описана в другой главе руководства.


Теперь вернемся к нашему диалогу с Юзом. Диалог необходимо сохранить. Для этого в меню Файл (File) выберите пункт Сохранить как... (Save as...).

Image:Entertainment18.png

Откроется стандартное окно Windows для сохранения файлов. Диалоги необходимо сохранять в каталоге Dialogues. Перейдите в этот каталог, введите имя файла dialog_yuza (jozek_rozmowa) и нажмите кнопку Сохранить. Учтите, что имя файла должно содержать не более 16 символов. В противном случае редактор D’jinni просто не увидит этот файл. Убедитесь, что сохраняете файл в формате dlg.

Image:Entertainment19.png

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

Image:Entertainment20.png

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

Image:Entertainment21.png

Звездочка перед текстом в заголовке окна означает, что последние изменения в этом файле не были сохранены. Теперь осталось присвоить диалог Юзу. Так как это второстепенный персонаж, а не NPC, присвоить диалог можно в шаблоне Юза. Сделать это можно с помощью окна обзора ресурсов (Resources Explorer). В меню Вид (View) выберите Окна ‐> Обзор ресурсов (Utility Windows ‐> Resources Explorer).

Image:Entertainment22.png

В левой части экрана откроется окно обзора ресурсов (Resources Explorer).

Image:Entertainment23.png


Шаблон Юза мы сохранили в каталоге Data\Templates\Characters\Commoners под именем nash_yuz.utc (nasz_jozek.utc). Чтобы открыть этот файл, раскройте ветвь, щелкнув по знаку плюса рядом с названием каталога.

Image:Entertainment24.png

Затем раскройте ветвь Characters, щелкнув по знаку плюса рядом с ее названием.

Image:Entertainment25.png

И, наконец, раскройте ветвь Commoners, щелкнув по знаку плюса рядом с ее названием.

Image:Entertainment26.png

Теперь дважды щелкните по файлу nash_yuz.utc (nasz_jozek.utc).

Image:Entertainment27.png

В правой части экрана откроется окно nash_yuz.utc (nasz_jozek.utc).

Image:Entertainment28.png

В разделе Статистика (Statistics) щелкните по желтой иконке в правой ячейке параметра Диалог (Conversation).

Image:Entertainment29.png

Откроется стандартное окно Windows для загрузки файлов. Перейдите в каталог Data\Dialogues и откройте файл dialog_yuza.dlg (jozek_rozmowa.dlg). Таким образом, мы указали нужный диалог в шаблоне Юза.

Image:Entertainment30.png

Теперь необходимо дать Юзу несколько оренов. В противном случае, он откажется с нами играть. Откройте снаряжение Юза. Для этого щелкните по синей иконке в правой ячейке параметра Содержимое снаряжения (Inventory Contents).

Image:Entertainment31.png

Откроется окно Содержимое снаряжения (Inventory Contents).

Image:Entertainment32.png

В разделе Доступные предметы (Available Items) раскройте ветвь Ценные предметы (Valuables), щелкнув по знаку плюса рядом с названием ветви.

Image:Entertainment33.png

Выберите орены Orens (it_gold_002.uti).

Image:Entertainment34.png

Удерживая левую кнопку мыши, перетащите объект в раздел Хранилище (Repository).

Image:Entertainment35.png

Отпустите левую кнопку мыши. Можете повторить это действие несколько раз, чтобы дать Юзу больше оренов.

Image:Entertainment36.png

Затем нажмите кнопку OK в окне Содержимое снаряжения (Inventory Contents). Теперь необходимо сохранить обновленную версию файла nash_yuz.utc (nasz_jozek.utc). Звездочка перед именем файла в заголовке окна означает, что последние изменения не были сохранены.

Image:Entertainment37.png

Чтобы сохранить файл под тем же именем, т. е. nash_yuz.utc (nasz_jozek.utc), выберите в меню Файл (File) пункт Сохранить nash_yuz.utc (Save nasz_jozek.utc).

Image:Entertainment38.png

Если в меню нет пункта Сохранить nash_yuz.utc (Save nasz_jozek.utc) или в нем указано другое имя файла, это, возможно, означает, что окно nash_yuz.utc (nasz_jozek.utc) в данный момент не является активным. Чтобы активировать окно, щелкните по его заголовку, а затем выберите в меню Файл (File) пункт Сохранить nash_yuz.utc (Save nasz_jozek.utc). Вот и все. Диалог с Юзом готов.