– Учитель, двигать камни это одно, а тут… совсем другое дело.
– Нет, не другое. Другое в голове лишь. Разучиться должен ты, чему учился.
– Хорошо, я попробую.
– Нет, не пробуй. Делай! Или нет. Никаких попыток.
Разговор Йоды и Люка Скайокера во время его тренировок на планете Дагоба





Сколько глобус ни крути, там Fess-Style не найти...
Сайт Fess'a » Диалоги ! Поговори с ботом. - Форум
[ Новые сообщения · Участники · Правила форума · Поиск ]
  • Страница 1 из 1
  • 1
Форум » Форум Редакторов » Редактор ARMA » Диалоги ! Поговори с ботом.
Диалоги ! Поговори с ботом.
ShatenДата: Понедельник, 16.10.2017, 04:29 | Сообщение # 1

Сообщений: 17
Статус:
Для создания диалога нам нужно создать два файла и папку:
знакомый многим init.sqf , briefing.bikb и папка Sound.
Оба файла и папка создаются в папке с миссией.

В init.sqf пишем:

name1 kbAddTopic ["briefing", "briefing.bikb", ""];
name2 kbAddTopic ["briefing", "briefing.bikb", ""];

где name - имя юнита в редакторе, с которым будем говорить или player, если говорить будет игрок. Если нужно говорить с несколькими, то повторяем строчку с новыми именами.

В briefing.bikb пишем:

class Sentences
{
class ИМЯ ФРАЗЫ 1
{
text = "Текст фразы 1, который высветится субтитрами.";
speech[] = {"\Sound\Имя звука1.ogg"};
class Arguments {};
};

class ИМЯ ФРАЗЫ 2
{
text = "Текст фразы 2, который высветится субтитрами.";
speech[] = {"\Sound\Имя звука2.ogg"};
class Arguments {};
};
};

class Arguments{};
class Special{};
startWithVocal[] = {hour};
startWithConsonant[] = {europe, university};

Где ИМЯ ФРАЗЫ 1- это имя класса. Назовите как хочется, хоть BAZAR1, но лучше по-своему, что бы не пересекалось с именами других классов. Латиницей и без пробелов.
текст фразы 1- это то, что будет говорить один из беседующих, текст, который будет на экране.
Имя звука- это запись фразы которую произнесет один из беседующих. То есть то же что выше, но вслух и шевеля губами. Формат .ogg
Звуковые файлы кидаем в папку Sound.

Что бы заставить бота вам что-то сказать, понадобится команда:

name kbTell [player, "briefing", "ИМЯ ФРАЗЫ 1"];
waitUntil {name kbWasSaid [player, "briefing", "ИМЯ ФРАЗЫ 1", 3]};

Первая строчка: бот с именем name говорит игроку ФРАЗУ 1
Вторая строчка проверяет сказал ли бот ФРАЗУ 1 до конца- это удобно, если в том же скрипте после фразы последуют другие фразы или команды. Бот сначала договорит, потом продолжится выполнение скрипта.

Эту команду можно запаковать в скрипт и запускать триггером.
Не забудьте назвать ботов именами в редакторе.

Это простой диалог без меню выбора. Позже напишу как с менюшкой сделать. Когда сам разберусь.
 
Форум » Форум Редакторов » Редактор ARMA » Диалоги ! Поговори с ботом.
  • Страница 1 из 1
  • 1
Поиск: