123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450 |
- /*
- * Copyright (C) 2004-2015 L2J DataPack
- *
- * This file is part of L2J DataPack.
- *
- * L2J DataPack is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * L2J DataPack is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
- package quests.Q10294_SevenSignsToTheMonasteryOfSilence;
- import quests.Q10293_SevenSignsForbiddenBookOfTheElmoreAdenKingdom.Q10293_SevenSignsForbiddenBookOfTheElmoreAdenKingdom;
- import com.l2jserver.gameserver.model.actor.L2Npc;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.holders.SkillHolder;
- import com.l2jserver.gameserver.model.quest.Quest;
- import com.l2jserver.gameserver.model.quest.QuestState;
- /**
- * Seven Signs, To the Monastery of Silence (10294)
- * @author Adry_85
- */
- public final class Q10294_SevenSignsToTheMonasteryOfSilence extends Quest
- {
- // NPCs
- private static final int ELCADIA = 32784;
- private static final int ELCADIA_INSTANCE = 32787;
- private static final int ERIS_EVIL_THOUGHTS = 32792;
- private static final int SOLINAS_EVIL_THOUGHTS = 32793;
- private static final int JUDE_VAN_ETINA = 32797;
- private static final int RELIC_GUARDIAN = 32803;
- private static final int RELIC_WATCHER1 = 32804;
- private static final int RELIC_WATCHER2 = 32805;
- private static final int RELIC_WATCHER3 = 32806;
- private static final int RELIC_WATCHER4 = 32807;
- private static final int ODD_GLOBE = 32815;
- private static final int READING_DESK1 = 32821;
- private static final int READING_DESK2 = 32822;
- private static final int READING_DESK3 = 32823;
- private static final int READING_DESK4 = 32824;
- private static final int READING_DESK5 = 32825;
- private static final int READING_DESK6 = 32826;
- private static final int READING_DESK7 = 32827;
- private static final int READING_DESK8 = 32828;
- private static final int READING_DESK9 = 32829;
- private static final int READING_DESK10 = 32830;
- private static final int READING_DESK11 = 32831;
- private static final int READING_DESK12 = 32832;
- private static final int READING_DESK13 = 32833;
- private static final int READING_DESK14 = 32834;
- private static final int READING_DESK15 = 32835;
- private static final int READING_DESK16 = 32836;
- private static final int JUDE_EVIL_THOUGHTS = 32888;
- // Monsters
- private static final int SOLINA_LAY_BROTHER = 22125;
- private static final int GUIDE_SOLINA = 27415;
- // Misc
- private static final int MIN_LEVEL = 81;
- // Buffs
- private static final SkillHolder VAMPIRIC_RAGE = new SkillHolder(6727, 1);
- private static final SkillHolder RESIST_HOLY = new SkillHolder(6729, 1);
- private static final SkillHolder[] MAGE_BUFFS =
- {
- new SkillHolder(6714, 1), // Wind Walk of Elcadia
- new SkillHolder(6721, 1), // Empower of Elcadia
- new SkillHolder(6722, 1), // Acumen of Elcadia
- new SkillHolder(6717, 1), // Berserker Spirit of Elcadia
- };
- private static final SkillHolder[] WARRIOR_BUFFS =
- {
- new SkillHolder(6714, 1), // Wind Walk of Elcadia
- new SkillHolder(6715, 1), // Haste of Elcadia
- new SkillHolder(6716, 1), // Might of Elcadia
- new SkillHolder(6717, 1), // Berserker Spirit of Elcadia
- };
-
- public Q10294_SevenSignsToTheMonasteryOfSilence()
- {
- super(10294, Q10294_SevenSignsToTheMonasteryOfSilence.class.getSimpleName(), "Seven Signs, To the Monastery of Silence");
- addFirstTalkId(ELCADIA_INSTANCE);
- addStartNpc(ELCADIA, ODD_GLOBE, ELCADIA_INSTANCE, RELIC_GUARDIAN);
- addTalkId(ELCADIA, ELCADIA_INSTANCE, ERIS_EVIL_THOUGHTS, RELIC_GUARDIAN, ODD_GLOBE, READING_DESK1, READING_DESK2, READING_DESK3, READING_DESK4, READING_DESK5, READING_DESK6, READING_DESK7, READING_DESK8, READING_DESK9, READING_DESK10, READING_DESK11, READING_DESK12, READING_DESK13, READING_DESK14, READING_DESK15, READING_DESK16, JUDE_VAN_ETINA, SOLINAS_EVIL_THOUGHTS, RELIC_WATCHER1, RELIC_WATCHER2, RELIC_WATCHER3, RELIC_WATCHER4);
- }
-
- @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 "32784-03.htm":
- case "32784-04.htm":
- {
- htmltext = event;
- break;
- }
- case "32784-05.html":
- {
- qs.startQuest();
- htmltext = event;
- break;
- }
- case "32792-02.html":
- {
- if (qs.isCond(1))
- {
- htmltext = event;
- }
- break;
- }
- case "32792-03.html":
- {
- if (qs.isCond(1))
- {
- qs.setCond(2, true);
- htmltext = event;
- }
- break;
- }
- case "32792-04.html":
- case "32792-05.html":
- case "32792-06.html":
- case "32803-02.html":
- case "32803-03.html":
- case "32822-02.html":
- case "32804-02.html":
- case "32804-04.html":
- case "32804-06.html":
- case "32804-07.html":
- case "32804-08.html":
- case "32804-09.html":
- case "32804-10.html":
- case "32805-02.html":
- case "32805-04.html":
- case "32805-06.html":
- case "32805-07.html":
- case "32805-08.html":
- case "32805-09.html":
- case "32805-10.html":
- case "32806-02.html":
- case "32806-04.html":
- case "32806-06.html":
- case "32806-07.html":
- case "32806-08.html":
- case "32806-09.html":
- case "32806-10.html":
- case "32807-02.html":
- case "32807-04.html":
- case "32807-06.html":
- case "32807-07.html":
- case "32807-08.html":
- case "32807-09.html":
- case "32807-10.html":
- {
- if (qs.isCond(2))
- {
- htmltext = event;
- }
- break;
- }
- case "32792-08.html":
- {
- if (qs.isCond(3))
- {
- qs.unset("good1");
- qs.unset("good2");
- qs.unset("good3");
- qs.unset("good4");
- addExpAndSp(player, 25000000, 2500000);
- qs.exitQuest(false, true);
- htmltext = event;
- }
- break;
- }
- case "BUFF":
- {
- npc.setTarget(player);
- if (player.isMageClass())
- {
- for (SkillHolder skill : MAGE_BUFFS)
- {
- npc.doSimultaneousCast(skill.getSkill());
- }
- }
- else
- {
- for (SkillHolder skill : WARRIOR_BUFFS)
- {
- npc.doSimultaneousCast(skill.getSkill());
- }
- }
- break;
- }
- case "RIGHT_BOOK1":
- {
- qs.set("good1", "1");
- npc.setDisplayEffect(1);
- startQuestTimer("SPAWN_MOBS", 22000, npc, player);
- htmltext = "32821-02.html";
- if (hasCheckedAllRightBooks(qs))
- {
- player.showQuestMovie(25);
- }
- break;
- }
- case "RIGHT_BOOK2":
- {
- qs.set("good2", "1");
- npc.setDisplayEffect(1);
- npc.setTarget(player);
- npc.doCast(VAMPIRIC_RAGE.getSkill());
- htmltext = "32821-02.html";
- if (hasCheckedAllRightBooks(qs))
- {
- player.showQuestMovie(25);
- }
- break;
- }
- case "RIGHT_BOOK3":
- {
- qs.set("good3", "1");
- npc.setDisplayEffect(1);
- final L2Npc jude = addSpawn(JUDE_VAN_ETINA, 85783, -253471, -8320, 65, false, 0, false, player.getInstanceId());
- jude.setTarget(player);
- jude.doCast(RESIST_HOLY.getSkill());
- htmltext = "32821-02.html";
- if (hasCheckedAllRightBooks(qs))
- {
- player.showQuestMovie(25);
- }
- break;
- }
- case "RIGHT_BOOK4":
- {
- qs.set("good4", "1");
- npc.setDisplayEffect(1);
- final L2Npc solina = addSpawn(SOLINAS_EVIL_THOUGHTS, 85793, -247581, -8320, 0, false, 0, false, player.getInstanceId());
- solina.setTarget(player);
- solina.doCast(RESIST_HOLY.getSkill());
- htmltext = "32821-02.html";
- if (hasCheckedAllRightBooks(qs))
- {
- player.showQuestMovie(25);
- }
- break;
- }
- case "DONE1":
- {
- htmltext = ((qs.getInt("good1") == 1) ? "32804-05.html" : "32804-03.html");
- break;
- }
- case "DONE2":
- {
- htmltext = ((qs.getInt("good2") == 1) ? "32805-05.html" : "32805-03.html");
- break;
- }
- case "DONE3":
- {
- htmltext = ((qs.getInt("good3") == 1) ? "32806-05.html" : "32806-03.html");
- break;
- }
- case "DONE4":
- {
- htmltext = ((qs.getInt("good4") == 1) ? "32807-05.html" : "32807-03.html");
- break;
- }
- case "SPAWN_MOBS":
- {
- addSpawn(JUDE_EVIL_THOUGHTS, 88655, -250591, -8320, 144, false, 0, false, player.getInstanceId());
- addSpawn(GUIDE_SOLINA, 88655, -250591, -8320, 144, false, 0, false, player.getInstanceId());
- addSpawn(SOLINA_LAY_BROTHER, 88655, -250591, -8320, 144, false, 0, false, player.getInstanceId());
- addSpawn(SOLINA_LAY_BROTHER, 88655, -250591, -8320, 144, false, 0, false, player.getInstanceId());
- break;
- }
- }
- return htmltext;
- }
-
- @Override
- public String onFirstTalk(L2Npc npc, L2PcInstance player)
- {
- return "32787.html";
- }
-
- @Override
- public String onTalk(L2Npc npc, L2PcInstance player)
- {
- QuestState qs = getQuestState(player, true);
- String htmltext = getNoQuestMsg(player);
- switch (npc.getId())
- {
- case ELCADIA:
- {
- if (qs.isCompleted())
- {
- htmltext = "32784-02.html";
- }
- else if (qs.isCreated())
- {
- qs = player.getQuestState(Q10293_SevenSignsForbiddenBookOfTheElmoreAdenKingdom.class.getSimpleName());
- htmltext = ((player.getLevel() >= MIN_LEVEL) && (qs != null) && (qs.isCompleted())) ? "32784-01.htm" : "32784-07.htm";
- }
- else if (qs.isStarted())
- {
- if (qs.isCond(1))
- {
- htmltext = "32784-06.html";
- }
- }
- break;
- }
- case ERIS_EVIL_THOUGHTS:
- {
- switch (qs.getCond())
- {
- case 1:
- {
- htmltext = "32792-01.html";
- break;
- }
- case 2:
- {
- htmltext = "32792-04.html";
- break;
- }
- case 3:
- {
- htmltext = ((player.isSubClassActive()) ? "32792-09.html" : "32792-07.html");
- break;
- }
- }
- break;
- }
- case RELIC_GUARDIAN:
- {
- if (qs.isCond(2))
- {
- if (hasCheckedAllRightBooks(qs))
- {
- qs.setCond(3, true);
- htmltext = "32803-04.html";
- }
- else
- {
- htmltext = "32803-01.html";
- }
- }
- else if (qs.isCond(3))
- {
- htmltext = "32803-05.html";
- }
- break;
- }
- case ODD_GLOBE:
- {
- if (qs.getCond() < 3)
- {
- htmltext = "32815-01.html";
- }
- break;
- }
- case ELCADIA_INSTANCE:
- {
- if (qs.isCond(1))
- {
- htmltext = "32787-01.html";
- }
- else if (qs.isCond(2))
- {
- htmltext = "32787-02.html";
- }
- break;
- }
- case READING_DESK2:
- case READING_DESK3:
- case READING_DESK4:
- case READING_DESK6:
- case READING_DESK7:
- case READING_DESK8:
- case READING_DESK10:
- case READING_DESK11:
- case READING_DESK12:
- case READING_DESK14:
- case READING_DESK15:
- case READING_DESK16:
- {
- if (qs.isCond(2))
- {
- htmltext = "32822-01.html";
- }
- break;
- }
- case READING_DESK1:
- {
- htmltext = ((qs.getInt("good1") == 1) ? "32821-03.html" : "32821-01.html");
- break;
- }
- case READING_DESK5:
- {
- htmltext = ((qs.getInt("good2") == 1) ? "32821-03.html" : "32825-01.html");
- break;
- }
- case READING_DESK9:
- {
- htmltext = ((qs.getInt("good3") == 1) ? "32821-03.html" : "32829-01.html");
- break;
- }
- case READING_DESK13:
- {
- htmltext = ((qs.getInt("good4") == 1) ? "32821-03.html" : "32833-01.html");
- break;
- }
- case SOLINAS_EVIL_THOUGHTS:
- case JUDE_VAN_ETINA:
- case RELIC_WATCHER1:
- case RELIC_WATCHER2:
- case RELIC_WATCHER3:
- case RELIC_WATCHER4:
- {
- if (qs.isCond(2))
- {
- htmltext = npc.getId() + "-01.html";
- }
- break;
- }
- }
- return htmltext;
- }
-
- public boolean hasCheckedAllRightBooks(QuestState qs)
- {
- return ((qs.getInt("good1") == 1) && (qs.getInt("good2") == 1) && (qs.getInt("good3") == 1) && (qs.getInt("good4") == 1));
- }
- }
|