예제 #1
0
 @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;
  }
예제 #4
0
 @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;
 }
예제 #5
0
 @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;
 }