quest help

Results 1 to 1 of 1
  1. #1
    Apprentice Cinema is offline
    MemberRank
    Mar 2016 Join Date
    5Posts

    ! quest help

    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;
        }
    }




Advertisement