Do not give up the quest NPC id 798991. help fix!)
Code:package quest.special_mission; import com.aionemu.gameserver.model.DialogAction; import com.aionemu.gameserver.model.gameobjects.Npc; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.questEngine.handlers.QuestHandler; import com.aionemu.gameserver.questEngine.model.QuestEnv; import com.aionemu.gameserver.questEngine.model.QuestState; import com.aionemu.gameserver.questEngine.model.QuestStatus; /** * Created by Ace65 on 20/02/2016. */ public class _19640Flying_Through_Four extends QuestHandler { private final static int questId = 19640; private final static int[] mobs = {215525, 215527}; public _19640Flying_Through_Four() { super(questId); } @Override public void register() { qe.registerQuestNpc(799022).addOnQuestStart(questId); qe.registerQuestNpc(799022).addOnTalkEvent(questId); qe.registerQuestNpc(799022).addOnTalkEvent(questId); for (int mob: mobs) { qe.registerQuestNpc(mob).addOnKillEvent(questId); qe.registerQuestNpc(798991).addOnKillEvent(questId); } } @Override public boolean onDialogEvent(QuestEnv env) { Player player = env.getPlayer(); QuestState qs = player.getQuestStateList().getQuestState(questId); DialogAction dialog = env.getDialog(); int targetId = env.getTargetId(); if (env.getVisibleObject() instanceof Npc) { targetId = ((Npc) env.getVisibleObject()).getNpcId(); } if (qs == null || qs.getStatus() == QuestStatus.NONE) { if (targetId == 799022) { switch (dialog) { case QUEST_SELECT: return sendQuestDialog(env, 4762); case QUEST_ACCEPT_1: case QUEST_ACCEPT_SIMPLE: return sendQuestStartDialog(env); case QUEST_REFUSE_SIMPLE: return closeDialogWindow(env); default: break; } } } else if (qs.getStatus() == QuestStatus.START) { switch (targetId) { case 799022: { switch (dialog) { case QUEST_SELECT: { return sendQuestDialog(env, 10002); } case SELECT_QUEST_REWARD: { return sendQuestEndDialog(env); } default: return sendQuestEndDialog(env); } } } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 799022) { switch (dialog) { case SELECT_QUEST_REWARD: { return sendQuestDialog(env, 5); } default: return sendQuestEndDialog(env); } } } return false; } @Override public boolean onKillEvent(QuestEnv env) { Player player = env.getPlayer(); int targetId = env.getTargetId(); QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null || qs.getStatus() != QuestStatus.START) { return false; } switch (targetId) { case 215525: case 215527: if (qs.getQuestVarById(1) < 10) { qs.setQuestVarById(1, qs.getQuestVarById(1) + 1); updateQuestStatus(env); } if (qs.getQuestVarById(1) >= 10) { qs.setStatus(QuestStatus.REWARD); updateQuestStatus(env); } break; } return false; } }


Reply With Quote

