Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
10.09.2006 21:32

Davarg
Участник
Зарегистрирован: 01.06.2006
Сообщений: 8

Счетчик

Как сделать в нужной комнате что бы ходы сами шли,то есть как,например,находясь под водой выводилось без ввода команд 2-3 сообщение о том,что мол нехватает воздуха и после смерть?
Да к стати,сейчас работаю над дебютной игрой.
MUD вечно жив!

Неактивен

0    0    #2
11.09.2006 21:36

Unreal
Участник (+3)
Зарегистрирован: 13.09.2002
Сообщений: 170

Re: Счетчик

Я так понял, что, находясь в определенной комнате, вне зависимости от того
что делает ГП, его ходы должны быть там ограничены...

Делать это мы будем при помощи "демонов". Добавь в комнату:

Код:

firstroom : room {
  started = nil // просто переменная
  i = 0 // для демона
  enterRoom( actor ) = { // при входе в комнату срабатывает эта функция
    if ( !self.started ) {
        self.started = true;
        setdaemon( DyingMsg, nil ); // старт демона
    } else
        pass enterRoom;
  }
}

На все выходы из комнаты повесь:

Код:

  east = { // идти на восток
        self.started = nil;
           self.i = 0;
        remdaemon( DyingMsg, nil ); // останока демона
        Me.travelTo( Another_room ); // переход в другую комнату
  }

Конечно должен быть и демон:

Код:

DyingMsg : function( parm ) {
    firstroom.i++;
    if ( firstroom.i == 1 )
        "Воздух выходит из твоих легких.";
    if ( firstroom.i == 3 ) {
        "Ты задохнулся.";
        die();
    }
}

Неактивен

0    0    #3
13.09.2006 21:13

Davarg
Участник
Зарегистрирован: 01.06.2006
Сообщений: 8

Re: Счетчик

Я знаю,что спрашиваю не по теме так что извеняюсь.
Что такое parm? Для чего это нужно "свойство"?
И чем отличатся dobj от iobj?

Неактивен

0    0    #4
13.09.2006 23:26

Gremour
Участник (+1)
Откуда: Беларусь
Зарегистрирован: 09.11.2004
Сообщений: 234

Re: Счетчик

parm — параметр функции. Видимо, функция-демон должна быть функцией с одним параметром. В данном случае он просто не используется.

dobj — прямой объект, iobj — косвенный. В некоторых случаях действия совершаются с двумя объектами. Например, в предложении "разрезать верёвку ножом", веревка является прямым объектом, а нож — косвенным. В предложении "выпить воду" только один объект — прямой. "Три объекта, как правило, уже перебор, и в таких случаях очевидный объект подразумевается: "привязать лошадь к забору (верёвкой)". Верёвку можно не трогать, поскольку её использование очевидно. Тем не менее, ничто не мешает сделать обработчик (привязать) объекта (лошадь), который будет ругаться, если верёвки в инвентаре у персонажа нет.

Почитай мануал, особенно часть про обработчики действий (там где про do<Action>, verDo<Action> и т. д.). Без этого вряд ли разберёшься. Существует частичный перевод мануала на русский.

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru