Quest The Origin of Monsters (10444).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev
2016-08-09 20:05:08 +00:00
parent 559ed5028f
commit 7db1362e2a
12 changed files with 220 additions and 1 deletions

View File

@@ -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?

View File

@@ -0,0 +1,4 @@
<html><body>nvestigator Quincy:<br>
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.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10444_TheOriginOfMonsters 33838-02.html">"I've brought Chunks of a Corpse as Parajan requested."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Investigator Quincy:<br>
Ah, you're Parajan's mercenary. I didn't recognize you.<br>
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.<br>
Now, I should analyze the Chunks of a Corpse with magic. I'll report the results directly to Parajan. Thank you.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Rune Backup Trooper Parajan:<br>
A bloodbath. A nightmare. This used to be a peaceful plain, but the origin of these monsters is almost beyond imagining.<br>
(This quest is for characters of level 99 and higher who have completed the "Annihilated Plains - 2" quest.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Rune Backup Trooper Parajan:<br>
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.<br>
I don't know where they come from. But I noticed something odd while on patrol.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10444_TheOriginOfMonsters 33842-02.htm">"What was it?"</Button>
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Rune Backup Trooper Parajan:<br>
Do you see Quincy over there? Her knowledge of magic is invaluable when investigating this area.<br>
The Refugee's Necklace you brought confirmed our suspicions. Didn't you say that a monster sprang out when you started rummaging through corpses?<br>
The uninformed would say the monsters are born out of heaps of corpses, no matter what species they came from.<br>
But the truth is far worse.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10444_TheOriginOfMonsters 33842-03.htm">"Go on."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Rune Backup Trooper Parajan:<br>
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.<br>
This new demon is called <font color="LEVEL">Krogel</font>. An otherworldly baron of arrogance, he is a corrupt shaman with <font color="LEVEL">the power to decompose and fuse corpses together</font> into new life.<br>
As if dying out here were not bad enough. Can you help us stop him?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10444_TheOriginOfMonsters 33842-04.htm">"Of course."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Rune Backup Trooper Parajan:<br>
You're a livesaver. All right, go find <font color="LEVEL">Krogel</font> in the <font color="LEVEL">Land of Chaos</font>, and kill him.<br>
You can't completely kill off a demon of his ranking, but it will certainly cut the numbers of monsters created from corpses. <br>
As proof of his defeat, bring me <font color="LEVEL">2</font> <font color="LEVEL">Chunks of a Corpse</font>. <br>
Give the chunks to <font color="LEVEL">Investigator Quincy</font> for analysis. She might find a way to eliminate Krogel for good.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Rune Backup Trooper Parajan:<br>
As soon as you see <font color="LEVEL">Krogel</font> in the <font color="LEVEL">Land of Chaos</font>, kill him. Take <font color="LEVEL">2</font> <font color="LEVEL">Chunks of a Corpse</font> before his body fades, and deliver them to <font color="LEVEL">Investigator Quincy</font>.<br>
She will find a way to get rid of Krogel for us.
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Rune Backup Trooper Parajan:<br>
Ah! You're the mercenary? Welcome!<br>
What...is this necklace? You're saying a monster really came out of a refugee's corpse? Can't be...!<br>
Pardon me. Here, a little something for your troubles. Thank you.<br>
Seriously, that Falk... dumping his work onto other people! Keep this up and I will have to tell the captain. <br>
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. <br>
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}

View File

@@ -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,