From a7db2a938b4edc152b6cae528b399abde6064bc0 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 25 Jun 2016 12:32:08 +0000 Subject: [PATCH] Quest Awaiting the Voice of the Gods (786). Contributed by gigilo1968. --- .../Q00784_TheQuietKiller.java | 2 +- .../31616-01.htm | 4 + .../31616-02.htm | 4 + .../31616-03.htm | 4 + .../31616-04.htm | 3 + .../31616-05.html | 3 + .../31616-06.html | 5 + .../31616-07.html | 5 + .../31616-08.html | 3 + .../31616-09.html | 3 + .../31616-10.html | 3 + .../Q00786_AwaitingTheVoiceOfTheGods.java | 265 ++++++++++++++++++ .../noErtheia.html | 3 + .../no_level.html | 3 + .../scripts/quests/QuestMasterHandler.java | 4 + 15 files changed, 313 insertions(+), 1 deletion(-) create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-03.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-04.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-05.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-06.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-07.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-08.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-09.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-10.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/Q00786_AwaitingTheVoiceOfTheGods.java create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/noErtheia.html create mode 100644 trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/no_level.html diff --git a/trunk/dist/game/data/scripts/quests/Q00784_TheQuietKiller/Q00784_TheQuietKiller.java b/trunk/dist/game/data/scripts/quests/Q00784_TheQuietKiller/Q00784_TheQuietKiller.java index bb9a654740..194103e833 100644 --- a/trunk/dist/game/data/scripts/quests/Q00784_TheQuietKiller/Q00784_TheQuietKiller.java +++ b/trunk/dist/game/data/scripts/quests/Q00784_TheQuietKiller/Q00784_TheQuietKiller.java @@ -26,7 +26,7 @@ import com.l2jmobius.gameserver.model.quest.QuestState; import com.l2jmobius.gameserver.model.quest.State; /** - * The Quiet Killer (00784) + * The Quiet Killer (784) * @URL https://l2wiki.com/The_Quiet_Killer * @author Gigi */ diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-01.htm b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-01.htm new file mode 100644 index 0000000000..6e6b7ce1d3 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-01.htm @@ -0,0 +1,4 @@ +Hermit:
+Oh, I haven't seen anyone around here in a while. As you can see, there are only monsters around here.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-02.htm b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-02.htm new file mode 100644 index 0000000000..b71995255a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-02.htm @@ -0,0 +1,4 @@ +Hermit:
+I'm here waiting for the goddess' voice. Eva told me that I'll hear the voice here.
Maybe I've been here for far too long, but... I'm having weird thoughts. That doesn't mean that I'm having doubts about the story of the gods!
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-03.htm b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-03.htm new file mode 100644 index 0000000000..1e212b1e3f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-03.htm @@ -0,0 +1,4 @@ +Hermit:
+There are too many monsters here. Their existence alone goes against the gods. Maybe it's because of them that I can't hear the voice? That's why I wanted to ask you to get rid of the monsters so that I don't have to wait any longer. Can you help me?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-04.htm b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-04.htm new file mode 100644 index 0000000000..7273d7623b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-04.htm @@ -0,0 +1,3 @@ +Hermit:
+Please hunt the monsters here in the Wall of Argos and bring me 100 Eyes of Darkness. And if you can, please also collect their Dark Malice. I'll give you a bigger reward if you collect a lot of them. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-05.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-05.html new file mode 100644 index 0000000000..76bca6263f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-05.html @@ -0,0 +1,3 @@ +Hermit:
+Once again. Please hunt the monsters here in the Wall of Argos and bring me 50 Eyes of Darkness. And if you can, also collect their Dark Malice. I'll give you a bigger reward if you collect a lot of them. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-06.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-06.html new file mode 100644 index 0000000000..64890c85a5 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-06.html @@ -0,0 +1,5 @@ +Hemit:
+You got the Eyes of Darkness. You didn't get that many Wills of Darkness though. With this, I can only give you the reward for bringing the Eyes of Darkness. What do you want to do?
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-07.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-07.html new file mode 100644 index 0000000000..78b4b9e8ec --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-07.html @@ -0,0 +1,5 @@ +Hermit:
+Once you get the reward, I can't give you any more missions today. If you collect more Wills of Darkness you can get the additional rewards.
+ + + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-08.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-08.html new file mode 100644 index 0000000000..0692f57248 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-08.html @@ -0,0 +1,3 @@ +Hermit:
+Alright, please hunt more monsters. The more Wills of Darkness you collect, the greater your reward will be. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-09.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-09.html new file mode 100644 index 0000000000..e66f3409cf --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-09.html @@ -0,0 +1,3 @@ +Hermit:
+Alright. Here's your reward. I'll keep waiting for the goddess' voice. I hope your efforts weren't in vain. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-10.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-10.html new file mode 100644 index 0000000000..4c5dbac37a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/31616-10.html @@ -0,0 +1,3 @@ + +This is a daily quest which resets at 6:30am every day. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/Q00786_AwaitingTheVoiceOfTheGods.java b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/Q00786_AwaitingTheVoiceOfTheGods.java new file mode 100644 index 0000000000..e990b78b9b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/Q00786_AwaitingTheVoiceOfTheGods.java @@ -0,0 +1,265 @@ +/* + * This file is part of the L2J Mobius project. + * + * This program 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. + * + * This program 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 . + */ +package quests.Q00786_AwaitingTheVoiceOfTheGods; + +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.enums.Race; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; +import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; + +/** + * Awaiting the Voice of the Gods (786) + * @URL https://l2wiki.com/Awaiting_the_Voice_of_the_Gods + * @author Gigi + */ +public class Q00786_AwaitingTheVoiceOfTheGods extends Quest +{ + // NPC + private static final int HERMIT = 31616; + // Monsters + private static final int[] MONSTERS = + { + 21294, // Canyon Antelope + 21295, // Canyon Antelope Slave + 21296, // Canyon Bandersnatch + 21297, // Canyon Bandersnatch Slave + 21299, // Valley Buffalo Slave + 21304, // Valley Grendel Slave + 21313, // Sly Hound Dog + 21312, // Valley Grendel + 21311, // Valley Buffalo + 21301, // Gaze of Nightmare + 21302, // Eye of Watchman + 21305, // Eye of Pilgrim + 21298, // Eye of Restrainer + 21303, // Homunculus + 21307 // Elder Homunculus + }; + // Items + private static final int EYE_OF_DARKNESS = 39734; // min 50 + private static final int DARK_MALICE = 39735; // max 900 + private static final int EMISSARY_REWARD_BOX = 39727; // Emissary's Reward Box (Mid-grade) + // Misc + private static final int MIN_LEVEL = 70; + private static final int MAX_LEVEL = 75; + + public Q00786_AwaitingTheVoiceOfTheGods() + { + super(786); + addStartNpc(HERMIT); + addTalkId(HERMIT); + addKillId(MONSTERS); + registerQuestItems(EYE_OF_DARKNESS, DARK_MALICE); + addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.html"); + addCondRace(Race.ERTHEIA, "noErtheya.html"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return getNoQuestMsg(player); + } + switch (event) + { + case "31616-02.htm": + case "31616-03.htm": + case "31616-07.html": + case "31616-08.html": + { + htmltext = event; + break; + } + case "31616-04.htm": + { + qs.startQuest(); + break; + } + case "31616-09.html": + { + if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && (getQuestItemsCount(player, DARK_MALICE) < 100)) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 14140350, 3393); + giveItems(player, EMISSARY_REWARD_BOX, 1); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 100) && (getQuestItemsCount(player, DARK_MALICE) <= 199))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 28280700, 6786); + giveItems(player, EMISSARY_REWARD_BOX, 2); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 200) && (getQuestItemsCount(player, DARK_MALICE) <= 299))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 42421050, 10179); + giveItems(player, EMISSARY_REWARD_BOX, 3); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 300) && (getQuestItemsCount(player, DARK_MALICE) <= 399))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 56561400, 13572); + giveItems(player, EMISSARY_REWARD_BOX, 4); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 400) && (getQuestItemsCount(player, DARK_MALICE) <= 499))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 70701750, 16965); + giveItems(player, EMISSARY_REWARD_BOX, 5); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 500) && (getQuestItemsCount(player, DARK_MALICE) <= 599))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 84842100, 20358); + giveItems(player, EMISSARY_REWARD_BOX, 6); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 600) && (getQuestItemsCount(player, DARK_MALICE) <= 699))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 98982450, 23751); + giveItems(player, EMISSARY_REWARD_BOX, 7); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 700) && (getQuestItemsCount(player, DARK_MALICE) <= 799))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 113122800, 27144); + giveItems(player, EMISSARY_REWARD_BOX, 8); + qs.exitQuest(QuestType.DAILY, true); + break; + } + else if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && ((getQuestItemsCount(player, DARK_MALICE) >= 800) && (getQuestItemsCount(player, DARK_MALICE) <= 899))) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 127263150, 30537); + giveItems(player, EMISSARY_REWARD_BOX, 9); + qs.exitQuest(QuestType.DAILY, true); + break; + } + if ((getQuestItemsCount(player, EYE_OF_DARKNESS) >= 50) && (getQuestItemsCount(player, DARK_MALICE) >= 900)) + { + takeItems(player, EYE_OF_DARKNESS, -1); + takeItems(player, DARK_MALICE, -1); + addExpAndSp(player, 141403500, 33930); + giveItems(player, EMISSARY_REWARD_BOX, 10); + qs.exitQuest(QuestType.DAILY, true); + break; + } + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = getNoQuestMsg(player); + + if (npc.getId() == HERMIT) + { + switch (qs.getState()) + { + case State.COMPLETED: + { + if (!qs.isNowAvailable()) + { + htmltext = "31616-10.html"; + break; + } + qs.setState(State.CREATED); + break; + } + case State.CREATED: + { + htmltext = "31616-01.htm"; + break; + } + case State.STARTED: + { + if (qs.isCond(1)) + { + htmltext = "31616-05.html"; + } + else if (qs.isStarted() && qs.isCond(2)) + { + htmltext = "31616-06.html"; + } + break; + } + } + } + else if (qs.isCompleted() && !qs.isNowAvailable()) + { + htmltext = "31616-10.html"; + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, false); + + if ((qs != null) && (qs.isCond(1))) + { + if (giveItemRandomly(killer, npc, EYE_OF_DARKNESS, 1, 50, 0.15, true)) + { + showOnScreenMsg(killer, NpcStringId.YOU_CAN_GATHER_MORE_POWERFUL_DARK_MALICE, ExShowScreenMessage.TOP_CENTER, 5000); + qs.setCond(2, true); + } + } + else if ((qs != null) && (qs.isCond(2))) + { + if (giveItemRandomly(killer, npc, DARK_MALICE, 1, 900, 0.3, true)) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, killer, isSummon); + } +} \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/noErtheia.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/noErtheia.html new file mode 100644 index 0000000000..0ef4af975d --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/noErtheia.html @@ -0,0 +1,3 @@ +Hermit:
+You are not Ertheia, this quest is not for you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/no_level.html b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/no_level.html new file mode 100644 index 0000000000..26bfc341ab --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q00786_AwaitingTheVoiceOfTheGods/no_level.html @@ -0,0 +1,3 @@ +You don't meet level requirements
+(Quest available from level 70 - 75) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java index 5e20a7625c..9c7ea53afc 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -157,6 +157,8 @@ import quests.Q00760_BlockTheExit.Q00760_BlockTheExit; import quests.Q00761_AssistingTheGoldenRamArmy.Q00761_AssistingTheGoldenRamArmy; import quests.Q00762_AnOminousRequest.Q00762_AnOminousRequest; import quests.Q00763_ADauntingTask.Q00763_ADauntingTask; +import quests.Q00784_TheQuietKiller.Q00784_TheQuietKiller; +import quests.Q00786_AwaitingTheVoiceOfTheGods.Q00786_AwaitingTheVoiceOfTheGods; import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade; import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra; import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas; @@ -474,6 +476,8 @@ public class QuestMasterHandler Q00761_AssistingTheGoldenRamArmy.class, Q00762_AnOminousRequest.class, Q00763_ADauntingTask.class, + Q00784_TheQuietKiller.class, + Q00786_AwaitingTheVoiceOfTheGods.class, Q00901_HowLavasaurusesAreMade.class, Q00902_ReclaimOurEra.class, Q00903_TheCallOfAntharas.class,