From 25f8657734ae7f583f3c3a618b4557679b7a3a75 Mon Sep 17 00:00:00 2001 From: "p.kosyh" Date: Tue, 12 Jan 2010 05:03:07 +0000 Subject: [PATCH] props --- doc/writing_games.txt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/doc/writing_games.txt b/doc/writing_games.txt index 74ebccf..d7145f6 100644 --- a/doc/writing_games.txt +++ b/doc/writing_games.txt @@ -79,7 +79,7 @@ tabl = obj { dsc -- описатель объекта. Он будет выведен в динамической части сцены. Фигурными скобками отображается фрагмент текста, который будет являться ссылкой в графическом интерпретаторе. -act -- это обработчик, который вызывается при действии пользователя (действие на объект сцены). Его задача -- возвращение строки текста, которая станет частью событий сцены. +act -- это обработчик, который вызывается при действии пользователя (действие на объект сцены). Его задача -- возвращение строки текста, которая станет частью событий сцены, или логического значения (см. раздел 5). ВНИМАНИЕ: в пространстве имен lua уже существуют некоторые объекты (таблицы), например: table, io, string... Будьте внимательны, при создании объекта. Например, в приведенном примере используется tabl, а не table. @@ -188,6 +188,22 @@ function isForSave(k) 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. Инвентарь == Простейший вариант сделать объект, который можно брать -- определить обработчик tak.