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) 10439 Kekropus' Letter: The Origins of a Rumor (9/9)
10440 The Seal of Punishment: The Fields 10440 The Seal of Punishment: The Fields
10441 Chasing Meccadan 10441 Chasing Meccadan
10444 The Origin of Monsters
10446 Hit and Run 10446 Hit and Run
10447 Timing is Everything 10447 Timing is Everything
10452 Is it Edible? 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.Q10427_AssassinationOfTheKetraOrcChief.Q10427_AssassinationOfTheKetraOrcChief;
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1; import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2; import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2;
import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters;
import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat; import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat;
import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon;
@@ -658,6 +659,7 @@ public class QuestMasterHandler
Q10427_AssassinationOfTheKetraOrcChief.class, Q10427_AssassinationOfTheKetraOrcChief.class,
Q10442_TheAnnihilatedPlains1.class, Q10442_TheAnnihilatedPlains1.class,
Q10443_TheAnnihilatedPlains2.class, Q10443_TheAnnihilatedPlains2.class,
Q10444_TheOriginOfMonsters.class,
Q10445_AnImpendingThreat.class, Q10445_AnImpendingThreat.class,
Q10450_ADarkAmbition.class, Q10450_ADarkAmbition.class,
Q10453_StoppingTheWindDragon.class, Q10453_StoppingTheWindDragon.class,