Forum.iFiction.Ru

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

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

Вы не зашли.

   #1
02.02.2008 22:14

fireton
некто с бородой (+209, -52)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1047
Вебсайт

Тон

набрать воды

Вот, Гранд, я попытался последовать твоему совету. Вот мой код:

Код:

modify typeVerb
verb = '' // чтобы можно было набрать воды... печатать в этой игре ничего не придется...
;

pourVerb : deepverb 
 verb = 'налить' 'налей' 'залить' 'залей' 'набрать' 'набери'
    sdesc = "налить"
    prepDefault = inPrep
    ioAction(inPrep) = 'PourIn'
;

Не работает. Ошибка компиляции:
kaschey.t(62): error TADS-452: warning:  same verb 'набрать' defined for two objects
kaschey.t(62): error TADS-452: warning:  same verb 'набери' defined for two objects


Так что не получится...

Можно изгальнуться с перенаправлением обработчиков ioTypeIn (или вроде того), но оно того не стоит, как мне кажется. И потом, появится возможность "напечатать воду в флакон". wink

Неактивен

   #2
02.02.2008 22:59

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 235

Re: набрать воды

Код:

modify typeVerb
verb = '' // чтобы можно было набрать воды... печатать в этой игре ничего не придется...
;

modify добавляет лексемы к verb, ф не заменяет их. Используй replace.

Неактивен

   #3
02.02.2008 23:49

fireton
некто с бородой (+209, -52)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1047
Вебсайт

Тон

Re: набрать воды

modify добавляет лексемы к verb, ф не заменяет их. Используй replace.

Не помогает. Тот же результат.

Неактивен

   #4
03.02.2008 13:08

goraph
Участник (+366, -120)
Зарегистрирован: 16.04.2007
Сообщений: 466

Основная добродетель гражданина есть недоверие.

Re: набрать воды

Тут delword нада использовать

Неактивен

   #5
03.02.2008 13:57

fireton
некто с бородой (+209, -52)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1047
Вебсайт

Тон

Re: набрать воды

Написал в commonInit():

Код:

delword(typeVerb, &verb, 'набрать');
delword(typeVerb, &verb, 'набери');
addword(pourVerb, &verb, 'набрать');
addword(pourVerb, &verb, 'набери');

Не работает. Все равно предлагает напечатать.
Какие еще будут предложения? wink

Неактивен

   #6
03.02.2008 17:38

uux
Участник (+658, -37)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1533

Re: набрать воды

Вообще что-то странное. Я сваял тестовую игру со стандартными библиотеками, определил там replace (для typeVerb) и modify (для takeVerb - отличается от заданного по условию задачи, но это непринципиально), и все заработало так, как ожидалось ("набрать" стало синонимом "взять"). МОжет, еще раз внимательнее псмотреть на исходники?..

Неактивен

   #7
03.02.2008 17:53

fireton
некто с бородой (+209, -52)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1047
Вебсайт

Тон

Re: набрать воды

МОжет, еще раз внимательнее псмотреть на исходники?..

Ну, я в самом начале привел пример того, как написано у меня. Не работает.
Может, дело в том, что у меня все раскидано по инклюдам? Такое может быть?

Неактивен

   #8
03.02.2008 17:59

GrAndrey
папа RTADS и Бяка (+37, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1200
Вебсайт

меньше слов

Re: набрать воды

fireton написал:

Гранд, я попытался последовать твоему совету. ....
Не работает. Ошибка компиляции:
kaschey.t(62): error TADS-452: warning:  same verb 'набрать' defined for two objects
kaschey.t(62): error TADS-452: warning:  same verb 'набери' defined for two objects


Так что не получится...

Я сам не понял механику происходящего, но у меня работает. Попробуй изменить глагол печатать после кода глагола "набрать".

Неактивен

   #9
03.02.2008 18:11

fireton
некто с бородой (+209, -52)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1047
Вебсайт

Тон

Re: набрать воды

Я сам не понял механику происходящего, но у меня работает. Попробуй изменить глагол печатать после кода глагола "набрать".

Попробовал. Тот же результат. sad Ошибка компиляции.

Решил проблему. С помощью addword/delword. В предыдущий раз не получалось потому, что у меня commonInit был перекрыт в главном файле, а я об этом забыл. В общем, теперь воду можно набрать. Всем спасибо.

Неактивен

Powered by PunBB
© copyright 2001–2018 iFiction.Ru