monami

Выдающийся
Местный
Сообщения
244
Розыгрыши
0
Репутация
118
Реакции
50
Баллы
1 373
Все доброго времени суток, нужно сделать разграничение квеста по классу воин и маг
Для война такой код работает, т.е маг не может взять
if( myself::GetMemoCount( talker ) < 26 )
{
if( talker.race != 0 )
{
myself::ShowPage( talker, "gallin_q0104_00.htm" );
}
else if( talker.level >= 10 && talker.occupation != 0 )

Для мага такое не прокатывает.

if( myself::GetMemoCount( talker ) < 26 )
{
if( talker.race != 0 )
{
myself::ShowPage( talker, "gallin_q0104_00.htm" );
}
else if( talker.level >= 10 && talker.occupation != 10 )
пробовал также через @mage_group, talker.occupation
 

В чём проблема посмотреть готовые варианты и разобрать сам квест для своих нужд?
Взять даже те самые квесты на профу.. и просто разобрать их для своих нужд.

Ну а если не сильно вилять хвостом раздробить данный квест на две награды маг,воин

Либо немного помучаться и сделать что-то из первого предложеного варианта..

Сам особо вникать не хочу сборок под рукой нет..
 
Тег CODE
 
Если уж совсем пздц, то заносим ид проф в массивы и радуемся)
 
if( myself::GetMemoCount( talker ) < 26 )
{
if( talker.race != 10 )
{
myself::ShowPage( talker, "gallin_q0104_00.htm" );
}
else if( talker.level >= 10 && talker.occupation != 0 )
примерно, такой Ваш готовый вариант
 
так и не разобрался почему не робит данная комбинация. пришлось вернутся к старому варианту
if( myself::GetMemoCount( talker ) < 26 )
{
if( talker.occupation != 0 )
{
myself::ShowPage( talker, "gallin_q0104_00.htm" );
}
else if( talker.level >= 10 )
 
Сперва бы с логикой разобраться. А то квест "для воина", а Вы описываете его как talker.occupation != 0 (т.е. класс НЕ РАВЕН нулю, где 0 - смотрим по manual_pch: [fighter] = 0)
Судя по Вашей логике происходит следующее:
Код:
  если количество квестов меньше 26, то...
     если расса НЕ ЛЮДИ, то ...
         выводим сообщение для рассы "не люди".
     ...иначе (расса люди)
       если уровень персонажа больше или равен 10  И класс персонажа НЕ ВОИН и уровень персонажа то...
и вот уже вижу "косяк".

постройте логику правильно:
для воинов (класса воин) и для магов (класс маг):
Код:
  if ( myself.GetMemoCount( talker ) < 26 ) {
      if ( talker.race == 0 ) {
         if ( talker.occupation == 0 ) { // если нужна будет проверка на уровень - добавь самостоятельно 
            // логика для воинов
         } else
         if ( talker.occupation == 10 ) {
           // логика для магов
         } else {
           // ты не маг и не воин... кто ты, чудище?
         }
      } else {
        // раса не люди
      }
  } else {
    /// дофига квестов
  }
 
Назад
Сверху Снизу