@Override
 public boolean onDialogEvent(QuestEnv env) {
   QuestState qs = env.getPlayer().getQuestStateList().getQuestState(questId);
   if (qs == null || qs.getStatus() == QuestStatus.NONE) {
     if (env.getTargetId() == 203621) {
       switch (env.getDialog()) {
         case QUEST_SELECT:
           return sendQuestDialog(env, 1011);
         case ASK_QUEST_ACCEPT:
           return sendQuestDialog(env, 4);
         case QUEST_ACCEPT_1:
           return sendQuestDialog(env, 1003);
         case QUEST_REFUSE_1:
           return sendQuestDialog(env, 1004);
         case SETPRO1:
           if (QuestService.startQuest(env)) {
             QuestService.questTimerStart(env, 1800);
             return true;
           } else return false;
       }
     }
   }
   if (qs == null) return false;
   int var = qs.getQuestVarById(0);
   if (qs.getStatus() == QuestStatus.START) {
     if (env.getTargetId() == 203621) {
       switch (env.getDialog()) {
         case QUEST_SELECT:
           if (var == 0) return sendQuestDialog(env, 2375);
         case CHECK_USER_HAS_QUEST_ITEM:
           if (var == 0) {
             if (QuestService.collectItemCheck(env, true)) {
               qs.setStatus(QuestStatus.REWARD);
               updateQuestStatus(env);
               QuestService.questTimerEnd(env);
               return sendQuestDialog(env, 5);
             } else return sendQuestDialog(env, 2716);
           }
       }
     }
   }
   return sendQuestRewardDialog(env, 203621, 0);
 }
  @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);
    DialogAction dialog = env.getDialog();

    if (qs == null || qs.getStatus() == QuestStatus.NONE) {
      if (targetId == 204801) {
        if (dialog == DialogAction.QUEST_SELECT) return sendQuestDialog(env, 4762);
        else if (dialog == DialogAction.QUEST_ACCEPT_1) {
          if (!giveQuestItem(env, 182204425, 1)) return true;
          return sendQuestStartDialog(env);
        } else return sendQuestStartDialog(env);
      }
    } else if (qs.getStatus() == QuestStatus.START) {
      int var = qs.getQuestVarById(0);
      if (targetId == 204801) {
        switch (dialog) {
          case QUEST_SELECT:
            if (var == 1) {
              qs.setStatus(QuestStatus.REWARD);
              updateQuestStatus(env);
              return sendQuestDialog(env, 1352);
            }
          case SELECT_QUEST_REWARD:
            {
              QuestService.questTimerEnd(env);
              return sendQuestDialog(env, 5);
            }
        }
      }
    } else if (qs.getStatus() == QuestStatus.REWARD) {
      if (targetId == 204801) {
        return sendQuestEndDialog(env);
      }
    }
    return false;
  }