146
правок
Изменения
Перейти к навигации
Перейти к поиску
→Неочевидные приемы
</pre>
Ещё один способ - вставить в строку с двойными кавычками вызов изменяемого свойства. Например:
<pre>
vase : item
gdesc = 'ваза/1ж'
ldesc =
{
if (not self.broken)
"Хрупкая фарфоровая ваза. ";
else
"Из-за <<negodyai>> ваза превратилась в груду черепков. ";
}
broken = nil
negodyai=''
...
doDrop(actor) =
{
"Ваза была так тонка, что разбилась при падении. ";
self.broken := true;
negoyai:=dToS(actor,rdesc);
// функция dToS перехватывает вывод на экран "двукавычного"
// свойства rdesc и присваевает переменной negoyai
pass doDrop;
}
;
</pre>
Здесь мы превратили свойство rdesc действующего актера из строки с двойными кавычками в строку с одинарными и записали в объекте. Это свойство мы можем менять по ходу всей игры, и это будет менять описание. В данном случае - виновника происшествия.
==Усложнение принимаемых фраз==