@Override public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(getClass()); if (st == null) { return getNoQuestMsg(player); } if (event.equalsIgnoreCase("glyvka_q0134_03.htm") && st.getState() == CREATED) { st.startQuest(); } else if (event.equalsIgnoreCase("glyvka_q0134_06.htm") && st.getState() == STARTED) { st.setCond(2); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); } else if (event.equalsIgnoreCase("glyvka_q0134_11.htm") && st.getState() == STARTED && st.getCond() == 5) { st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH); st.unset("Report"); st.giveAdena(15100, true); st.giveItems(Badge_Temple_Missionary, 1); st.addExpAndSp(30000, 2000); st.exitQuest(QuestType.ONE_TIME); } else if (event.equalsIgnoreCase("scroll_seller_rouke_q0134_03.htm") && st.getState() == STARTED) { st.setCond(3); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); } else if (event.equalsIgnoreCase("scroll_seller_rouke_q0134_09.htm") && st.getState() == STARTED && st.getInt("Report") == 1) { st.setCond(5); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); st.giveItems(Roukes_Report, 1); st.unset("Report"); } return event; }
@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 onAdvEvent(String event, L2Npc npc, L2PcInstance player) { QuestState st = player.getQuestState(getClass()); if (st == null) { return null; } switch (event) { case "32593-04.htm": st.startQuest(); break; case "30857-04.htm": st.setCond(2); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32594-03.htm": st.setCond(3); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32595-04.htm": L2Npc monster = addSpawn(SHILENSEVIL, 152520, -57685, -3438, 0, false, 60000, true); monster.broadcastPacket( new NS( monster.getObjectId(), ChatType.NPC_ALL, monster.getNpcId(), NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM)); monster.setRunning(); monster.getAttackable().attackCharacter(player); break; case "32595-08.htm": st.setCond(5); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32596-04.htm": st.setCond(6); st.giveItems(TEXT, 1); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32593-08.htm": if (player.isSubClassActive()) { return "subclass_forbidden.htm"; } st.takeItems(TEXT, 1); st.takeItems(SCULPTURE, 1); st.addExpAndSp(10000000, 2500000); st.unset("cond"); st.exitQuest(QuestType.ONE_TIME); st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH); break; } return event; }
@Override public String onAsk(L2PcInstance player, L2Npc npc, QuestState st, int reply) { int npcId = npc.getNpcId(); int cond = st.getCond(); if (npcId == Kusto) { if (reply == 1 && cond == 2) { st.setCond(3); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); return "head_blacksmith_kusto_q0190_06.htm"; } } else if (npcId == Juris) { if (reply == 1) { return "juria_q0190_02.htm"; } else if (reply == 2 && cond == 1) { st.setCond(2); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); return "juria_q0190_03.htm"; } } return null; }
@Override public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) { QuestState st = player.getQuestState(getClass()); if (st == null) { return null; } if (npc.getNpcId() == SHILENSEVIL && st.getCond() == 3) { npc.broadcastPacket( new NS( npc.getObjectId(), ChatType.NPC_ALL, npc.getNpcId(), NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU) .addStringParameter(player.getName())); st.giveItems(SCULPTURE, 1); st.setCond(4); } return null; }
@Override public String onKill(L2Npc npc, L2PcInstance player, boolean isPet) { QuestState qs = player.getQuestState(getClass()); if (qs == null) { return null; } if (qs.getState() == STARTED && qs.getCond() == 3) { if (npc.getNpcId() == Cruma_Marshlands_Traitor) { qs.giveItems(Giants_Technology_Report, 1); if (qs.getQuestItemsCount(Giants_Technology_Report) < 3) { qs.playSound(QuestSound.ITEMSOUND_QUEST_ITEMGET); } else { qs.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); qs.setCond(4); } } else if (qs.getQuestItemsCount(Giants_Experimental_Tool) < 1) { if (Rnd.getChance(Giants_Experimental_Tool_Fragment_chance)) { qs.giveItems(Giants_Experimental_Tool_Fragment, 1); } } else { qs.takeItems(Giants_Experimental_Tool, 1); if (Rnd.getChance(Cruma_Marshlands_Traitor_spawnchance)) { qs.addSpawn( Cruma_Marshlands_Traitor, qs.getPlayer().getX(), qs.getPlayer().getY(), qs.getPlayer().getZ(), 0, true, 900000); } } } return null; }
@Override public String onEvent(String event, QuestState st) { String htmltext = event; switch (event) { case "32114-05.htm": st.startQuest(); break; case "32114-12.htm": st.giveItems(GAZKHFRAG, 1); st.setCond(2); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32114-13.htm": st.setCond(2); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32117-08.htm": st.setCond(3); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32117-16.htm": st.setCond(5); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32119-20.htm": st.setCond(6); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32120-19.htm": st.setCond(7); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "32121-23.htm": st.giveItems(EPITAPH, 1); st.setCond(8); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); break; case "T32119": htmltext = "32119-05.htm"; if (st.getInt("T32119") < 1) { st.set("T32119", "1"); } break; case "E32119": htmltext = "32119-06.htm"; if (st.getInt("E32119") < 1) { st.set("E32119", "1"); } break; case "P32119": htmltext = "32119-07.htm"; if (st.getInt("P32119") < 1) { st.set("P32119", "1"); } break; case "U32119": if (st.getInt("U32119") < 1) { st.set("U32119", "1"); } htmltext = getWordText32119(st); break; case "T32120": htmltext = "32120-05.htm"; if (st.getInt("T32120") < 1) { st.set("T32120", "1"); } break; case "O32120": htmltext = "32120-06.htm"; if (st.getInt("O32120") < 1) { st.set("O32120", "1"); } break; case "O32120_2": htmltext = "32120-07.htm"; if (st.getInt("O32120_2") < 1) { st.set("O32120_2", "1"); } break; case "N32120": if (st.getInt("N32120") < 1) { st.set("N32120", "1"); } htmltext = getWordText32120(st); break; case "W32121": htmltext = "32121-05.htm"; if (st.getInt("W32121") < 1) { st.set("W32121", "1"); } break; case "A32121": htmltext = "32121-06.htm"; if (st.getInt("A32121") < 1) { st.set("A32121", "1"); } break; case "G32121": htmltext = "32121-07.htm"; if (st.getInt("G32121") < 1) { st.set("G32121", "1"); } break; case "U32121": if (st.getInt("U32121") < 1) { st.set("U32121", "1"); } htmltext = getWordText32121(st); break; } return htmltext; }
@Override public String onTalk(L2Npc npc, QuestState st) { String htmltext = getNoQuestMsg(st.getPlayer()); int npcId = npc.getNpcId(); int cond = st.getCond(); if (npcId == Mushika) { QuestState qs124 = st.getPlayer().getQuestState(_00124_MeetingTheElroki.class); if (cond == 0) { if (st.getPlayer().getLevel() < 76) { htmltext = "32114-02.htm"; st.exitQuest(QuestType.REPEATABLE); } else if (qs124 != null && qs124.isCompleted()) { htmltext = "32114-01.htm"; } else { htmltext = "32114-04.htm"; st.exitQuest(QuestType.REPEATABLE); } } else if (cond == 1) { htmltext = "32114-10.htm"; } else if (cond > 1 && cond < 8) { htmltext = "32114-14.htm"; } else if (cond == 8) { st.unset("T32119"); st.unset("E32119"); st.unset("P32119"); st.unset("U32119"); st.unset("T32120"); st.unset("O32120"); st.unset("O32120_2"); st.unset("N32120"); st.unset("W32121"); st.unset("A32121"); st.unset("G32121"); st.unset("U32121"); st.unset("cond"); htmltext = "32114-15.htm"; st.addExpAndSp(898056, 1008100); st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH); st.exitQuest(QuestType.ONE_TIME); } } else if (npcId == Karakawei) { if (cond == 1) { htmltext = "32117-02.htm"; } else if (cond == 2) { htmltext = "32117-01.htm"; } else if (cond == 3 && (st.getQuestItemsCount(OrClaw) < 2 || st.getQuestItemsCount(DienBone) < 2)) { htmltext = "32117-12.htm"; } else if (cond == 3 && st.getQuestItemsCount(OrClaw) == 2 && st.getQuestItemsCount(DienBone) == 2) { htmltext = "32117-11.htm"; st.takeItems(OrClaw, 2); st.takeItems(DienBone, 2); st.setCond(4); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); } else if (cond > 4 && cond < 8) { htmltext = "32117-19.htm"; } else if (cond == 8) { htmltext = "32117-20.htm"; } } else if (npcId == UluKaimu) { if (cond == 5) { htmltext = "32119-01.htm"; } else if (cond < 5) { htmltext = "32119-02.htm"; } else if (cond > 5) { htmltext = "32119-03.htm"; } } else if (npcId == BaluKaimu) { if (cond == 6) { htmltext = "32120-01.htm"; } else if (cond < 6) { htmltext = "32120-02.htm"; } else if (cond > 6) { htmltext = "32120-03.htm"; } } else if (npcId == ChutaKaimu) { if (cond == 7) { htmltext = "32121-01.htm"; } else if (cond < 7) { htmltext = "32121-02.htm"; } else if (cond > 7) { htmltext = "32121-03.htm"; } else if (cond == 8) { htmltext = "32121-24.htm"; } } else { htmltext = getAlreadyCompletedMsg(st.getPlayer(), QuestType.ONE_TIME); } return htmltext; }
@Override public String onTalk(L2Npc npc, QuestState st) { int npcId = npc.getNpcId(); int cond = st.getCond(); if (npcId == Kusto) { switch (st.getState()) { case CREATED: QuestState pqs = st.getPlayer().getQuestState(_00187_NikolasHeart.class); if (st.getPlayer().getLevel() >= 42) { return pqs != null && pqs.isCompleted() ? "head_blacksmith_kusto_q0190_01.htm" : getNeedCompletedQuest(187); } else { return "head_blacksmith_kusto_q0190_02.htm"; } case STARTED: switch (cond) { case 1: return "head_blacksmith_kusto_q0190_04.htm"; case 2: return "head_blacksmith_kusto_q0190_05.htm"; case 3: return "head_blacksmith_kusto_q0190_07.htm"; case 5: st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH); st.giveAdena(127224, true); st.addExpAndSp(634158, 443538); st.exitQuest(QuestType.ONE_TIME); return "head_blacksmith_kusto_q0190_08.htm"; } break; case COMPLETED: return getAlreadyCompletedMsg(st.getPlayer(), QuestType.ONE_TIME); } } else if (npcId == Juris) { if (st.isStarted()) { return cond == 1 ? "juria_q0190_01.htm" : "juria_q0190_04.htm"; } } else if (npcId == Lorain) { if (st.isStarted()) { if (cond == 3) { st.setCond(4); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); return "researcher_lorain_q0190_01.htm"; } else { return "researcher_lorain_q0190_02.htm"; } } } else if (npcId == Nikola) { if (st.isStarted()) { if (cond == 4) { st.setCond(5); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); return "maestro_nikola_q0190_01.htm"; } else { return "maestro_nikola_q0190_02.htm"; } } } return null; }
@Override public String onKill(L2Npc npc, QuestState st) { int tempCount = st.getInt("over_tempcount"); if (ArrayUtils.contains(_mobsGrendel, npc.getNpcId())) { int g0 = st.getInt("grendel_kill"); int g1 = st.getInt("over_hit"); if (g0 < 10) { g0++; if (((L2Attackable) npc).isOverhit()) { g1++; tempCount++; st.set("over_tempcount", String.valueOf(tempCount)); st.set("over_hit", String.valueOf(g1)); st.set("grendel_kill", String.valueOf(g0)); } else { st.set("grendel_kill", String.valueOf(g0)); // всего киллов моба st.set("count", String.valueOf(tempCount)); // записываем предыдущее комбо оверхитов st.set("over_tempcount", "0"); // Обнуляем временный счетчик оверхитов } } } else if (ArrayUtils.contains(_mobsBuffalo, npc.getNpcId())) { int g0 = st.getInt("buffalo_kill"); int g1 = st.getInt("over_hit"); if (g0 < 10) { g0++; if (((L2Attackable) npc).isOverhit()) { g1++; tempCount++; st.set("over_tempcount", String.valueOf(tempCount)); st.set("over_hit", String.valueOf(g1)); st.set("buffalo_kill", String.valueOf(g0)); } else { st.set("buffalo_kill", String.valueOf(g0)); st.set("count", String.valueOf(tempCount)); // записываем предыдущее комбо оверхитов st.set("over_tempcount", "0"); // Обнуляем временный счетчик оверхитов } } } else if (ArrayUtils.contains(_mobsCougar, npc.getNpcId())) { int g0 = st.getInt("cougar_kill"); int g1 = st.getInt("over_hit"); if (g0 < 10) { g0++; if (((L2Attackable) npc).isOverhit()) { g1++; tempCount++; st.set("over_tempcount", String.valueOf(tempCount)); st.set("over_hit", String.valueOf(g1)); st.set("cougar_kill", String.valueOf(g0)); } else { st.set("cougar_kill", String.valueOf(g0)); st.set("count", String.valueOf(tempCount)); // записываем предыдущее комбо оверхитов st.set("over_tempcount", "0"); // Обнуляем временный счетчик оверхитов } } } else if (ArrayUtils.contains(_mobsKookaburra, npc.getNpcId())) { int g0 = st.getInt("kookaburra_kill"); int g1 = st.getInt("over_hit"); if (g0 < 10) { g0++; if (((L2Attackable) npc).isOverhit()) { g1++; tempCount++; st.set("over_tempcount", String.valueOf(tempCount)); st.set("over_hit", String.valueOf(g1)); st.set("kookaburra_kill", String.valueOf(g0)); } else { st.set("kookaburra_kill", String.valueOf(g0)); st.set("count", String.valueOf(tempCount)); // записываем предыдущее комбо оверхитов st.set("over_tempcount", "0"); // Обнуляем временный счетчик оверхитов } } } if (st.getInt("grendel_kill") + st.getInt("buffalo_kill") + st.getInt("cougar_kill") + st.getInt("kookaburra_kill") >= 40) { st.setCond(2); } if (st.getInt("over_hit") == 40) // Заглушка на случай совершения 40 из 40 оверхитов { st.set("count", "40"); } return super.onKill(npc, st); }
@Override public String onAsk(L2PcInstance player, L2Npc npc, QuestState st, int reply) { int npcId = npc.getNpcId(); int cond = st.getCond(); if (npcId == Rafforty) { switch (reply) { case 1: return "repre_q10283_04.htm"; case 2: if (cond == 1) { return "repre_q10283_07.htm"; } case 3: if (cond == 1) { return "repre_q10283_08.htm"; } case 4: if (cond == 1) { st.setCond(2); st.setMemoState(2); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); return "repre_q10283_09.htm"; } } } else if (npcId == Kier) { switch (reply) { case 1: if (cond == 2) { return "keier_q10283_01.htm"; } case 2: if (cond == 2) { if (currentTalkingWithKier == -1) { st.setCond(3); st.playSound(QuestSound.ITEMSOUND_QUEST_MIDDLE); currentTalkingWithKier = player.getObjectId(); L2Npc jinia = addSpawn(Jinia, 104476, -107535, -3688, 44954, false, 60000); jinia.setOwner(player); startQuestTimer("resetCurrentTalkingWithKier", 60000, npc, player); } else { return currentTalkingWithKier == player.getObjectId() ? "keier_q10283_03.htm" : "keier_q10283_02.htm"; } } } } else if (npcId == Jinia) { switch (reply) { case 1: if (st.getMemoState() == 2) { return "jinia_npc_q10283_01.htm"; } break; case 2: if (st.getMemoState() == 2) { return "jinia_npc_q10283_02.htm"; } break; case 3: if (st.getMemoState() == 2) { st.giveAdena(190000, true); st.addExpAndSp(627000, 50300); st.playSound(QuestSound.ITEMSOUND_QUEST_FINISH); st.exitQuest(QuestType.ONE_TIME); npc.getLocationController() .delete(); // TODO: myself->AddFleeDesire(talker,1000000); бежать в рандомном // направлении и deleteMe return "jinia_npc_q10283_03.htm"; } } } return null; }
@Override public String onTalk(L2Npc npc, QuestState st) { L2PcInstance player = st.getPlayer(); if (st.getState() == COMPLETED) { return getAlreadyCompletedMsg(player, QuestType.ONE_TIME); } int npcId = npc.getNpcId(); if (st.getState() == CREATED) { if (npcId != Glyvka) { return getNoQuestMsg(player); } if (player.getLevel() < 35) { st.exitQuest(QuestType.REPEATABLE); return "glyvka_q0134_02.htm"; } st.setCond(0); return "glyvka_q0134_01.htm"; } int cond = st.getCond(); if (npcId == Glyvka && st.getState() == STARTED) { if (cond == 1) { return "glyvka_q0134_03.htm"; } if (cond == 5) { if (st.getInt("Report") == 1) { return "glyvka_q0134_09.htm"; } if (st.getQuestItemsCount(Roukes_Report) > 0) { st.takeItems(Roukes_Report, -1); st.set("Report", "1"); return "glyvka_q0134_08.htm"; } return getNoQuestMsg(player); } return "glyvka_q0134_07.htm"; } if (npcId == Rouke && st.getState() == STARTED) { if (cond == 2) { return "scroll_seller_rouke_q0134_02.htm"; } if (cond == 5) { return "scroll_seller_rouke_q0134_10.htm"; } if (cond == 3) { long Tools = st.getQuestItemsCount(Giants_Experimental_Tool_Fragment) / 10; if (Tools < 1) { return "scroll_seller_rouke_q0134_04.htm"; } st.takeItems(Giants_Experimental_Tool_Fragment, Tools * 10); st.giveItems(Giants_Experimental_Tool, Tools); return "scroll_seller_rouke_q0134_05.htm"; } if (cond == 4) { if (st.getInt("Report") == 1) { return "scroll_seller_rouke_q0134_07.htm"; } if (st.getQuestItemsCount(Giants_Technology_Report) > 2) { st.takeItems(Giants_Experimental_Tool_Fragment, -1); st.takeItems(Giants_Experimental_Tool, -1); st.takeItems(Giants_Technology_Report, -1); st.set("Report", "1"); return "scroll_seller_rouke_q0134_06.htm"; } return getNoQuestMsg(player); } } return getNoQuestMsg(player); }