Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
11.02.2008 20:47

Nol
Участник
Зарегистрирован: 11.02.2008
Сообщений: 2

Помогите сделать ма-а-аленьки пазл)

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

Неактивен

0    0    #2
11.02.2008 21:13

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Помогите сделать ма-а-аленьки пазл)

Код:

mylocation: room 
 sdesc = "Маленькая комната"
 ldesc = "Вы в мааааленькой комнате, выход на юге, но надо ли туда идти?"
 south = {
  if (youKnowTheReason) 
   return anotherRoom;
  else {
   "А смысл?";
   return nil;
  }
 }
;

Где-то так... wink

Неактивен

0    0    #3
11.02.2008 21:37

uux
Участник (+884, -80)
Откуда: Москва
Зарегистрирован: 02.12.2006
Сообщений: 1624

Re: Помогите сделать ма-а-аленьки пазл)

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)

Неактивен

0    0    #4
11.02.2008 22:49

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Re: Помогите сделать ма-а-аленьки пазл)

P. S. Да, у Тона с навыками набора текста гораздо лучше, чем у меня;).

Дык программер, итить. cool

Неактивен

0    0    #5
13.02.2008 01:47

Nol
Участник
Зарегистрирован: 11.02.2008
Сообщений: 2

Re: Помогите сделать ма-а-аленьки пазл)

fireton и uux, спасиБо большое! разобрался и сделал!!

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru