From 7db1362e2ad0fda9bd1e54e549c49d4efe16029f Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 9 Aug 2016 20:05:08 +0000 Subject: [PATCH] Quest The Origin of Monsters (10444). Contributed by gigilo1968. --- .../data/scripts/quests/MissingQuests.txt | 1 - .../Q10444_TheOriginOfMonsters/33838-01.html | 4 + .../Q10444_TheOriginOfMonsters/33838-02.html | 5 + .../Q10444_TheOriginOfMonsters/33842-00.htm | 4 + .../Q10444_TheOriginOfMonsters/33842-01.htm | 5 + .../Q10444_TheOriginOfMonsters/33842-02.htm | 7 + .../Q10444_TheOriginOfMonsters/33842-03.htm | 6 + .../Q10444_TheOriginOfMonsters/33842-04.htm | 6 + .../Q10444_TheOriginOfMonsters/33842-05.html | 4 + .../Q10444_TheOriginOfMonsters/33842-06.html | 7 + .../Q10444_TheOriginOfMonsters.java | 170 ++++++++++++++++++ .../scripts/quests/QuestMasterHandler.java | 2 + 12 files changed, 220 insertions(+), 1 deletion(-) create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-01.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-02.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-00.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-01.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-02.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-03.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-04.htm create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-05.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-06.html create mode 100644 trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/Q10444_TheOriginOfMonsters.java diff --git a/trunk/dist/game/data/scripts/quests/MissingQuests.txt b/trunk/dist/game/data/scripts/quests/MissingQuests.txt index 4a5feddfb6..dc5be03c06 100644 --- a/trunk/dist/game/data/scripts/quests/MissingQuests.txt +++ b/trunk/dist/game/data/scripts/quests/MissingQuests.txt @@ -105,7 +105,6 @@ 10439 Kekropus' Letter: The Origins of a Rumor (9/9) 10440 The Seal of Punishment: The Fields 10441 Chasing Meccadan -10444 The Origin of Monsters 10446 Hit and Run 10447 Timing is Everything 10452 Is it Edible? diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-01.html b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-01.html new file mode 100644 index 0000000000..33d82c524f --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-01.html @@ -0,0 +1,4 @@ +nvestigator Quincy:
+Too many refugees lost their lives here, and I am compelled to ease their sorrow. I am sorry but if you didn't come for me, please leave me to my work.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-02.html b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-02.html new file mode 100644 index 0000000000..6137b6cfe2 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33838-02.html @@ -0,0 +1,5 @@ +Investigator Quincy:
+Ah, you're Parajan's mercenary. I didn't recognize you.
+You've brought all the Chunks of a Corpse? Not many could find success in their work while facing the evil Baron Krogel. Please take this. It's a token of our gratitude for your help.
+Now, I should analyze the Chunks of a Corpse with magic. I'll report the results directly to Parajan. Thank you. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-00.htm b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-00.htm new file mode 100644 index 0000000000..e4b6533e16 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-00.htm @@ -0,0 +1,4 @@ +Rune Backup Trooper Parajan:
+A bloodbath. A nightmare. This used to be a peaceful plain, but the origin of these monsters is almost beyond imagining.
+(This quest is for characters of level 99 and higher who have completed the "Annihilated Plains - 2" quest.) + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-01.htm b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-01.htm new file mode 100644 index 0000000000..b64d88f2f0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-01.htm @@ -0,0 +1,5 @@ +Rune Backup Trooper Parajan:
+I'm glad you've decided to stay a while. The Land of Chaos is home to many terrible monsters, different from those we have seen elsewhere.
+I don't know where they come from. But I noticed something odd while on patrol.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-02.htm b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-02.htm new file mode 100644 index 0000000000..448e84e44a --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-02.htm @@ -0,0 +1,7 @@ +Rune Backup Trooper Parajan:
+Do you see Quincy over there? Her knowledge of magic is invaluable when investigating this area.
+The Refugee's Necklace you brought confirmed our suspicions. Didn't you say that a monster sprang out when you started rummaging through corpses?
+The uninformed would say the monsters are born out of heaps of corpses, no matter what species they came from.
+But the truth is far worse.
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-03.htm b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-03.htm new file mode 100644 index 0000000000..4fd3ea428b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-03.htm @@ -0,0 +1,6 @@ +Rune Backup Trooper Parajan:
+There is a demon named Triol, one of four trying to resurrect Shilen. Using his own blood, he's brought another foul creature into our world.
+This new demon is called Krogel. An otherworldly baron of arrogance, he is a corrupt shaman with the power to decompose and fuse corpses together into new life.
+As if dying out here were not bad enough. Can you help us stop him?
+ + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-04.htm b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-04.htm new file mode 100644 index 0000000000..03e6c5d7d0 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-04.htm @@ -0,0 +1,6 @@ +Rune Backup Trooper Parajan:
+You're a livesaver. All right, go find Krogel in the Land of Chaos, and kill him.
+You can't completely kill off a demon of his ranking, but it will certainly cut the numbers of monsters created from corpses.
+As proof of his defeat, bring me 2 Chunks of a Corpse.
+Give the chunks to Investigator Quincy for analysis. She might find a way to eliminate Krogel for good. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-05.html b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-05.html new file mode 100644 index 0000000000..e85dc97f5b --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-05.html @@ -0,0 +1,4 @@ +Rune Backup Trooper Parajan:
+As soon as you see Krogel in the Land of Chaos, kill him. Take 2 Chunks of a Corpse before his body fades, and deliver them to Investigator Quincy.
+She will find a way to get rid of Krogel for us. + \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-06.html b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-06.html new file mode 100644 index 0000000000..d0f23f2834 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/33842-06.html @@ -0,0 +1,7 @@ +Rune Backup Trooper Parajan:
+Ah! You're the mercenary? Welcome!
+What...is this necklace? You're saying a monster really came out of a refugee's corpse? Can't be...!
+Pardon me. Here, a little something for your troubles. Thank you.
+Seriously, that Falk... dumping his work onto other people! Keep this up and I will have to tell the captain.
+Anyway, could you come by later if you get the chance? There is more work to be done around here, and I'll tell you about it if you're willing.
+ \ No newline at end of file diff --git a/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/Q10444_TheOriginOfMonsters.java b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/Q10444_TheOriginOfMonsters.java new file mode 100644 index 0000000000..944cd840b3 --- /dev/null +++ b/trunk/dist/game/data/scripts/quests/Q10444_TheOriginOfMonsters/Q10444_TheOriginOfMonsters.java @@ -0,0 +1,170 @@ +/* + * 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.Q10444_TheOriginOfMonsters; + +import com.l2jmobius.gameserver.enums.QuestSound; +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.util.Util; + +import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2; + +/** + * The Origin of Monsters (10444) + * @URL https://l2wiki.com/The_Origin_of_Monsters + * @author Gigi + */ +public final class Q10444_TheOriginOfMonsters extends Quest +{ + // NPCs + private static final int PARAJAN = 33842; + private static final int QUINCY = 33838; + private static final int KROGEL = 25927; + // Items + private static final int BLOODY_ETERNEL_ENHANCEMENT_STONE = 35569; + private static final int ELMORES_SUPPORT_BOX = 37020; + private static final int CHUNK_OF_A_CROPSE = 36679; + // Misc + private static final int MIN_LEVEL = 99; + + public Q10444_TheOriginOfMonsters() + { + super(10444); + addStartNpc(PARAJAN); + addTalkId(PARAJAN, QUINCY); + addKillId(KROGEL); + registerQuestItems(CHUNK_OF_A_CROPSE); + addCondMinLevel(MIN_LEVEL, "33842-00.htm"); + addCondCompletedQuest(Q10443_TheAnnihilatedPlains2.class.getSimpleName(), "33842-00.htm"); + } + + @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 "33842-02.htm": + case "33842-03.htm": + { + htmltext = event; + break; + } + case "33842-04.htm": + { + qs.startQuest(); + htmltext = event; + break; + } + case "33838-02.html": + { + if (qs.isCond(2)) + { + qs.exitQuest(false, true); + giveItems(player, BLOODY_ETERNEL_ENHANCEMENT_STONE, 1); + giveItems(player, ELMORES_SUPPORT_BOX, 1); + htmltext = event; + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + final QuestState qs = getQuestState(player, true); + String htmltext = null; + + switch (qs.getState()) + { + case State.CREATED: + { + if (npc.getId() == PARAJAN) + { + htmltext = "33842-01.htm"; + } + break; + } + case State.STARTED: + { + switch (npc.getId()) + { + case PARAJAN: + { + if (qs.isCond(1)) + { + htmltext = "33842-05.html"; + } + else if (qs.isCond(2)) + { + htmltext = "33842-06.html"; + } + break; + } + case QUINCY: + { + if (qs.isStarted() && qs.isCond(2)) + { + htmltext = "33838-01.html"; + } + break; + } + } + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + } + return htmltext; + } + + @Override + public void actionForEachPlayer(L2PcInstance player, L2Npc npc, boolean isSummon) + { + final QuestState qs = getQuestState(player, false); + if ((qs != null) && qs.isCond(1) && Util.checkIfInRange(1500, npc, player, false)) + { + giveItems(player, CHUNK_OF_A_CROPSE, 1); + playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET); + if (getQuestItemsCount(player, CHUNK_OF_A_CROPSE) >= 2) + { + qs.setCond(2, true); + } + } + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + executeForEachPlayer(killer, npc, isSummon, true, false); + return super.onKill(npc, killer, isSummon); + } +} \ 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 36a1b3b813..60eb1dc8a7 100644 --- a/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/trunk/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -289,6 +289,7 @@ import quests.Q10426_AssassinationOfTheKetraOrcCommander.Q10426_AssassinationOfT import quests.Q10427_AssassinationOfTheKetraOrcChief.Q10427_AssassinationOfTheKetraOrcChief; import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1; import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2; +import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters; import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat; import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; @@ -658,6 +659,7 @@ public class QuestMasterHandler Q10427_AssassinationOfTheKetraOrcChief.class, Q10442_TheAnnihilatedPlains1.class, Q10443_TheAnnihilatedPlains2.class, + Q10444_TheOriginOfMonsters.class, Q10445_AnImpendingThreat.class, Q10450_ADarkAmbition.class, Q10453_StoppingTheWindDragon.class,