Я совсем расстроен. Создаю объекты: "большой сундук" и "маленький сундук". Оба fixeditem, openable
. Далее имею вот такое:>открыть большой сундук
Что ты хочешь открыть?
>большой сундук
Я не знаю как открыть большой сундук.
>открыть
Что ты хочешь открыть?
>сундук
Который "сундук" Вы имеете в виду: большой сундук или маленький сундук?
>большой
Открыт.
Офигеть. Если так пойдет дальше, то я не успею исправить все до дедлайна КРИЛ.
Андрей, помоги, пожалуйста!
Отредактировано fireton (10.01.2008 01:55)
Неактивен
fireton написал:
Похоже, парсер принимает "открыть" за
UnlockWith
...
Может, так как:Код:
openVerb: deepverb verb = 'открыть' 'открой' 'отворить' 'отвори' 'раскрыть' 'раскрой' 'распахнуть' 'распахни' 'отк' 'откр' sdesc = "открыть" doAction = 'Open' ioAction(withPrep)='UnlockWith' type=1 ;Если это может помочь, то в локации еще присутствует дверь...
UPD. Я проверил. Даже если в локации ничего, кроме "большого сундука" не присутствует, то ошибка остается... Это серьезный прокол в библиотеках. Его надо исправлять как можно скорее... Я уже не в состоянии. Блин, надеялся сегодня игру на бета-тест отправить...
Пожалуйста, пришли, код.
Неактивен
fireton написал:
Если в комнате больше одного
openable
объекта с совпадающимnoun
(два сундука, например), то начинается кошмар. С дверями, что показательно, все нормально. Если сделать несколько дверей в комнате, то парсер нормально обрабатывает предложения вида "открыть небольшую дверь" и уточняющие запросы "Какую дверь вы хотите открыть?" тоже нормально работают...
Баг генератора падежей: добавляет лишнюю лексему прилагательного 'большой#t'. В результате "открыть большой сундук" превращается в "открыть с помощью большой сундук".
Пока могу предложить только внимательно следить за выдачей генератора для наименований с прилагательными. Я написал новый генератор, но не доделал выдачу конечного кода. К сожалению, разрабатывал в вижуал Си, а он у меня давно не установлен и руки не доходят поставить.
Неактивен
На свете есть только три "магических" суффикса:
Первый "#t"- указатель творительного падежа, выявляющий скрытую связку "с помощью".
Второй "#d" - дательного, дарующий глупому англоязычному ТАДСу предлог "to"
Третий, самый образный и красочный - "#r", который встречается лишь в прилагательных, следующих за существительным. Без него не потекут "реки времени" и не прорастет "древо жизни".
В твоем случае нужно лишь удалить 'большой#t' - потому, что это не творительный падеж. Остальные маркеры оставь, они могут пригодиться игрокам.
Неактивен
openable и openVerb совершенно не при чем. Просто учет падежей происходит без учета доступности объекта. Причем, как выходит, даже если метка есть у другого предмета с такой лексемой! Есть над чем подумать. Также пугает случай неизменяемых слов.
fireton - Метка #t должна быть только у лексем с творительным падежом, остальные удали и будет тебе счастье.
Неактивен
Шли код, выясним.
Неактивен