@Override public boolean onLvlUpEvent(QuestEnv env) { Player player = env.getPlayer(); QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs != null) return false; if (player.getCommonData().getLevel() < 9) return false; env.setQuestId(questId); questService.startQuest(env, QuestStatus.START); return true; }
@Override public boolean onEnterZoneEvent(QuestEnv env, ZoneName zoneName) { if (zoneName != ZoneName.MORHEIM_ICE_FORTRESS_220020000) return false; final Player player = env.getPlayer(); final QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs != null) return false; env.setQuestId(questId); QuestService.startQuest(env, QuestStatus.START); return true; }
@Override public boolean onLvlUpEvent(QuestEnv env) { final Player player = env.getPlayer(); final QuestState qs = player.getQuestStateList().getQuestState(questId); boolean lvlCheck = QuestService.checkLevelRequirement(questId, player.getCommonData().getLevel()); if (qs != null || !lvlCheck) return false; env.setQuestId(questId); QuestService.startQuest(env, QuestStatus.START); return true; }
@Override public boolean onEnterZoneEvent(QuestEnv env, ZoneName zoneName) { if (zoneName != ZoneName.Q1123) return false; final Player player = env.getPlayer(); final QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null || qs.getQuestVars().getQuestVars() != 0) return false; env.setQuestId(questId); PacketSendUtility.sendPacket(player, new SM_PLAY_MOVIE(0, 11)); qs.setStatus(QuestStatus.REWARD); qs.getQuestVars().setQuestVarById(0, 1); updateQuestStatus(player, qs); return true; }
@Override public boolean onEnterWorldEvent(QuestEnv env) { Player player = env.getPlayer(); if (player.getCommonData().getRace() != Race.ASMODIANS) return false; QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null) { env.setQuestId(questId); QuestService.startQuest(env); } qs = player.getQuestStateList().getQuestState(questId); if (qs.getStatus() == QuestStatus.START) { PacketSendUtility.sendPacket(player, new SM_PLAY_MOVIE(1, 2)); return true; } return false; }
@Override public boolean onEnterWorldEvent(QuestEnv env) { Player player = env.getPlayer(); if (player.getWorldId() == 400010000) { PlayerClass playerClass = player.getCommonData().getPlayerClass(); if (playerClass == PlayerClass.RIDER) { return false; } QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null) { env.setQuestId(questId); if (QuestService.startQuest(env)) { return true; } } } return false; }
@Override public boolean onDialogEvent(QuestEnv env) { final Player player = env.getPlayer(); int targetId = 0; if (env.getVisibleObject() instanceof Npc) targetId = ((Npc) env.getVisibleObject()).getNpcId(); final QuestState qs = player.getQuestStateList().getQuestState(questId); if (qs == null || qs.getStatus() == QuestStatus.NONE) { if (targetId == 730000) { env.setQuestId(questId); QuestService.startQuest(env, QuestStatus.START); sendQuestDialog(player, 0, 1011); return false; } } else if (qs.getStatus() == QuestStatus.START) { if (targetId == 700033 && env.getDialogId() == -1) { final int targetObjectId = env.getVisibleObject().getObjectId(); PacketSendUtility.broadcastPacket( player, new SM_EMOTION(player, EmotionType.SIT, 0, targetObjectId), true); ThreadPoolManager.getInstance() .schedule( new Runnable() { @Override public void run() { if (!player.isTargeting(targetObjectId)) return; if (ItemService.addItems( player, Collections.singletonList(new QuestItems(182200504, 1)))) { ((Npc) player.getTarget()).getController().onDespawn(true); qs.setStatus(QuestStatus.REWARD); updateQuestStatus(player, qs); } } }, 3000); } } else if (qs.getStatus() == QuestStatus.REWARD) { if (targetId == 730000) { if (ItemService.removeItemFromInventoryByItemId(player, 182200504)) { PacketSendUtility.sendPacket(player, new SM_PLAY_MOVIE(0, 16)); return true; } } } return false; }