@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState qs = getQuestState(player, false); String htmltext = null; if (qs == null) { return htmltext; } switch (event) { case "31529-02.html": case "31529-04.html": case "31529-05.html": case "31529-06.html": case "31529-07.html": case "31529-09.html": case "31529-13.html": case "31529-13a.html": case "31528-02.html": case "31528-05.html": case "31528-06.html": case "31528-07.html": case "31328-13.html": case "31328-06.html": case "31328-05.html": case "31328-02.html": case "31328-07.html": case "31328-08.html": case "31328-14.html": case "31328-15.html": case "31328-16.html": case "31328-17.html": case "31328-18.html": case "31334-12.html": { htmltext = event; break; } case "31334-02.htm": { if (qs.isCreated()) { final QuestState q21 = player.getQuestState(Q00021_HiddenTruth.class.getSimpleName()); if ((player.getLevel() >= MIN_LVL) && (q21 != null) && q21.isCompleted()) { htmltext = event; } else { htmltext = "31334-03.html"; } } break; } case "31334-04.html": { if (qs.isCreated()) { qs.startQuest(); htmltext = event; } break; } case "31334-06.html": { if (qs.isCond(3) && hasQuestItems(player, CROSS_OF_EINHASAD)) { htmltext = event; } else { qs.setCond(2, true); htmltext = "31334-07.html"; } break; } case "31334-08.html": { if (qs.isCond(3)) { qs.setCond(4, true); htmltext = event; } break; } case "31334-13.html": { final int cond = qs.getCond(); if (((5 <= cond) && (cond <= 7)) && hasQuestItems(player, CROSS_OF_EINHASAD)) { if (_tifarenOwner == 0) { _tifarenOwner = player.getObjectId(); final L2Npc ghost2 = addSpawn(GHOST_OF_PRIEST, PRIEST_LOC, true, 0); ghost2.setScriptValue(player.getObjectId()); qs.startQuestTimer("DESPAWN_GHOST2", 1000 * 120, ghost2); ghost2.broadcastPacket( new NpcSay( ghost2.getObjectId(), Say2.NPC_ALL, ghost2.getId(), NpcStringId.DID_YOU_CALL_ME_S1) .addStringParameter(player.getName())); if (((cond == 5) || (cond == 6)) && hasQuestItems(player, LOST_SKULL_OF_ELF)) { takeItems(player, LOST_SKULL_OF_ELF, -1); qs.setCond(7, true); } htmltext = event; } else { qs.setCond(6, true); htmltext = "31334-14.html"; } } break; } case "31528-04.html": { if (npc.getScriptValue() == player.getObjectId()) { playSound(player, QuestSound.AMBSOUND_HORROR_03); htmltext = event; } break; } case "31528-08.html": { QuestTimer qt = getQuestTimer("DESPAWN_GHOST2", npc, player); if ((qt != null) && (npc.getScriptValue() == player.getObjectId())) { qt.cancelAndRemove(); npc.setScriptValue(0); qs.startQuestTimer("DESPAWN_GHOST2", 1000 * 3, npc); qs.setCond(8); htmltext = event; } break; } case "DESPAWN_GHOST2": { _tifarenOwner = 0; if (npc.getScriptValue() != 0) { npc.broadcastPacket( new NpcSay( npc.getObjectId(), Say2.NPC_ALL, npc.getId(), NpcStringId.IM_CONFUSED_MAYBE_ITS_TIME_TO_GO_BACK)); } npc.deleteMe(); break; } case "31328-03.html": { if (qs.isCond(8)) { takeItems(player, CROSS_OF_EINHASAD, -1); htmltext = event; } break; } case "31328-09.html": { if (qs.isCond(8)) { giveItems(player, LETTER_OF_INNOCENTIN, 1); qs.setCond(9, true); htmltext = event; } break; } case "31328-11.html": { if (qs.isCond(14) && hasQuestItems(player, REPORT_BOX)) { takeItems(player, REPORT_BOX, -1); qs.setCond(15, true); htmltext = event; } break; } case "31328-19.html": { if (qs.isCond(15)) { qs.setCond(16, true); htmltext = event; } break; } case "31527-02.html": { if (qs.isCond(10) && (_soulWellNpc == null)) { _soulWellNpc = addSpawn(SOUL_OF_WELL, SOUL_WELL_LOC, true, 0); qs.startQuestTimer("activateSoulOfWell", 90000, _soulWellNpc); qs.startQuestTimer("despawnSoulOfWell", 120000, _soulWellNpc); _soulWellNpc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); playSound(player, QuestSound.SKILLSOUND_ANTARAS_FEAR); htmltext = event; } else { htmltext = "31527-03.html"; } break; } case "activateSoulOfWell": { // this enables onAttack ELSE IF block which allows the player to proceed the quest npc.setScriptValue(1); break; } case "despawnSoulOfWell": { // if the player fails to proceed the quest in 2 minutes, the soul is unspawned if (!npc.isDead()) { _soulWellNpc = null; } npc.deleteMe(); break; } case "31529-03.html": { if (qs.isCond(9) && hasQuestItems(player, LETTER_OF_INNOCENTIN)) { qs.setMemoState(8); htmltext = event; } break; } case "31529-08.html": { if (qs.isMemoState(8)) { qs.setMemoState(9); htmltext = event; } break; } case "31529-11.html": { if (qs.isMemoState(9)) { giveItems(player, JEWEL_OF_ADVENTURER_1, 1); qs.setCond(10, true); qs.setMemoState(10); htmltext = event; } break; } } return htmltext; }