В примере из демонстрационной игры (http://rtads.org/man/TADSSMPL.HTM), следующая штука выходит:
Чтобы взять череп с пьедестала, нужно предварительно положить на него камень, тогда не сработает ловушка... но, если забрать только что положенный камень, ловушка так же не сработает:), ведь, по логике самого метода, при отсутствии на пьедестале объекта, вышеназванного бага, не должно быть... Сам метод:
doTake(actor) = { if (self.location <> pedestal or smallRock.location = pedestal) { pass doTake; } else { "Едва ты успеваешь поднять череп, как из стен вылетает целая туча отравленных стрел! Ты пытаешься увернуться от них, но их слишком много!"; die(); } }
Отредактировано Kephra (09.04.2011 19:52)
Неактивен
Kephra написал:
У меня вопрос по поводу игры-примера для информа...
Слеши в имени объекта используются только при выводе названия.
При вводе же рассматриваются ключевые слова указанные в перечислении name, с различными окончаниями. В обоих случаях учитывается род объекта (male, female, neuter, plural).
При вводе просматриваются грамматики для глаголов, заданные в библиотеке или вручную, и падеж учитывается. Однако там где он не столь важен, сработает существительное и в любом падеже.
Собственно как задано стандартное поведение в библиотеке (cAcc -- аккузатив, винительный падеж):
! "положи"/"клади"/"вставь"/"поместить"/"сунуть"
Verb 'лож'
'класт' 'клад'
'став'
'мест' 'мещ'
'сов' 'су'
* cAcc_multiheld -> Drop
* cAcc_multiexcept 'в'/'во' cAcc_noun -> Insert
* 'в'/'во' cAcc_noun cAcc_multiexcept -> Insert reverse
* cAcc_multiexcept 'внутрь' cGen_noun -> Insert
* 'внутрь' cGen_noun cAcc_multiexcept -> Insert reverse
* cAcc_multiexcept 'на' cAcc_noun -> PutOn
* 'на' cAcc_noun cAcc_multiexcept -> PutOn reverse;
Неактивен
Kephra написал:
yandexx написал:
Слеши в имени объекта используются только при выводе названия.
При вводе же рассматриваются ключевые слова указанные в перечислении name, с различными окончаниями. В обоих случаях учитывается род объекта (male, female, neuter, plural).
При вводе просматриваются грамматики для глаголов, заданные в библиотеке или вручную, и падеж учитывается. Однако там где он не столь важен, сработает существительное и в любом падеже.Ага спасибо, для меня новичка, это пока сложно для понимания... но что-то, да и дошло (если верно), значит, прописать правильное падежное склонение для отдельного слова-существительного, можно, но только в соответствующей библиотеке? А если возможно, то как? Можете привести пример, именно для нашего "сука"...
Когда падеж не важен, то всё и так работает. Но вот, например, код из моей игры Робото, где определён нестандартный глагол:
Verb 'маз' ! (на)мазать
* cAcc_noun -> Smear
* cIns_noun cAcc_noun -> Smear ! вазелином что-то
* cAcc_noun cIns_noun -> Smear reverse ! что-то вазелином
* cAcc_noun 'на' cAcc_noun -> Smear ! вазелин на что-то
* cAcc_noun 'по' cDat_noun -> Smear; ! вазелин по чему-то
В игре можно только вазелином что-то мазать было, но такое описание подойдёт для чего угодно. cIns -- творительный падеж, cAcc -- винительный. И поэтому введённые команды "намазать доску клеем" и "намазать клеем доску" будут восприняты правильно. Порядок существительных здесь важен -- что к чему применяется. Без указанных падежей это бы не сработало.
Неактивен