@Override public String onTalk(L2Npc npc, L2PcInstance player) { if (npc.getId() == NPCS[0]) // Pathfinder Worker { final L2TownZone town = TownManager.getTown(npc.getX(), npc.getY(), npc.getZ()); final int townId = ((town == null) ? 0 : town.getTownId()); player.getVariables().set(DELUSION_RETURN, townId); player.teleToLocation(HALL_LOCATIONS[getRandom(HALL_LOCATIONS.length)], false); } else { final int townId = player.getVariables().getInt(DELUSION_RETURN, 0); player.teleToLocation(RETURN_LOCATIONS.get(townId), true); player.getVariables().remove(DELUSION_RETURN); } return super.onTalk(npc, player); }
private static boolean rewardDimensionalDiamonds(L2PcInstance player) { final PlayerVariables vars = player.getVariables(); if (vars.getInt("2ND_CLASS_DIAMOND_REWARD", 0) == 0) { if (player.getClassId() == ClassId.knight) { rewardItems(player, DIMENSIONAL_DIAMOND, 45); } else { rewardItems(player, DIMENSIONAL_DIAMOND, 61); } vars.set("2ND_CLASS_DIAMOND_REWARD", 1); return true; } return false; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState qs = getQuestState(player, false); if (qs == null) { return null; } String htmltext = null; switch (event) { case "ACCEPT": { if (qs.isCreated()) { qs.startQuest(); if (!hasQuestItems(player, MIRIENS_1ST_SIGIL)) { giveItems(player, MIRIENS_1ST_SIGIL, 1); } playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); if (player.getVariables().getInt("2ND_CLASS_DIAMOND_REWARD", 0) == 0) { giveItems(player, DIMENSIONAL_DIAMOND, 168); player.getVariables().set("2ND_CLASS_DIAMOND_REWARD", 1); htmltext = "30461-04a.htm"; } else { htmltext = "30461-04.htm"; } } break; } case "30103-02.html": case "30103-03.html": case "30111-02.html": case "30111-03.html": case "30111-04.html": case "30111-08.html": case "30111-14.html": case "30115-02.html": case "30316-03.html": case "30461-09.html": case "30608-07.html": case "30609-02.html": case "30609-03.html": case "30609-04.html": case "30609-08.html": case "30609-13.html": case "30610-02.html": case "30610-03.html": case "30610-04.html": case "30610-05.html": case "30610-06.html": case "30610-07.html": case "30610-08.html": case "30610-09.html": case "30610-13.html": case "30611-02.html": case "30611-03.html": case "30611-06.html": case "30612-03.html": { htmltext = event; break; } case "30461-10.html": { if (hasQuestItems(player, MIRIENS_2ND_SIGIL, SYMBOL_OF_JUREK)) { takeItems(player, MIRIENS_2ND_SIGIL, 1); giveItems(player, MIRIENS_3RD_SIGIL, 1); takeItems(player, SYMBOL_OF_JUREK, 1); qs.setCond(19, true); htmltext = event; } break; } case "30070-02.html": { giveItems(player, HIGH_PRIESTS_SIGIL, 1); giveItems(player, SYLVAINS_LETTER, 1); qs.setCond(2, true); htmltext = event; break; } case "30071-04.html": { if (hasQuestItems(player, CRERAS_PAINTING2)) { takeItems(player, CRERAS_PAINTING2, 1); giveItems(player, CRERAS_PAINTING3, 1); qs.setCond(10, true); htmltext = event; } break; } case "30103-04.html": { giveItems(player, VALKONS_REQUEST, 1); htmltext = event; break; } case "30111-05.html": { if (hasQuestItems(player, CRONOS_LETTER)) { takeItems(player, CRONOS_LETTER, 1); giveItems(player, DIETERS_KEY, 1); qs.setCond(21, true); htmltext = event; } break; } case "30111-09.html": { if (hasQuestItems(player, CRETAS_2ND_LETTER)) { takeItems(player, CRETAS_2ND_LETTER, 1); giveItems(player, DIETERS_LETTER, 1); giveItems(player, DIETERS_DIARY, 1); qs.setCond(23, true); htmltext = event; } break; } case "30115-03.html": { giveItems(player, JUREKS_LIST, 1); giveItems(player, GRAND_MAGISTER_SIGIL, 1); qs.setCond(16, true); htmltext = event; break; } case "30230-02.html": { if (hasQuestItems(player, DIETERS_LETTER)) { takeItems(player, DIETERS_LETTER, 1); giveItems(player, RAUTS_LETTER_ENVELOPE, 1); qs.setCond(24, true); htmltext = event; } break; } case "30316-02.html": { if (hasQuestItems(player, RAUTS_LETTER_ENVELOPE)) { takeItems(player, RAUTS_LETTER_ENVELOPE, 1); giveItems(player, SCRIPTURE_CHAPTER_1, 1); giveItems(player, STRONG_LIGUOR, 1); qs.setCond(25, true); htmltext = event; } break; } case "30608-02.html": { if (hasQuestItems(player, SYLVAINS_LETTER)) { giveItems(player, MARIAS_1ST_LETTER, 1); takeItems(player, SYLVAINS_LETTER, 1); qs.setCond(3, true); htmltext = event; } break; } case "30608-08.html": { if (hasQuestItems(player, CRETAS_1ST_LETTER)) { giveItems(player, LUCILLAS_HANDBAG, 1); takeItems(player, CRETAS_1ST_LETTER, 1); qs.setCond(7, true); htmltext = event; } break; } case "30608-14.html": { if (hasQuestItems(player, CRERAS_PAINTING3)) { takeItems(player, CRERAS_PAINTING3, 1); takeItems(player, BROWN_SCROLL_SCRAP, -1); giveItems(player, CRYSTAL_OF_PURITY1, 1); qs.setCond(13, true); htmltext = event; } break; } case "30609-05.html": { if (hasQuestItems(player, MARIAS_2ND_LETTER)) { takeItems(player, MARIAS_2ND_LETTER, 1); giveItems(player, CRETAS_1ST_LETTER, 1); qs.setCond(6, true); htmltext = event; } break; } case "30609-09.html": { if (hasQuestItems(player, LUCILLAS_HANDBAG)) { takeItems(player, LUCILLAS_HANDBAG, 1); giveItems(player, CRERAS_PAINTING1, 1); qs.setCond(8, true); htmltext = event; } break; } case "30609-14.html": { if (hasQuestItems(player, DIETERS_KEY)) { takeItems(player, DIETERS_KEY, 1); giveItems(player, CRETAS_2ND_LETTER, 1); qs.setCond(22, true); htmltext = event; } break; } case "30610-10.html": { giveItems(player, CRONOS_SIGIL, 1); giveItems(player, CRONOS_LETTER, 1); qs.setCond(20, true); htmltext = event; break; } case "30610-14.html": { if (hasQuestItems( player, SCRIPTURE_CHAPTER_1, SCRIPTURE_CHAPTER_2, SCRIPTURE_CHAPTER_3, SCRIPTURE_CHAPTER_4)) { takeItems(player, CRONOS_SIGIL, 1); takeItems(player, DIETERS_DIARY, 1); takeItems(player, TRIFFS_RING, 1); takeItems(player, SCRIPTURE_CHAPTER_1, 1); takeItems(player, SCRIPTURE_CHAPTER_2, 1); takeItems(player, SCRIPTURE_CHAPTER_3, 1); takeItems(player, SCRIPTURE_CHAPTER_4, 1); giveItems(player, SYMBOL_OF_CRONOS, 1); qs.setCond(31, true); htmltext = event; } break; } case "30611-04.html": { if (hasQuestItems(player, STRONG_LIGUOR)) { giveItems(player, TRIFFS_RING, 1); takeItems(player, STRONG_LIGUOR, 1); qs.setCond(26, true); htmltext = event; } break; } case "30612-04.html": { giveItems(player, CASIANS_LIST, 1); qs.setCond(28, true); htmltext = event; break; } case "30612-07.html": { giveItems(player, SCRIPTURE_CHAPTER_4, 1); takeItems(player, POITANS_NOTES, 1); takeItems(player, CASIANS_LIST, 1); takeItems(player, GHOULS_SKIN, -1); takeItems(player, MEDUSAS_BLOOD, -1); takeItems(player, FETTERED_SOULS_ICHOR, -1); takeItems(player, ENCHANTED_GARGOYLES_NAIL, -1); qs.setCond(30, true); htmltext = event; break; } } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState qs = getQuestState(player, false); if (qs == null) { return null; } String htmltext = null; switch (event) { case "ACCEPT": { if (qs.isCreated()) { qs.startQuest(); qs.setMemoState(1); giveItems(player, VOUCHER_OF_TRIAL, 1); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); if (player.getVariables().getInt("2ND_CLASS_DIAMOND_REWARD", 0) == 0) { giveItems(player, DIMENSIONAL_DIAMOND, 49); player.getVariables().set("2ND_CLASS_DIAMOND_REWARD", 1); htmltext = "30648-04a.htm"; } else { htmltext = "30648-04.htm"; } } break; } case "30648-05.html": case "30648-06.html": case "30648-07.html": case "30648-08.html": { htmltext = event; break; } case "30362-05.html": { if (qs.isMemoState(15) && hasQuestItems(player, BOOK_OF_DARKNESS)) { takeItems(player, BOOK_OF_DARKNESS, 1); qs.setMemoState(16); qs.setCond(16, true); htmltext = event; } break; } case "30362-04.html": { if (qs.isMemoState(15) && hasQuestItems(player, BOOK_OF_DARKNESS)) { qs.setMemoState(16); qs.setCond(16, true); htmltext = event; } break; } case "30649-04.html": { if (qs.isMemoState(4) && hasQuestItems(player, ESSENSE_OF_FLAME)) { giveItems(player, SPIRIT_OF_FLAME, 1); takeItems(player, ESSENSE_OF_FLAME, 1); qs.setMemoState(5); qs.setCond(5, true); htmltext = event; } break; } case "30650-02.html": { if (qs.isMemoState(6) && hasQuestItems(player, TAG_OF_RUMOR)) { if (getQuestItemsCount(player, ADENA) >= 100000) { giveItems(player, BOOK_OF_GERALD, 1); takeItems(player, ADENA, 100000); qs.setMemoState(7); htmltext = event; } else { htmltext = "30650-03.html"; } } break; } case "30650-03.html": { if (qs.isMemoState(6) && hasQuestItems(player, TAG_OF_RUMOR)) { htmltext = event; } break; } case "30652-02.html": { if (qs.isMemoState(14) && hasQuestItems(player, DEBRIS_OF_WILLOW)) { giveItems(player, BOOK_OF_DARKNESS, 1); takeItems(player, DEBRIS_OF_WILLOW, 1); qs.setMemoState(15); qs.setCond(15, true); htmltext = event; } break; } } return htmltext; }
@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { final QuestState qs = getQuestState(player, false); if (qs == null) { return null; } String htmltext = null; switch (event) { case "ACCEPT": { if (qs.isCreated()) { qs.startQuest(); qs.setMemoState(1); playSound(player, QuestSound.ITEMSOUND_QUEST_MIDDLE); if (player.getVariables().getInt("2ND_CLASS_DIAMOND_REWARD", 0) == 0) { giveItems(player, DIMENSIONAL_DIAMOND, 23); player.getVariables().set("2ND_CLASS_DIAMOND_REWARD", 1); htmltext = "30531-04a.htm"; } else { htmltext = "30531-04.htm"; } } break; } case "30533-02.html": { qs.setMemoState(2); htmltext = event; break; } case "30556-02.html": case "30556-03.html": case "30556-04.html": { htmltext = event; break; } case "30556-05.html": { if (hasQuestItems(player, PAINT_OF_TELEPORT_DEVICE)) { giveItems(player, BROKEN_TELEPORT_DEVICE, 1); takeItems(player, PAINT_OF_TELEPORT_DEVICE, 1); player.teleToLocation(140352, -194133, -3146); startQuestTimer("SPAWN_KING_BUGBEAR", 5000, npc, player); htmltext = event; } break; } case "30671-02.html": { giveItems(player, PAINT_OF_KAMURU, 1); htmltext = event; break; } case "30673-04.html": { if (hasQuestItems(player, INGREDIENTS_OF_ANTIDOTE) && (getQuestItemsCount(player, STINGER_WASP_NEEDLE) >= 10) && (getQuestItemsCount(player, MARSH_SPIDERS_WEB) >= 10) && (getQuestItemsCount(player, BLOOD_OF_LEECH) >= 10)) { giveItems(player, REPORT_OF_CRUMA, 1); takeItems(player, STINGER_WASP_NEEDLE, -1); takeItems(player, MARSH_SPIDERS_WEB, -1); takeItems(player, BLOOD_OF_LEECH, -1); takeItems(player, INGREDIENTS_OF_ANTIDOTE, 1); htmltext = event; } break; } case "SPAWN_KING_BUGBEAR": { addAttackPlayerDesire( addSpawn(KING_BUGBEAR, 140395, -194147, -3146, 0, false, 200000, false), player); addAttackPlayerDesire( addSpawn(KING_BUGBEAR, 140395, -194147, -3146, 0, false, 200000, false), player); addAttackPlayerDesire( addSpawn(KING_BUGBEAR, 140395, -194147, -3146, 0, false, 200000, false), player); break; } } return htmltext; }