Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
08.01.2011 14:17

soflot
Участник
Откуда: Киев, Украина
Зарегистрирован: 23.11.2007
Сообщений: 27
Вебсайт

[[ ни дня без строчки ]]

разговоры: говорить, спросить про ... , рассказать про ...

Разбираюсь с RTADS, хочу сделать чтобы с персонажем можно было хоть немного поговорить.
Насколько я понял, "Говорить" выдаёт Actor.talkdesc. Там можно проверять какие-нибудь значения и выдавать разные фразы, но нельзя выбрать заданную тему разговора (т.е. "говорить с Джеком про забор")

Я не совсем разобрался как спрашивать о чём-то. Я знаю что вызывается Actor.askWord(word, lst) и внутри можно сравнивать переданный параметр word с какими-то значениями и выдавать нужные фразы. (например,  "спросить Джека про забор", а потом проверять if(word='забор'){...}    ), если слово распознано то return true а если не распознано то return nil, и тогда выведется "я ничего про это не знаю"
Или может быть надо использовать Actor.verDoAskAbout(actor, io) ?

Насчёт "рассказать про" вообще мало понятно, я понял только что вызывается Actor.verDoTellAbout(actor, io), где io - это тот объект, про который мы хотим рассказать.

Подскажите пожалуйста, как правильно использовать "спросить" и "рассказать" в RTADS?
Что предпочтительнее для "спросить" - askWord или verDoAskAbout?
Почему нет аналога askWord для "рассказать"? (а если есть, то как называется?)
Не получается использовать слова, не связанные с объектами. Т.е. если в описании локации есть "гора", но нет такого объекта, то нельзя спросить персонажа про гору, даже если проверять  if(word='гора'), т.к. до эого участка ничего не дойдёт, парсер сразу выдаст  что не знает слова "гора". Это так и задумано, надо делать что-то вроде FloatingItem чтобы про этот объект можно было спросить или рассказаь?
Есть ли какие-нибудь статьи по разговорам в TADS/RTADS, или хорошо документированные исходники игр с разговорами?

Неактивен

0    0    #2
08.01.2011 17:05

soflot
Участник
Откуда: Киев, Украина
Зарегистрирован: 23.11.2007
Сообщений: 27
Вебсайт

[[ ни дня без строчки ]]

Re: разговоры: говорить, спросить про ... , рассказать про ...

Почитал ещё мануал по RTADS, нашёл про "Диалог с актерами". Стало понятнее, но там мало, всё равно остались вопросы:
какой из методов предпочтительнее - Actor.askWord или Actor.doAskAbout?
Использование слов без соответствующих объектов
какие есть хорошо документированные исходники игр с разговорами?

Не совсем понятно что должно быть в verDoTellAbout, а что в doTellAbout. По идее в verDoTellAbout идёт верификация, проверяются какие-то условия и какие-то неверные действия отклоняются. Но неясно как отклонять а как пропускать - то ли return true, то ли pass verDoTellAbout...
И как вообще идеологически правильно использовать эти 2 метода? первым отделять грубые ошибки, а во втором уже проверять какие-то специфические условия? Можете привести какие-нибудь примеры?

Неактивен

0    0    #3
10.01.2011 23:26

soflot
Участник
Откуда: Киев, Украина
Зарегистрирован: 23.11.2007
Сообщений: 27
Вебсайт

[[ ни дня без строчки ]]

Re: разговоры: говорить, спросить про ... , рассказать про ...

Спасибо, uux, мне этого пока достаточно.
Особенно спасибо за уточнение насчёт "отклоняете Вы посредством вывода сообщения на экран, а пропускаете - тем, что ничего не выводите.". Я бы до такого вряд ли бы додумался сам.
Я думаю этого всего мне вполне хватит чтобы реализовать задуманное.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru