Возможно, это глупый вопрос и ответ на него прост, но мну нуб и нужна помощь!)
Как сделать так, чтобы игрок не мог пройти, допустим, на восток или в помещение, пока не спросит у НПС про какой-нибудь предмет (дескать "зачем мне туда щас идти, там нет ничего интересного")?
Неактивен
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)
Неактивен