props
This commit is contained in:
parent
6cf21b2c5d
commit
25f8657734
|
@ -79,7 +79,7 @@ tabl = obj {
|
||||||
|
|
||||||
dsc -- описатель объекта. Он будет выведен в динамической части сцены. Фигурными скобками отображается фрагмент текста, который будет являться ссылкой в графическом интерпретаторе.
|
dsc -- описатель объекта. Он будет выведен в динамической части сцены. Фигурными скобками отображается фрагмент текста, который будет являться ссылкой в графическом интерпретаторе.
|
||||||
|
|
||||||
act -- это обработчик, который вызывается при действии пользователя (действие на объект сцены). Его задача -- возвращение строки текста, которая станет частью событий сцены.
|
act -- это обработчик, который вызывается при действии пользователя (действие на объект сцены). Его задача -- возвращение строки текста, которая станет частью событий сцены, или логического значения (см. раздел 5).
|
||||||
|
|
||||||
ВНИМАНИЕ: в пространстве имен lua уже существуют некоторые объекты (таблицы), например: table, io, string... Будьте внимательны, при создании объекта. Например, в приведенном примере используется tabl, а не table.
|
ВНИМАНИЕ: в пространстве имен lua уже существуют некоторые объекты (таблицы), например: table, io, string... Будьте внимательны, при создании объекта. Например, в приведенном примере используется tabl, а не table.
|
||||||
|
|
||||||
|
@ -188,6 +188,22 @@ function isForSave(k)
|
||||||
return string.find(k, '_') == 1 or string.match(k,'^%u')
|
return string.find(k, '_') == 1 or string.match(k,'^%u')
|
||||||
}}}
|
}}}
|
||||||
|
|
||||||
|
Иногда может понадобиться обработчик, который совершал бы некоторое действие, но не выводил никакого описания. Например:
|
||||||
|
{{{
|
||||||
|
button = obj {
|
||||||
|
nam = "кнопка",
|
||||||
|
dsc = "На стене комнаты видна большая красная {кнопка}.",
|
||||||
|
act = function (s)
|
||||||
|
here().dsc = [[После того как я нажал на кнопку, комната преобразилась. Книжный шкаф куда-то исчез вместе со столом и комодом, а на его месте появился странного вида аппарат.]];
|
||||||
|
return true;
|
||||||
|
end,
|
||||||
|
}
|
||||||
|
}}}
|
||||||
|
В данном случае обработчик `act` нужен для того, чтобы поменять описание комнаты, и не нужно, чтобы чтобы он выводил результат действия. Для отключения результата можно вернуть из обработчика значение true -- это будет означать, что действие успешно выполнено, но не требует дополнительного описания.
|
||||||
|
|
||||||
|
Если необходимо показать, что действие невыполнимо, можно вернуть из обработчика `act` значение false или nil. При этом будет отображено описание по умолчанию, заданное с помощью обработчика `game.act`. Обычно описание по умолчанию содержит описание невыполнимых действий.
|
||||||
|
|
||||||
|
|
||||||
== 6. Инвентарь ==
|
== 6. Инвентарь ==
|
||||||
|
|
||||||
Простейший вариант сделать объект, который можно брать -- определить обработчик tak.
|
Простейший вариант сделать объект, который можно брать -- определить обработчик tak.
|
||||||
|
|
Reference in a new issue