@Override
  public String onKill(L2Npc npc, L2PcInstance killer, boolean isPet) {
    QuestState st = killer.getQuestState(getClass());

    if (npc == null || st == null) {
      return null;
    }

    if (st.getCond() == 1) {
      if (ArrayUtils.contains(ДревниеГерои, npc.getNpcId())) {
        if (killer.getParty() == null) {
          st.giveItem(ПроклятаяСлизь);
          st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
          if (st.getQuestItemsCount(ПроклятаяСлизь) >= 8) {
            st.setCond(2);
            st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
          }
        } else {
          QuestState pst = killer.getParty().getRandomPartyMember().getQuestState(getClass());
          if (pst != null && pst.getCond() == 1) {
            pst.giveItem(ПроклятаяСлизь);
            pst.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET);
            if (pst.getQuestItemsCount(ПроклятаяСлизь) >= 8) {
              pst.setCond(2);
              pst.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
            }
          }
        }
      }
    }
    return super.onKill(npc, killer, isPet);
  }
  @Override
  public String onAsk(L2PcInstance player, L2Npc npc, QuestState st, int reply) {
    if (st == null) {
      return null;
    }

    int cond = st.getCond();
    int npcId = npc.getNpcId();
    switch (npcId) {
      case ELIYAH:
        if (reply == 1) {
          return "priest_eliyah_q10388_05.htm";
        }
        if (reply == 5) {
          return "priest_eliyah_q10388_06.htm";
        }
        if (reply == 6) {
          return "priest_eliyah_q10388_07.htm";
        }
        break;
      case KARGOS:
        if (reply == 1) {
          return "kargos_q10388_03.htm";
        }
        if (reply == 2) {
          return "kargos_q10388_04.htm";
        }
        if (reply == 3 && cond == 1) {
          st.setCond(2);
          st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
          return "kargos_q10388_05.htm";
        }
        break;
      case KITCHEN:
        if (reply == 1 && cond == 2) {
          st.setCond(3);
          st.giveItem(VISITOR_BADGE);
          st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE);
          return "kitchen_q10388_02.htm";
        }
        break;
      case RAZEN:
        if (reply == 1) {
          return "razen_q10388_02.htm";
        }
        if (reply == 2 && cond == 3) {
          st.takeItems(VISITOR_BADGE, -1);
          st.addExpAndSp(29638350, 7113);
          st.giveAdena(65136, true);
          st.exitQuest(QuestType.ONE_TIME);
          st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH);
          return "razen_q10388_03.htm";
        }
        break;
    }
    return getNoQuestMsg(st.getPlayer());
  }
  @Override
  public String onTalk(L2Npc npc, QuestState st) {
    if (st == null) {
      return null;
    }

    int cond = st.getCond();
    switch (npc.getNpcId()) {
      case ELIYAH:
        if (st.isCompleted()) {
          return "priest_eliyah_q10388_03.htm";
        }
        if (st.isCreated()) {
          if (st.getPlayer().getLevel() >= 97 && !st.isCompleted()) {
            return "priest_eliyah_q10388_01.htm";
          } else {
            st.exitQuest(QuestType.REPEATABLE);
            return "priest_eliyah_q10388_02.htm";
          }
        }
        if (cond >= 1) {
          return "priest_eliyah_q10388_09.htm";
        }
        break;
      case KARGOS:
        if (cond == 1) {
          return "kargos_q10388_02.htm";
        }
        if (cond >= 2) {
          return "kargos_q10388_06.htm";
        }
        break;
      case KITCHEN:
        if (cond == 2) {
          return "kitchen_q10388_01.htm";
        }
        if (cond == 3 && !st.getPlayer().getInventory().hasItems(VISITOR_BADGE)) {
          st.giveItem(VISITOR_BADGE);
          return "kitchen_q10388_03.htm";
        }
        if (cond == 3) {
          return "kitchen_q10388_04.htm";
        }
        break;
      case RAZEN:
        if (st.isCompleted()) {
          return getAlreadyCompletedMsg(st.getPlayer(), QuestType.ONE_TIME);
        }
        if (cond == 3) {
          return "razen_q10388_01.htm";
        }
        break;
    }
    return getNoQuestMsg(st.getPlayer());
  }