DIALOGUE. Выполняем ACS скрипты.

Предисловие

Как вы думаете что произойдет если объединить ACS и Dialogue? Получится самая классная вещь на свете. Те кто работал с ACS, понимают что в нем можно сделать, почти все что захочешь.

Запускаем ACS скрипт в Dialogue.

Пропишите код блока page в Dialogue:

page
{
  name = "God";
  dialog = "What do you want?";
  choice
  {
    text = "i wanna go to heaven";
    special = 80;
    arg0 = 2;
    arg1 = 0;
  }
}

Разберем новые строки:

special = 80;

Слово special указывает действие (Action), которое будет выполняться при выборе choice. В данном случае при выборе «i wanna go to heaven» будет выполнятся скрипт. Число 80, здесь не спроста, оно отвечает за действие «Выполнить скрипт«.

arg0 = 2;
arg1 = 0;

В первом аргументе (arg0) мы задаем номер скрипта, во втором аргументе (arg1), мы задаем карту, на которой установлен скрипт.

По аналогии с привязкой Action в Doom Builder.

Теперь, при выборе «i wanna go to heaven«, выполнится 2-ой скрипт. Ниже, приведен этот скрипт:

script 2 (void)
{
	SetFont("BIGFONT");
	print(s:"OK");
	FadeTo(255,255,255,1.0,1.0);
}

А вот так, выглядит результат.

Добавляем голос.

Разумеется, вы можете проиграть голос через ACS, но есть способ проще. Поэтому я его здесь привожу.

Перед началом, добавьте звуковой файл:

  • Для wad, добавляйте файл между маркерами V_START и V_END.
  • Для pk3, создайте папку Voices, и туда добавляйте файл.

Теперь, чтобы добавить голос, пропишите в блоке page свойство voice, по следующему шаблону.

voice = "название_файла"
  • название_файла — название звукового файла, без расширения.

Ниже, приведен пример моего блока page:

page
{
  name = "God";
  dialog = "What do you want?";
  voice = "NES";
  choice
  {
    text = "i wanna go to heaven";
    special = 80;
    arg0 = 2;
    arg1 = 0;
  }
}

Теперь, диалог стал более живым.

Заключение.

В этом уроке мы объединили ACS и Dialogue, а также, научили нашего персонажа разговаривать. Вы, уже можете делать интересных персонажей. Этот урок, скорее всего, завершает серию уроков по Dialogue.

Разумеется, я не рассказал о Yes/No стейтах в Decorate, но зачем эти ограниченные стейты, когда есть ACS? В любом случае, для подробной информации вы всегда можете почитать потрясающий гайд Zergeant, посмотреть его можно здесь. Я сам по нему учился, поэтому крайне рекомендую.

Итоговый результат.

Пожалуйста отключи блокировщик рекламы, или внеси сайт в белый список!

Please disable your adblocker or whitelist this site!