Вот, Гранд, я попытался последовать твоему совету. Вот мой код:
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 (или вроде того), но оно того не стоит, как мне кажется. И потом, появится возможность "напечатать воду в флакон".
Неактивен
Написал в commonInit():
delword(typeVerb, &verb, 'набрать'); delword(typeVerb, &verb, 'набери'); addword(pourVerb, &verb, 'набрать'); addword(pourVerb, &verb, 'набери');
Не работает. Все равно предлагает напечатать.
Какие еще будут предложения?
Неактивен
Вообще что-то странное. Я сваял тестовую игру со стандартными библиотеками, определил там replace (для typeVerb) и modify (для takeVerb - отличается от заданного по условию задачи, но это непринципиально), и все заработало так, как ожидалось ("набрать" стало синонимом "взять"). МОжет, еще раз внимательнее псмотреть на исходники?..
Неактивен
МОжет, еще раз внимательнее псмотреть на исходники?..
Ну, я в самом начале привел пример того, как написано у меня. Не работает.
Может, дело в том, что у меня все раскидано по инклюдам? Такое может быть?
Неактивен
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
Так что не получится...
Я сам не понял механику происходящего, но у меня работает. Попробуй изменить глагол печатать после кода глагола "набрать".
Неактивен
Я сам не понял механику происходящего, но у меня работает. Попробуй изменить глагол печатать после кода глагола "набрать".
Попробовал. Тот же результат. Ошибка компиляции.
Решил проблему. С помощью addword/delword. В предыдущий раз не получалось потому, что у меня commonInit был перекрыт в главном файле, а я об этом забыл. В общем, теперь воду можно набрать. Всем спасибо.
Неактивен