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.