Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
array mob's in quest
#1
Прошу совета.
Сборка - посл. шара феникса
Сообственно в квесте определен массив(заполненый id мобов) мобов
Код:
int[] mobs = {22321, 22320,
    22324, 22325, 22327, 22329,
    22328, 22330, 22335, 22339,
    22334, 22337, 22340, 32350,
    22336, 22349, 22351, 22352,
    22353, 22451, 22448, 22343,
    22342, 18493};
и переменная главного квестового моба
Код:
private static int MOB = 21320;
По квесту я ограничиваю игрока от убийства мобов содержащихся в массиве, следующим образом:

Код:
public String onKill(L2NpcInstance npc, QuestState st)
    {
        int npcId = npc.getNpcId();
        L2Player player = st.getPlayer();
        if(npcId == MOB)
        {
            st.setCond(2);
            st.giveItems(KRIS, 1); //игрок получает квестовый предмет
            st.getPlayer().sendPacket(new ExShowScreenMessage("Поздравляю, вы убили МОБА", 5000, ScreenMessageAlign.TOP_CENTER, true));
        }
        else
        {
          [COLOR="Red"]for(int i:mobs)
          {
            if(npcId == mobs[i])
            {
               st.exitCurrentQuest(false);
            }
          }[/COLOR]    
        }

само собой выделенное красным ограничивает игрока и отменяет квест, и в этом вопрос, не слишком ли это тяжко или по нубски, таким образом решать такую задачу?
Ответ
#2
я не силен в яве но строчка
for(int i:mobs)
"впихивает массив в одну переменную" а потом вы еще ее в массив тот же пихаете ...у вас получилось помоему так mobs[mobs]. и логики я тут не вижу. но может я не прав)

if(npcId == i)
так вроде нада
Ответ
#3
krisadr Написал:я не силен в яве но строчка
for(int i:mobs)
"впихивает массив в одну переменную" а потом вы еще ее в массив тот же пихаете ...у вас получилось помоему так mobs[mobs]. и логики я тут не вижу. но может я не прав)

if(npcId == i)
так вроде нада

нет, вы не правы
Ответ
#4
Код:
public String onKill(L2NpcInstance npc, QuestState st)
    {
        int npcId = npc.getNpcId();
        L2Player player = st.getPlayer();
        if(npcId == MOB)
        {
             st.setCond(2);
            st.giveItems(KRIS, 1); //игрок получает квестовый предмет
            st.getPlayer().sendPacket(new ExShowScreenMessage("Поздравляю, вы убили МОБА", 5000, ScreenMessageAlign.TOP_CENTER, true));
        }
        else
        {
             st.exitCurrentQuest(false);
        }
    }
этого по идее вполне достаточно
Ответ
#5
Gaikotsu Написал:
Код:
public String onKill(L2NpcInstance npc, QuestState st)
    {
        int npcId = npc.getNpcId();
        L2Player player = st.getPlayer();
        if(npcId == MOB)
        {
             st.setCond(2);
            st.giveItems(KRIS, 1); //игрок получает квестовый предмет
            st.getPlayer().sendPacket(new ExShowScreenMessage("Поздравляю, вы убили МОБА", 5000, ScreenMessageAlign.TOP_CENTER, true));
        }
        else
        {
             st.exitCurrentQuest(false);
        }
    }
этого по идее вполне достаточно

Так изначально пробывал, не работает.
Ответ
#6
weTr1k Написал:нет, вы не правы

ну ладна Big Grin, хотя всетаки я прав...
Ответ
#7
krisadr Написал:хотя всетаки я прав...

Интересно в чем?
Ответ
#8
lдопустим если вам нада чтобы при убийстве мобов в массиве mobs персонаж выходил из квеста то хватит достаточно
for(int i:mobs)
if(npc.getNpcId() = i) {
st.exitCurrentQuest(false);
}

Добавлено через 2 минуты
ну такое работает на лыже...
да к стати зарегистрировал мобов в
for(i:mobs)
addKillId(i)
Ответ
#9
krisadr Написал:я не силен в яве но строчка
for(int i:mobs)
"впихивает массив в одну переменную" а потом вы еще ее в массив тот же пихаете ...у вас получилось помоему так mobs[mobs]. и логики я тут не вижу. но может я не прав)

if(npcId == i)
так вроде нада

чистый бед


krisadr Написал:lдопустим если вам нада чтобы при убийстве мобов в массиве mobs персонаж выходил из квеста то хватит достаточно
for(int i:mobs)
if(npc.getNpcId() = i) {
st.exitCurrentQuest(false);
}

Добавлено через 2 минуты
ну такое работает на лыже...
да к стати зарегистрировал мобов в
for(i:mobs)
addKillId(i)

имхо топорнее
Ответ
#10
ну извените я не обладаю познаниями ярого программиста, самоучка я, но голова на плечах имеется. объясните почему бред...

for (int id : MOBS)
addKillId(id);
когда эта фишка работает на ура...
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  quest крашит клиент CABA 5 2,349 04-24-2016, 05:45 PM
Последний пост: CABA
  bject array [ITEMS] resized: KateKate7912 12 2,709 11-08-2015, 03:57 AM
Последний пост: KateKate7912
  [Help]Quest _10363_ RequestOfSeeker Wait_Me 4 1,444 05-06-2013, 09:55 PM
Последний пост: Wait_Me
  Quest.java kloni1 3 1,586 09-25-2012, 01:29 PM
Последний пост: kloni1
  Разбор полетов по Quest GOODPower 11 3,633 05-05-2012, 09:13 PM
Последний пост: Lihoy
  Quest: как узнать CharId? Stasev 2 2,584 04-21-2009, 01:36 PM
Последний пост: Stasev

Перейти к форуму:


Пользователи, просматривающие эту тему: 5 Гость(ей)