Добрый вечер(ну или что там у вас)всем читающим.
1.Подскажите как написать Демон для вывода простеньких сообщений в процессе игры (например "Вы чихнули" и так далее).
2.Как реализовать возможность броска некоторых предметов с последующими событиями(например бросок ножа в стену,при этом будут потом происходит определенные последствия).
3.Как отключить вывод сообщений после большого описания комнаты,что в комнате присутсвует некоторый предмет,при этом не пряча этот предмет никуда.
Неактивен
1. Как ни странно, но в "Блуждания в Окопный День" почти не употребляются демоны... Но берем продолжение этой игры "Бороздящий Просторы Вселенной" (Deep Space Drifter) и видим неплохие примеры использования демонов. Это для самостоятельного изучения, а короткий ответ на вопрос:
setdaemon( funcDaemon, nil ); — запускает демон
remdaemon( funcDaemon, nil ); — останавливает демон (возможно временно)
, где funcDaemon — имя функции, которая будет вызываться каждый ход.
3. isListed=nil — неплохой вариант. Только при взятии предмета нужно настроить обработчик, чтобы предмет опять был isListed=true . По жаланию можно обрабатывать и такие события, как положить предмет.
А можно вот еще что сделать в свойствах объекта:
Lastik : item
isListed = (
if ( actor.isCarrying( self ) )
return true;
else
return nil;
)
А можно проверять объект на локацию игрока: Me.location .
Неактивен
Запалы запускаются также, но вроде там можно установить время через сколько ходов произойдет запуск. Точно не помню — см. "Бороздящий Просторы Вселенной". И запалы можно остановить перед тем, как они сработают.
Функция-демон — это абсолютно обычная функция, которая может содержать все что угодно. Правда, входящих параметров она не имеет.
Неактивен