Возможно, это глупый вопрос и ответ на него прост, но мну нуб и нужна помощь!)
Как сделать так, чтобы игрок не мог пройти, допустим, на восток или в помещение, пока не спросит у НПС про какой-нибудь предмет (дескать "зачем мне туда щас идти, там нет ничего интересного")?
Неактивен
mylocation: room
sdesc = "Маленькая комната"
ldesc = "Вы в мааааленькой комнате, выход на юге, но надо ли туда идти?"
south = {
if (youKnowTheReason)
return anotherRoom;
else {
"А смысл?";
return nil;
}
}
;Где-то так... ![]()
Неактивен
Nol написал:
Возможно, это глупый вопрос и ответ на него прост, но мну нуб и нужна помощь!)
Как сделать так, чтобы игрок не мог пройти, допустим, на восток или в помещение, пока не спросит у НПС про какой-нибудь предмет (дескать "зачем мне туда щас идти, там нет ничего интересного")?
Например, так:
// В этом примере, чтобы пройти на восток, мы должны спросить сержанта про магазин
Sergeant: Actor
ldesc="Дюжий сержант смотрит на тебя, сжимая в руках автомат."
// Стандартный обработчик ответов персонажа
askWord(word, lst)={switch(word)
{case 'магазин':
case 'магазина':
// и т. д., все нужные падежи и синонимы
case 'магазине': "\"Магазин весь разграблен, но в кладовке осталась припрятанная бутылка водки.
Если принесешь мне ее,\" сержант корчит брезгливую гримасу - наверное, при
воспоминании о запахе, исходящем из кладовки, \"так вот, если принесешь мне
ее, то, может быть, я отпущу тебя с миром.\"";
startroom.EastBlocked:=nil; // Сбрасываем флаг-блокировку восточного прохода
return true;
default: return nil; // Ничего не возвращаем
}
}
// Ну, и прочие характеристики/реакции
;
startroom: room
EastBlocked=true // Флаг, показывающий, что восточное направление заблокировано
ldesc={"Ты стоишь в заброшенном, разграбленном магазине. Под ногами хрустят осколки битого стекла,
стеллажи, которые раньше, наверно, ломились от товара, теперь пусты, а местами обрушены.
Выход из магазина находится к югу. ";
if(self.EastBlocked)
{"К востоку ведет небольшая дверь - вероятно, в кладовку, но из нее тянет таким амбре,
что у тебя пропадает какая-либо охота заходить туда. ";
}
else
{"Из двери к востоку, ведущей в кладовку, тащит отнюдь не розами, но тебе, похоже, придется туда зайти. ";
}
}
east={if(self.EastBlocked)
{"Ты банально боишься задохнуться.";
}
else
{"Задержав дыхание, ты быстро шмыгаешь в дверь...\b";
return StoreRoom;
}
}
;P. S. Да, у Тона с навыками набора текста гораздо лучше, чем у меня;).
Отредактировано uux (11.02.2008 21:38)
Неактивен