@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; final QuestState st = player.getQuestState(qn); if (st == null) { return htmltext; } switch (event) { case "31570-03.htm": st.set("cond", "1"); st.setState(State.STARTED); st.playSound("ItemSound.quest_accept"); break; case "31570-05.htm": if ((st.getInt("cond") == 1) && (st.hasQuestItems(BLUE_TREASURE_BOX))) { htmltext = "31570-06.htm"; st.set("cond", "2"); st.giveItems(STRANGE_BLUESPRINT, 1); st.takeItems(BLUE_TREASURE_BOX, -1); st.playSound("ItemSound.quest_middle"); } break; case "31434-02.htm": if ((st.getInt("cond") == 2) && (st.hasQuestItems(STRANGE_BLUESPRINT))) { htmltext = "31434-01.htm"; st.giveItems(BLACK_PEARL_RING, 1); st.takeItems(STRANGE_BLUESPRINT, -1); st.playSound("ItemSound.quest_finish"); st.exitQuest(false); } break; } return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { final QuestState st = getQuestState(player, true); if (st == null) { return getNoQuestMsg(player); } String htmltext = getNoQuestMsg(player); switch (st.getState()) { case State.CREATED: { if (player.getLevel() < MIN_LEVEL) { htmltext = "31540-02.html"; } else if (!st.hasQuestItems(VACUALITE_FLOATING_STONE)) { htmltext = "31540-04.html"; } else { htmltext = "31540-01.htm"; } break; } case State.STARTED: { switch (st.getCond()) { case 1: { htmltext = "31540-08.html"; break; } case 2: { st.giveItems(MEDAL_OF_GLORY, 30); st.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET); st.exitQuest(QuestType.DAILY, true); htmltext = "31540-09.html"; break; } } break; } case State.COMPLETED: { if (!st.isNowAvailable()) { htmltext = "31540-03.html"; } else { st.setState(State.CREATED); if (player.getLevel() < MIN_LEVEL) { htmltext = "31540-02.html"; } else if (!st.hasQuestItems(VACUALITE_FLOATING_STONE)) { htmltext = "31540-04.html"; } else { htmltext = "31540-01.htm"; } } break; } } return htmltext; }
@Override public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(qn); if (st == null) return "<html><body>目前沒有執行任務,或條件不符。</body></html>"; final int cond = st.getInt("cond"); if (event.equalsIgnoreCase("31001-05.htm")) { if (cond == 0) { st.set("cond", "1"); st.setState(State.STARTED); st.playSound("ItemSound.quest_accept"); } } else if (event.equalsIgnoreCase("32576-02.htm")) { if (cond == 1) { st.giveItems(IDENTITY_CARD, 1); st.set("cond", "2"); st.playSound("ItemSound.quest_middle"); } } else if (event.equalsIgnoreCase("30289-04.htm")) { if (cond == 2) { st.set("cond", "3"); player.stopAllEffects(); SkillTable.getInstance().getInfo(GUARD_DAWN, 1).getEffects(player, player); } } else if (event.equalsIgnoreCase("30289-07.htm")) { if (cond == 3) { SkillTable.getInstance().getInfo(GUARD_DAWN, 1).getEffects(player, player); } } else if (event.equalsIgnoreCase("30289-08.htm")) { if (cond == 3) { player.stopAllEffects(); } } else if (event.equalsIgnoreCase("30289-11.htm")) { if (cond == 3) { st.set("cond", "4"); st.playSound("ItemSound.quest_middle"); player.stopAllEffects(); } } else if (event.equalsIgnoreCase("30969-03.htm")) { if (cond == 4) { st.addExpAndSp(52518015, 5817677); // st.addExpAndSp(25000000, 2500000); // High Five st.unset("cond"); st.exitQuest(false); st.playSound("ItemSound.quest_finish"); } } return event; }
@Override public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState st = player.getQuestState(qn); if (st == null) { return null; } if ("32010-03.htm".equalsIgnoreCase(event)) { st.set("cond", "1"); st.setState(State.STARTED); st.playSound("ItemSound.quest_accept"); } else if ("32010-10.htm".equalsIgnoreCase(event)) { st.exitQuest(true); } return event; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(getName()); if (st == null) { return null; } String htmltext = null; switch (event) { case "30512-02.htm": case "30673-02.html": case "30673-03.html": { htmltext = event; break; } case "30512-03.htm": { st.startQuest(); htmltext = event; break; } case "30673-04.html": { st.setCond(2, true); htmltext = event; break; } case "30621-02.html": { if (player.getLevel() < 43) { st.addExpAndSp(60000, 3000); } st.giveAdena(18100, true); st.exitQuest(false, true); htmltext = event; break; } case "Contract": { final Quest quest = QuestManager.getInstance().getQuest("184_Nikolas_Cooperation_Contract"); st = player.getQuestState("184_Nikolas_Cooperation_Contract"); if ((quest != null) && (st == null)) { st = quest.newQuestState(player); st.setState(State.STARTED); quest.notifyEvent("30621-01.htm", npc, player); } break; } case "Consideration": { final Quest quest = QuestManager.getInstance().getQuest("185_Nikolas_Cooperation_Consideration"); st = player.getQuestState("185_Nikolas_Cooperation_Consideration"); if ((quest != null) && (st == null)) { st = quest.newQuestState(player); st.setState(State.STARTED); quest.notifyEvent("30621-01.htm", npc, player); } break; } } return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = getQuestState(player, true); int npcId = npc.getId(); if (Util.contains(TOWN_DAWN, npcId)) { st.setState(State.STARTED); int i = 0; for (int dawn : TELEPORTERS) { if (dawn == npcId) { break; } i++; } st.set("id", Integer.toString(i)); playSound(player, QuestSound.ITEMSOUND_QUEST_ACCEPT); player.teleToLocation(new Location(-80157, 111344, -4901)); player.setIsIn7sDungeon(true); } if (Util.contains(TOWN_DUSK, npcId)) { st.setState(State.STARTED); int i = 0; for (int dusk : TELEPORTERS) { if (dusk == npcId) { break; } i++; } st.set("id", Integer.toString(i)); playSound(player, QuestSound.ITEMSOUND_QUEST_ACCEPT); player.teleToLocation(new Location(-81261, 86531, -5157)); player.setIsIn7sDungeon(true); } else if ((npcId >= 31494) && (npcId <= 31507)) { if (player.getLevel() < 20) { htmltext = "1.htm"; st.exitQuest(true); } else if (player.getAllActiveQuests().length > 23) { htmltext = "1a.htm"; st.exitQuest(true); } else if (!hasQuestItems(player, DIMENSIONAL_FRAGMENT)) { htmltext = "3.htm"; } else { st.setState(State.CREATED); htmltext = "4.htm"; } } else if (((npcId >= 31095) && (npcId <= 31111)) || ((npcId >= 31114) && (npcId <= 31126))) { int playerLevel = player.getLevel(); if (playerLevel < 20) { htmltext = "ziggurat_lowlevel.htm"; st.exitQuest(true); } else if (player.getAllActiveQuests().length > 40) { player.sendPacket(SystemMessageId.TOO_MANY_QUESTS); st.exitQuest(true); } else if (!hasQuestItems(player, DIMENSIONAL_FRAGMENT)) { htmltext = "ziggurat_nofrag.htm"; st.exitQuest(true); } else if ((playerLevel >= 20) && (playerLevel < 30) && (player.getAdena() < 2000)) { htmltext = "ziggurat_noadena.htm"; st.exitQuest(true); } else if ((playerLevel >= 30) && (playerLevel < 40) && (player.getAdena() < 4500)) { htmltext = "ziggurat_noadena.htm"; st.exitQuest(true); } else if ((playerLevel >= 40) && (playerLevel < 50) && (player.getAdena() < 8000)) { htmltext = "ziggurat_noadena.htm"; st.exitQuest(true); } else if ((playerLevel >= 50) && (playerLevel < 60) && (player.getAdena() < 12500)) { htmltext = "ziggurat_noadena.htm"; st.exitQuest(true); } else if ((playerLevel >= 60) && (playerLevel < 70) && (player.getAdena() < 18000)) { htmltext = "ziggurat_noadena.htm"; st.exitQuest(true); } else if ((playerLevel >= 70) && (player.getAdena() < 24500)) { htmltext = "ziggurat_noadena.htm"; st.exitQuest(true); } else { htmltext = "ziggurat.htm"; } } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = getQuestState(player, false); if (st == null) { return null; } final int npcId = npc.getId(); if (event.equalsIgnoreCase("Return")) { if (Util.contains(TEMPLE_PRIEST, npcId) && (st.getState() == State.STARTED)) { player.teleToLocation(RETURN_LOCS[st.getInt("id")]); player.setIsIn7sDungeon(false); st.exitQuest(true); } else if (Util.contains(RIFT_POSTERS, npcId) && (st.getState() == State.STARTED)) { player.teleToLocation(RETURN_LOCS[st.getInt("id")]); htmltext = "rift_back.htm"; st.exitQuest(true); } } else if (event.equalsIgnoreCase("Festival")) { int id = st.getInt("id"); if (Util.contains(TOWN_DAWN, id)) { player.teleToLocation(new Location(-80157, 111344, -4901)); player.setIsIn7sDungeon(true); } else if (Util.contains(TOWN_DUSK, id)) { player.teleToLocation(new Location(-81261, 86531, -5157)); player.setIsIn7sDungeon(true); } else { htmltext = "oracle1.htm"; } } else if (event.equalsIgnoreCase("Dimensional")) { htmltext = "oracle.htm"; player.teleToLocation(new Location(-114755, -179466, -6752)); } else if (event.equalsIgnoreCase("5.htm")) { int id = st.getInt("id"); if (id > -1) { htmltext = "5a.htm"; } int i = 0; for (int id1 : TELEPORTERS) { if (id1 == npcId) { break; } i++; } st.set("id", Integer.toString(i)); st.setState(State.STARTED); player.teleToLocation(new Location(-114755, -179466, -6752)); } else if (event.equalsIgnoreCase("6.htm")) { htmltext = "6.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("zigurratDimensional")) { int playerLevel = player.getLevel(); if ((playerLevel >= 20) && (playerLevel < 30)) { takeItems(player, Inventory.ADENA_ID, 2000); } else if ((playerLevel >= 30) && (playerLevel < 40)) { takeItems(player, Inventory.ADENA_ID, 4500); } else if ((playerLevel >= 40) && (playerLevel < 50)) { takeItems(player, Inventory.ADENA_ID, 8000); } else if ((playerLevel >= 50) && (playerLevel < 60)) { takeItems(player, Inventory.ADENA_ID, 12500); } else if ((playerLevel >= 60) && (playerLevel < 70)) { takeItems(player, Inventory.ADENA_ID, 18000); } else if (playerLevel >= 70) { takeItems(player, Inventory.ADENA_ID, 24500); } int i = 0; for (int ziggurat : TELEPORTERS) { if (ziggurat == npcId) { break; } i++; } st.set("id", Integer.toString(i)); st.setState(State.STARTED); playSound(player, QuestSound.ITEMSOUND_QUEST_ACCEPT); htmltext = "ziggurat_rift.htm"; player.teleToLocation(new Location(-114755, -179466, -6752)); } return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(getName()); String htmltext = getNoQuestMsg(player); if (st == null) { return htmltext; } switch (st.getState()) { case State.COMPLETED: { if (!st.isNowAvailable()) { htmltext = "31340-02.htm"; break; } st.setState(State.CREATED); } case State.CREATED: { htmltext = (player.getLevel() >= MIN_LVL) ? "31340-01.htm" : "31340-03.htm"; break; } case State.STARTED: { switch (st.getCond()) { case 1: { htmltext = "31340-09.html"; break; } case 2: { htmltext = "31340-11.html"; break; } case 3: { htmltext = "31340-12.html"; break; } case 4: { htmltext = "31340-13.html"; break; } case 5: { if (st.hasQuestItems(SHATTERED_BONES)) { st.giveItems(PROOF_OF_CHALLENGE, 1); st.giveAdena(134038, true); } else if (st.hasQuestItems(CANNIBALISTIC_STAKATO_LDR_CLAW)) { st.giveItems(PROOF_OF_CHALLENGE, 3); st.giveAdena(210119, true); } else if (st.hasQuestItems(ANAIS_SCROLL)) { st.giveItems(PROOF_OF_CHALLENGE, 3); st.giveAdena(348155, true); } st.exitQuest(QuestType.DAILY, true); htmltext = "31340-14.html"; break; } } break; } } return htmltext; }
@Override public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState st = player.getQuestState(qn); if (st == null) { return getNoQuestMsg(player); } final int cond = st.getInt("cond"); if (event.equalsIgnoreCase("enter")) { enterInstance(player); return null; } else if (event.equalsIgnoreCase("32497-03.htm")) { if (cond == 0) { st.set("cond", "1"); st.setState(State.STARTED); st.playSound("ItemSound.quest_accept"); } } else if (event.equalsIgnoreCase("32500-06.htm")) { if (cond == 1) { st.set("cond", "2"); st.playSound("ItemSound.quest_itemget"); st.giveItems(SWORD, 1); st.giveItems(BOOK1, 1); } } else if (event.equalsIgnoreCase("32507-04.htm")) { if (cond == 3) { st.set("cond", "4"); st.playSound("ItemSound.quest_middle"); st.takeItems(SWORD, -1); st.takeItems(WATER_ESSENCE, -1); st.takeItems(BOOK2, -1); st.giveItems(BOOK3, 1); st.giveItems(ENH_SWORD1, 1); } } else if (event.equalsIgnoreCase("32507-08.htm")) { if (cond == 6) { st.set("cond", "7"); st.playSound("ItemSound.quest_itemget"); st.takeItems(ENH_SWORD1, -1); st.takeItems(BOOK5, -1); st.takeItems(FIRE_ESSENCE, -1); st.giveItems(ENH_SWORD2, 1); st.giveItems(BOOK6, 1); } } else if (event.equalsIgnoreCase("32510-02.htm")) { st.unset("cond"); st.playSound("ItemSound.quest_finish"); st.exitQuest(false); Instance inst = InstanceManager.getInstance().getInstance(npc.getInstanceId()); inst.setDuration(EXIT_TIME * 60000); inst.setEmptyDestroyTime(0); if (inst.containsPlayer(player.getObjectId())) { player.setVitalityPoints(20000, true); st.addExpAndSp(810000, 50000); for (int id : REWARDS) { st.giveItems(id, 1); } } } return event; }