casegen [ beg end csID; return ICVowel (csID, beg, end, 'о', 0); ]
Это код, обрабатывающий беглую гласную. В ваших случаях это «о» и «е».
Попробуйте следующие исправления:
Object flint "кус/о/к/ кремня" plato has male, with name 'кремн' 'кремен' 'минерал', description "Он очень острый!", casegen [ beg end csID; return ICVowel (csID, beg, end, 'о', 0); ]; Object stone "кам/е/н/ь" plato has male, with name 'камен' 'камн', description "Это небольшой и гладкий булыжник.", casegen [ beg end csID; return ICVowel (csID, beg, end, 'е', 0); ];
Косые черты отделяют изменяемые части слова от неизменяемых.
Отредактировано Cheshire (19.12.2014 08:18)
Неактивен
Но. У меня частенько были проблемы с такой обработкой беглых гласных. И когда в очередной раз я не смог с ней справиться, просто написал функцию, перечисляющую все возможные падежные формы (TADS-style). Но для этого пришлось править библиотеку.
Если не получится справиться стандартными методами, могу выложить код.
Неактивен
Свойство объекта «name» — это массив, в котором перечисляются все текстовые строки, по которым игрок будет обращаться к этому объекту. При этом, здесь нужно описывать только неизменяемые части слова, окончания программа вроде как распознает сама (случай с беглыми гласными — исключение). Однако, когда объект описывается двумя словами, начинаются проблемы при распознавании. Реакция часто непредсказуемая. Может, нужно было поглубже изучить библиотеку, не знаю.
А вот в этой части кода: «Object flint "кус/о/к/ кремня" plato» и в функции «casegen» описывается то, как программа будет сама называть объект в системных сообщениях.
Vladimir написал:
Вставил ваш код, заработало, спасибо. Но, не понимал команду ВЗЯТЬ КУСОК. Когда добавил 'кус' к 'кремн' 'кремен' 'минерал', то программа стала на команду
ВЗЯТЬ КУСОК КРЕМНЯ выводить "Чем вы хотите взять кусок кремня из?".
Попробуйте свойство «name» у куска кремня написать следующим образом:
with name 'кусок' 'куск' 'кремня' 'минерал',
В словосочетании ведь меняется только «кусок». «Кремня» остаётся всегда неизменным.
Отредактировано Cheshire (19.12.2014 10:29)
Неактивен
В такой ситуации корректнее будет не исправлять свой файл библиотеки, а в игре расширить грамматику глагола:Extend 'рез' 'реж'
* cAcc_noun cIns_held -> Cut;
Неактивен