@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("30828-01.htm")) { st.set("cond", "1"); st.setState(STATE_STARTED); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.equalsIgnoreCase("30828-03.htm") && st.hasQuestItems(TRIDENT)) { st.set("cond", "2"); st.takeItems(TRIDENT, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if (event.equalsIgnoreCase("30828-05.htm")) { st.takeItems(MAP_PIECE, 30); st.giveItems(MAP, 1); st.set("cond", "4"); st.playSound(QuestState.SOUND_MIDDLE); } else if (event.equalsIgnoreCase("30735-06.htm")) { st.takeItems(MAP, 1); st.set("cond", "5"); st.playSound(QuestState.SOUND_MIDDLE); } else if (event.equalsIgnoreCase("30828-07.htm")) { st.giveItems(PET_TICKET, 1); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; // Start the quest. if (event.endsWith("-04.htm")) { st.setState(Quest.STATE_STARTED); st.set("cond", "1"); st.playSound(QuestState.SOUND_ACCEPT); } // Give Red Soul Crystal. else if (event.endsWith("-09.htm")) { st.playSound(QuestState.SOUND_MIDDLE); st.giveItems(4629, 1); } // Give Green Soul Crystal. else if (event.endsWith("-10.htm")) { st.playSound(QuestState.SOUND_MIDDLE); st.giveItems(4640, 1); } // Give Blue Soul Crystal. else if (event.endsWith("-11.htm")) { st.playSound(QuestState.SOUND_MIDDLE); st.giveItems(4651, 1); } // Terminate the quest. else if (event.endsWith("-exit.htm")) st.exitQuest(true); return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(qn); String htmltext = getNoQuestMsg(); if (st == null) return htmltext; switch (st.getState()) { case STATE_CREATED: if (player.getLevel() >= 18) htmltext = "30361-03.htm"; else { htmltext = "30361-02.htm"; st.exitQuest(true); } break; case STATE_STARTED: int shards = st.getQuestItemsCount(WIND_SHARD); if (shards == 0) htmltext = "30361-05.htm"; else { int reward = 40 * shards + (shards >= 10 ? 2988 : 0); htmltext = "30361-07.htm"; st.takeItems(WIND_SHARD, -1); st.rewardItems(57, reward); } break; } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("30686-2.htm")) { st.setState(STATE_STARTED); st.set("cond", "1"); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.equalsIgnoreCase("30686-7.htm")) { final int count = st.getQuestItemsCount(JADE_CRYSTAL); if (count == 0) htmltext = "30686-4.htm"; else { int reward = (count * 425) + 3500; if (count >= 100) reward += 7400; st.takeItems(JADE_CRYSTAL, -1); st.rewardItems(57, reward); } } else if (event.equalsIgnoreCase("30686-8.htm")) { st.playSound(QuestState.SOUND_FINISH); st.exitQuest(true); } return htmltext; }
/** * That method drops current alliance and retrograde badge.<br> * If any Varka quest is in progress, it stops the quest (and drop all related qItems) : * * @param player The player to check. */ private static void testKetraDemote(L2PcInstance player) { if (player.isAlliedWithKetra()) { // Drop the alliance (old friends become aggro). player.setAllianceWithVarkaKetra(0); final PcInventory inventory = player.getInventory(); // Drop by 1 the level of that alliance (symbolized by a quest item). for (int i = 7215; i >= 7211; i--) { L2ItemInstance item = inventory.getItemByItemId(i); if (item != null) { // Destroy the badge. player.destroyItemByItemId("Quest", i, item.getCount(), player, true); // Badge lvl 1 ; no addition of badge of lower level. if (i != 7211) player.addItem("Quest", i - 1, 1, player, true); break; } } for (String mission : ketraMissions) { QuestState pst = player.getQuestState(mission); if (pst != null) pst.exitQuest(true); } } }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("30754-04.htm")) { st.setState(STATE_STARTED); st.set("cond", "1"); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.equalsIgnoreCase("30754-07.htm")) { if (st.get("success") != null) { st.set("cond", "1"); st.unset("success"); st.playSound(QuestState.SOUND_MIDDLE); } } else if (event.equalsIgnoreCase("30754-08.htm")) { st.playSound(QuestState.SOUND_FINISH); st.exitQuest(true); } else if (event.equalsIgnoreCase("30754-06.htm")) { if (!st.hasQuestItems(ARTICLE_DEAD_HERO)) htmltext = "30754-06a.htm"; else { final int amount = st.getQuestItemsCount(ARTICLE_DEAD_HERO); st.takeItems(ARTICLE_DEAD_HERO, -1); st.giveItems(57, amount * 60); // Special item, % based on actual number of qItems. if (Rnd.get(1000) < Math.min(10, Math.max(1, amount / 10))) htmltext = "30754-10.htm"; } } else if (event.equalsIgnoreCase("30754-11.htm")) { final int random = Rnd.get(4); if (random < 1) { htmltext = "30754-12.htm"; st.giveItems(OLD_KEY, 1); } else if (random < 2) { htmltext = "30754-13.htm"; st.giveItems(OLD_HILT, 1); } else if (random < 3) { htmltext = "30754-14.htm"; st.giveItems(OLD_TOTEM, 1); } else st.giveItems(CRUCIFIX, 1); st.set("cond", "2"); st.playSound(QuestState.SOUND_MIDDLE); } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("30361-04.htm")) { st.set("cond", "1"); st.setState(STATE_STARTED); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.equalsIgnoreCase("30361-08.htm")) { st.playSound(QuestState.SOUND_FINISH); st.exitQuest(true); } return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestState(qn); if (st == null) return htmltext; switch (st.getState()) { case STATE_CREATED: htmltext = (player.getLevel() < 15) ? "30050-01.htm" : "30050-02.htm"; break; case STATE_STARTED: int cond = st.getInt("cond"); switch (npc.getNpcId()) { case ELIAS: if (cond == 1) htmltext = "30050-04.htm"; else if (cond == 2) htmltext = "30050-05.htm"; else if (cond == 3) { htmltext = "30050-06.htm"; st.takeItems(FEVER_MEDICINE, 1); st.giveItems(102, 1); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } break; case YOHANES: if (cond == 2) { htmltext = "30032-01.htm"; st.set("cond", "3"); st.playSound(QuestState.SOUND_MIDDLE); st.takeItems(POISON_SAC, 1); st.giveItems(FEVER_MEDICINE, 1); } else if (cond == 3) htmltext = "30032-02.htm"; break; } break; case STATE_COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestState(qn); if (st == null) return htmltext; switch (st.getState()) { case STATE_CREATED: final int classId = player.getClassId().getId(); if (classId != 0x01 && classId != 0x2f && classId != 0x13 && classId != 0x20) htmltext = "30623-02.htm"; else if (player.getLevel() < 39) htmltext = "30623-01.htm"; else htmltext = "30623-03.htm"; break; case STATE_STARTED: int cond = st.getInt("cond"); if (cond == 2) htmltext = "30623-07a.htm"; else if (cond == 3) htmltext = "30623-13.htm"; else if (cond == 4) htmltext = "30623-17.htm"; else if (cond == 5) { htmltext = "30623-18.htm"; st.takeItems(FINAL_ORDER, 1); st.takeItems(EXCURO_SKIN, -1); st.takeItems(KRATOR_SHARD, -1); st.takeItems(GRANDIS_SKIN, -1); st.takeItems(TIMAK_ORC_BELT, -1); st.takeItems(LAKIN_MACE, -1); st.giveItems(MARK_OF_DUELIST, 1); st.rewardExpAndSp(47015, 20000); player.broadcastPacket(new SocialAction(player, 3)); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } break; case STATE_COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; // Manakia if (event.equalsIgnoreCase("30515-03.htm")) { st.setState(STATE_STARTED); st.set("cond", "1"); st.set("condStone", "1"); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.startsWith("30515-06-")) { if (st.getQuestItemsCount(CAVE_BEAST_TOOTH) >= 65 && st.getQuestItemsCount(DEATH_WAVE_LIGHT) >= 65) { htmltext = "30515-06.htm"; st.playSound(QuestState.SOUND_MIDDLE); int[] reward = REWARDS[Integer.parseInt(event.substring(9, 10))]; st.takeItems(CAVE_BEAST_TOOTH, -1); st.takeItems(DEATH_WAVE_LIGHT, -1); st.rewardItems(57, reward[2]); st.giveItems(reward[0], reward[1]); } else htmltext = "30515-07.htm"; } else if (event.equalsIgnoreCase("30515-08.htm")) { st.playSound(QuestState.SOUND_FINISH); st.exitQuest(true); } // Torai else if (event.equalsIgnoreCase("30557-02.htm")) { if (st.getInt("cond") == 2 && st.hasQuestItems(SEALED_MYSTERIOUS_STONE)) { st.set("cond", "3"); st.takeItems(SEALED_MYSTERIOUS_STONE, -1); st.giveItems(MYSTERIOUS_STONE, 1); st.playSound(QuestState.SOUND_MIDDLE); } else htmltext = "30557-03.htm"; } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("32017-03.htm")) { st.setState(STATE_STARTED); st.set("cond", "1"); st.playSound(QuestState.SOUND_ACCEPT); } else if (Util.isDigit(event)) { htmltext = "32017-07.htm"; st.takeItems(CURSED_GRAVE_GOODS, -1); final int reward[] = REWARDS[Integer.parseInt(event)]; st.giveItems(reward[0], reward[1]); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(true); } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("31314-03.htm")) { st.setState(STATE_STARTED); st.set("cond", "1"); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.equalsIgnoreCase("31315-02.htm")) { st.set("cond", "2"); st.playSound(QuestState.SOUND_MIDDLE); st.giveItems(SUPPLY_BOX, 1); } else if (event.equalsIgnoreCase("31555-02.htm")) { st.takeItems(SUPPLY_BOX, 1); st.rewardItems(57, 15000); st.rewardExpAndSp(50000, 0); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } return htmltext; }
@Override public String onTalk(L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(qn); String htmltext = getNoQuestMsg(); if (st == null) return htmltext; switch (st.getState()) { case STATE_CREATED: if (player.getRace() == Race.Elf) { if (player.getLevel() >= 3) htmltext = "30370-03.htm"; else { htmltext = "30370-02.htm"; st.exitQuest(true); } } else { htmltext = "30370-00.htm"; st.exitQuest(true); } break; case STATE_STARTED: int cond = st.getInt("cond"); switch (npc.getNpcId()) { case NERUPA: if (cond >= 1 && cond <= 3) htmltext = "30370-05.htm"; else if (cond == 4) { if (st.getQuestItemsCount(NIGHTSHADE_LEAF) == 1) { htmltext = "30370-06.htm"; st.playSound(QuestState.SOUND_FINISH); st.takeItems(NIGHTSHADE_LEAF, 1); st.rewardItems(LESSER_HEALING_POTION, 5); st.rewardExpAndSp(1000, 0); st.exitQuest(false); } } break; case UNOREN: if (cond == 1) { st.set("cond", "2"); htmltext = "30147-01.htm"; st.playSound(QuestState.SOUND_MIDDLE); st.takeItems(SILVERY_SPIDERSILK, 1); st.giveItems(UNOS_RECEIPT, 1); } else if (cond == 2) htmltext = "30147-02.htm"; else if (cond == 4) htmltext = "30147-03.htm"; break; case CREAMEES: if (cond == 2) { st.set("cond", "3"); htmltext = "30149-01.htm"; st.takeItems(UNOS_RECEIPT, 1); st.giveItems(CELS_TICKET, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if (cond == 3) htmltext = "30149-02.htm"; else if (cond == 4) htmltext = "30149-03.htm"; break; case JULIA: if (cond == 3) { st.set("cond", "4"); htmltext = "30152-01.htm"; st.takeItems(CELS_TICKET, -1); st.giveItems(NIGHTSHADE_LEAF, 1); st.playSound(QuestState.SOUND_MIDDLE); } else if (cond == 4) htmltext = "30152-02.htm"; break; } break; case STATE_COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = event; QuestState st = player.getQuestState(qn); if (st == null) return htmltext; if (event.equalsIgnoreCase("31522-02.htm")) { st.setState(STATE_STARTED); st.set("cond", "1"); st.playSound(QuestState.SOUND_ACCEPT); } else if (event.equalsIgnoreCase("31523-03.htm")) { st.set("cond", "2"); st.playSound(QuestState.SOUND_MIDDLE); spawnVonHellmann(st); } else if (event.equalsIgnoreCase("31524-06.htm")) { st.set("cond", "3"); st.playSound(QuestState.SOUND_MIDDLE); // Spawn the page. if (_vonHellmannPage == null) { _vonHellmannPage = addSpawn(VON_HELLMAN_PAGE, 51462, -54539, -3176, 0, false, 90000, true); _vonHellmannPage.broadcastNpcSay( "My master has instructed me to be your guide, " + player.getName() + "."); // Make it move. startQuestTimer("1", 4000, _vonHellmannPage, player, false); startQuestTimer("pageDespawn", 88000, _vonHellmannPage, player, false); } } else if (event.equalsIgnoreCase("31526-08.htm")) { st.set("cond", "5"); st.playSound(QuestState.SOUND_MIDDLE); } else if (event.equalsIgnoreCase("31526-14.htm")) { st.set("cond", "6"); st.playSound(QuestState.SOUND_MIDDLE); st.giveItems(CROSS_OF_EINHASAD, 1); } else if (event.equalsIgnoreCase("1")) { _vonHellmannPage .getAI() .setIntention(CtrlIntention.MOVE_TO, new L2CharPosition(52373, -54296, -3136, 0)); _vonHellmannPage.broadcastNpcSay("Follow me..."); startQuestTimer("2", 5000, _vonHellmannPage, player, false); return null; } else if (event.equalsIgnoreCase("2")) { _vonHellmannPage .getAI() .setIntention(CtrlIntention.MOVE_TO, new L2CharPosition(52279, -53064, -3161, 0)); startQuestTimer("3", 12000, _vonHellmannPage, player, false); return null; } else if (event.equalsIgnoreCase("3")) { _vonHellmannPage .getAI() .setIntention(CtrlIntention.MOVE_TO, new L2CharPosition(51909, -51725, -3125, 0)); startQuestTimer("4", 15000, _vonHellmannPage, player, false); return null; } else if (event.equalsIgnoreCase("4")) { _vonHellmannPage .getAI() .setIntention(CtrlIntention.MOVE_TO, new L2CharPosition(52438, -51240, -3097, 0)); _vonHellmannPage.broadcastNpcSay("This where that here..."); startQuestTimer("5", 5000, _vonHellmannPage, player, false); return null; } else if (event.equalsIgnoreCase("5")) { _vonHellmannPage .getAI() .setIntention(CtrlIntention.MOVE_TO, new L2CharPosition(52143, -51418, -3085, 0)); _vonHellmannPage.broadcastNpcSay("I want to speak to you..."); return null; } else if (event.equalsIgnoreCase("31328-05.htm")) { if (st.hasQuestItems(CROSS_OF_EINHASAD)) { st.takeItems(CROSS_OF_EINHASAD, 1); st.giveItems(CROSS_OF_EINHASAD_NEXT_QUEST, 1); st.playSound(QuestState.SOUND_FINISH); st.exitQuest(false); } } else if (event.equalsIgnoreCase("pageDespawn")) _vonHellmannPage = null; return htmltext; }
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { String htmltext = ""; QuestState st = player.getQuestState(getName()); htmltext = event; if (event.equalsIgnoreCase("c_grade_pin")) { if (st.getQuestItemsCount(13898) > 0) { if (st.getQuestItemsCount(57) > 3200) { if (Rnd.get(100) < 30) { st.takeItems(57, 3200); st.takeItems(13898, 1); st.giveItems(PINS_C[st.getRandom((PINS_C).length)], 1); } else { st.takeItems(57, 3200); st.takeItems(13898, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("b_grade_pin")) { if (st.getQuestItemsCount(13899) > 0) { if (st.getQuestItemsCount(57) > 11800) { if (Rnd.get(100) < 25) { st.takeItems(57, 11800); st.takeItems(13899, 1); st.giveItems(PINS_B[st.getRandom((PINS_B).length)], 1); } else { st.takeItems(57, 11800); st.takeItems(13899, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("a_grade_pin")) { if (st.getQuestItemsCount(13900) > 0) { if (st.getQuestItemsCount(57) > 26500) { if (Rnd.get(100) < 20) { st.takeItems(57, 26500); st.takeItems(13900, 1); st.giveItems(PINS_A[st.getRandom((PINS_A).length)], 1); } else { st.takeItems(57, 26500); st.takeItems(13900, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("s_grade_pin")) { if (st.getQuestItemsCount(13901) > 0) { if (st.getQuestItemsCount(57) > 136600) { if (Rnd.get(100) < 15) { st.takeItems(57, 136600); st.takeItems(13901, 1); st.giveItems(PINS_S[st.getRandom((PINS_S).length)], 1); } else { st.takeItems(57, 136600); st.takeItems(13901, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("c_grade_pouch")) { if (st.getQuestItemsCount(13918) > 0) { if (st.getQuestItemsCount(57) > 2600) { if (Rnd.get(100) < 30) { st.takeItems(57, 2600); st.takeItems(13918, 1); st.giveItems(POUCHS_C[st.getRandom((POUCHS_C).length)], 1); } else { st.takeItems(57, 2600); st.takeItems(13918, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("b_grade_pouch")) { if (st.getQuestItemsCount(13919) > 0) { if (st.getQuestItemsCount(57) > 9400) { if (Rnd.get(100) < 25) { st.takeItems(57, 9400); st.takeItems(13919, 1); st.giveItems(POUCHS_B[st.getRandom((POUCHS_B).length)], 1); } else { st.takeItems(57, 9400); st.takeItems(13919, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("a_grade_pouch")) { if (st.getQuestItemsCount(13920) > 0) { if (st.getQuestItemsCount(57) > 21200) { if (Rnd.get(100) < 20) { st.takeItems(57, 21200); st.takeItems(13920, 1); st.giveItems(POUCHS_A[st.getRandom((POUCHS_A).length)], 1); } else { st.takeItems(57, 21200); st.takeItems(13920, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } else if (event.equalsIgnoreCase("s_grade_pouch")) { if (st.getQuestItemsCount(13921) > 0) { if (st.getQuestItemsCount(57) > 109300) { if (Rnd.get(100) < 15) { st.takeItems(57, 109300); st.takeItems(13921, 1); st.giveItems(POUCHS_S[st.getRandom((POUCHS_S).length)], 1); } else { st.takeItems(57, 109300); st.takeItems(13921, 1); npc.broadcastPacket( new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), "真是狼狽不堪啊...力氣大,果然不好控制。")); } return null; } else htmltext = npc.getNpcId() + "-5.htm"; } else htmltext = npc.getNpcId() + "-4.htm"; st.exitQuest(true); } return htmltext; }