Понедельник, 25 Ноября 2024, 12:46

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как создать говорящего бота?
monaxДата: Суббота, 21 Ноября 2009, 14:11 | Сообщение # 1
был не раз
Сейчас нет на сайте
Мне нужно сделать бота, который мог бы разговаривать со мной...
Ну например:
Я подохожу к нему а он мне что-то говрит.. И я могу выбрать что ему ответить.. Если например ответил одно, то он тебе другое... Если выбрал другой вариант ответа, то и он тебе в ответ другой вариант...
Как это осуществить?
Ну я хочу чтоб это было похоже как в Готике..


"Они забиди, а мы нет! Они победили, а мы проиграли.."-Андрей Аршавин - капитан сборной РФ по футболу!
simtikoДата: Суббота, 21 Ноября 2009, 14:39 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
То есть выбирать ответы из меню? Так это же легче простого в любом языке и конструкторе.Если же хочешь без меню, то есть типа.

ты:привет
бот:а..это опять ты?
ты:А мы встречались?
бот:кто Мы? И сколько Вас?
ты:давай лучше о другом
бот:давай
ты:у тебя есть хобби?
бот:хобби?Этим вы называете тупые действия которые дают вам удовольствие?
ты:Они совсем не тупые
бот:Да ну?
...

Что то типа этого?Я делал подобную говорящую программу на Турбо Паскале, она знала 100 слов, и не плохо говорила.

П.С. В готику не играл.

Добавлено (21.11.2009, 14:39)
---------------------------------------------
Пардон.Не заметил где находится тема.В 3д раде есть (кажется собственный) скриптовый язык.С помощью него и нужно делать.Без языка в 3D RAD-е никак

monaxДата: Суббота, 21 Ноября 2009, 14:41 | Сообщение # 3
был не раз
Сейчас нет на сайте
Quote (simtiko)
---------------------------------------------Пардон.Не заметил где находится тема.В 3д раде есть (кажется собственный) скриптовый язык.С помощью него и нужно делать.Без языка в 3D RAD-е никак

Всмылсе? Извини не понял.. Можно про это поподробнее?
PS Я хочу что ьыло как через меню..


"Они забиди, а мы нет! Они победили, а мы проиграли.."-Андрей Аршавин - капитан сборной РФ по футболу!
simtikoДата: Суббота, 21 Ноября 2009, 14:45 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
В 3D RAD-е есть язык программирования с помощью которого ты и сделаешь этот самый диалог

---------------------------------------------------------------------------------------------------------------------------------- -------------------
Что такое язык программирования

Сообщение отредактировал simtiko - Суббота, 21 Ноября 2009, 14:47
anisimovДата: Суббота, 21 Ноября 2009, 14:47 | Сообщение # 5
старожил
Сейчас нет на сайте
Если речь идёт об озвучке вы должны записать звук зараннее и сопоставить его квестовому диалогу. Всё зависит от конкретного случая. Это делают управляющими скриптами. Смотри программирование игрового АИ. В некоторых средах это можно делать визуально.

http://vkontakte.ru/id56359373
Строю Город, обустраиваю Остров. Присоединяйтесь.


Сообщение отредактировал anisimov - Суббота, 21 Ноября 2009, 14:47
monaxДата: Суббота, 21 Ноября 2009, 14:47 | Сообщение # 6
был не раз
Сейчас нет на сайте
Quote (simtiko)
В 3D RAD-е есть язык программирования с помощью которого ты и сделаешь этот самый диалог

Что-то не наблюдал... Но буду искать =)


"Они забиди, а мы нет! Они победили, а мы проиграли.."-Андрей Аршавин - капитан сборной РФ по футболу!
simtikoДата: Суббота, 21 Ноября 2009, 14:49 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
monax, Прочти это поскольку если даже найдешь где писать скрипты в 3д раде, ничего не поймешь.
AkyltistДата: Суббота, 21 Ноября 2009, 15:18 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Эх, ну не дадите Вы мне нормально сегодня поразмыслить в каком направлении работать. Эх даю наводку.

Не буду уходить в глубину. Допустим наша диалоговая строка просто картинка.
Нам необходимо отследить нажали ли мы на нее или нет, и если нажали то на какой вриант и в зависимости от выбора, показывать следующий диалог.

И так кидаем в проект CamChase, Sprite, Script, TextPrint:

Связываем их и настраиваем,например сделаем последний не видимым при старте:

Открываю руководство по Angel Script ага, почти самое верхнее то что нужно:
Пишем код на нажатие на спрайт:



void Main()
{
//mouse pointer is hovering over sprite
if (iMouseButtonDown(0))
{
//left mouse button is pressed
iObjectStart(OBJ_44);
iObjectShow(OBJ_44);
//terminate script
iScriptStop();
}
}



OBJ_44 ---- смотрим этот параметр в самом скрипте если есть связь, то он сбоку выдает для каждого связанного его ID.

Я не знаю сохраняет ли Радуга в скриптах текст на русском нормально по этому юзаем не родной.
Ну и чтоб Вам совсем не думать головой и не напрягать извилинки )) Прикрепляю демо.

Прикрепления: 5588377.rar (5.4 Kb)
MogilevДата: Понедельник, 30 Ноября 2009, 17:13 | Сообщение # 9
был не раз
Сейчас нет на сайте
Akyltist, Я не совсем согласен, человек ведь тебе приводит в пример Готику. Как же вместо спрайта ты хочешь использовать 3D модель?? Да и насколько мне кажется эта версия скрипта не совсем корректна:

void Main()
{

if (iMouseButtonDown(0))
{
{
if (IN_23>0)
{
iObjectStart(OBJ_44);
iObjectShow(OBJ_44);

iScriptStop();
}
}
}

Вместо IN_23 подставляете цифру вашего спрайта.

Так думаю корректнее...

А что касается автора темы, то от себя могу посоветовать, если твой NPC стоит на месте, то можно использовать EventOnLocation(на сколько я понял работу этого компонента). Т.е фрагмент территории непосредственно перед NC для создание ивента(разговора с ним).

AkyltistДата: Понедельник, 30 Ноября 2009, 17:38 | Сообщение # 10
заслуженный участник
Сейчас нет на сайте
Quote
if (IN_23>0)

да все правильно, необходимо делать проверку с какого элемента пришла команда.
MogilevДата: Понедельник, 30 Ноября 2009, 23:09 | Сообщение # 11
был не раз
Сейчас нет на сайте
Akyltist
Посмотри эту тему
http://www.gcup.ru/forum/58-3126

  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг