Quest The Seal of Punishment: Sel Mahum Training Grounds (10434).

Contributed by Stayway.
This commit is contained in:
MobiusDev 2016-08-28 21:24:58 +00:00
parent 5c7cd9d284
commit 6474d36c2b
14 changed files with 312 additions and 35 deletions

View File

@ -88,7 +88,6 @@
10388 Conspiracy Behind Doors
10389 The Voice of Authority
10432 Chasing Varangka
10434 The Seal of Punishment: Sel Mahum Training Grounds
10435 Chasing Keltron
10438 Chasing Loygen
10441 Chasing Meccadan

View File

@ -16,9 +16,6 @@
*/
package quests.Q10431_TheSealOfPunishmentDenOfEvil;
import java.util.HashMap;
import java.util.Map;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.Race;
@ -34,26 +31,25 @@ import com.l2jmobius.gameserver.util.Util;
*/
public class Q10431_TheSealOfPunishmentDenOfEvil extends Quest
{
// Npcs
// NPCs
private static final int JOKEL = 33868;
private static final int CHAIREN = 32655;
private static final int[] RAGNA_ORC =
{
22692, // Ragna Orc Warriors
22693, // Ragna Orc Heroes
22694, // Ragna Orc Commanders
22695, // Ragna Orc Healers
22696, // Ragna Orc Shamans
22697, // Ragna Orc Priests
22698, // Ragna Orc Archers
22699, // Ragna Orc Snipers
22701, // Varangka's Dre Vanuls
22702, // Varangka's Destroyers
};
// Item
private static final int EVIL_FREED_SOUL = 36715;
// Misc
private static final Map<Integer, Integer> RAGNA_ORC = new HashMap<>();
static
{
RAGNA_ORC.put(22692, 888); // Ragna Orc Warriors
RAGNA_ORC.put(22693, 888); // Ragna Orc Heroes
RAGNA_ORC.put(22694, 888); // Ragna Orc Commanders
RAGNA_ORC.put(22695, 888); // Ragna Orc Healers
RAGNA_ORC.put(22696, 888); // Ragna Orc Shamans
RAGNA_ORC.put(22697, 888); // Ragna Orc Priests
RAGNA_ORC.put(22698, 888); // Ragna Orc Archers
RAGNA_ORC.put(22699, 888); // Ragna Orc Snipers
RAGNA_ORC.put(22701, 888); // Varangka's Dre Vanuls
RAGNA_ORC.put(22702, 888); // Varangka's Destroyers
}
private static final int MIN_LEVEL = 81;
private static final int MAX_LEVEL = 84;
@ -62,7 +58,7 @@ public class Q10431_TheSealOfPunishmentDenOfEvil extends Quest
super(10431);
addStartNpc(JOKEL);
addTalkId(JOKEL, CHAIREN);
addKillId(RAGNA_ORC.keySet());
addKillId(RAGNA_ORC);
registerQuestItems(EVIL_FREED_SOUL);
addCondMaxLevel(MAX_LEVEL, "33868-06.html");
addCondMinLevel(MIN_LEVEL, "33868-06.html");

View File

@ -0,0 +1,5 @@
<html><body>Investigator Rua:<br>
I am definitely glad you're here. Here's what we've found out about the 6th seal.<br>
After a fair bit of research, we've located <font color="LEVEL">Shilen's 6th seal, the Seal of Punishment</font>. But since it is in a different dimension, it's hard to get close.<br>While trying to figure out a different avenue of approach, we noticed <font color="LEVEL">Sel Mahum doing something suspicious</font> out in the <font color="LEVEL">Sel Mahum Training Grounds</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds 33841-02.htm">"Suspicious, how so?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Investigator Rua:<br>
To tell the truth, I'm not exactly sure. It's something to do with <font color="LEVEL">Embryo</font>. The fact that they have Suspicious Fragments proves it. So, it's highly likely that they also have something to do with the seal. If I study the Suspicious Fragments of Sel Mahum, I'll learn a lot more about the Seal of Punishment.<br>
If you have time, can you help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds 33841-03.htm">"Certainly"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Investigator Rua:<br>
Then, kill <font color="LEVEL">Sel Mahum</font> in the <font color="LEVEL">Sel Mahum Training Grounds</font> and collect <font color="LEVEL">Evidence of a Conspiracy</font> from them.<br>When you have 50 of them, bring them to me. The magic I'm looking for is hard to detect, and I'll need as many as possible to be sure.<br>
If I'm right, those fragments hold the key to understanding the Seal of Punishment.<br><br>
Monsters to hunt - Sel Mahum Chef, Sel Mahum Drill Sergeant (Wizard), Sel Mahum Training Officer, Sel Mahum Drill Sergeant(Warrior), Sel Mahum Drill Sergeant(Archer), Sel Mahum Warrior, Sel Mahum Recruit(Wizard), Sel Mahum Soldier(Wizard), Sel Mahum Recruit(Warrior), Sel Mahum Soldier(Warrior), Sel Mahum Recruit(Archer), Sel Mahum Soldier(Archer), Sel Mahum Squad Leader(Wizard) ,Sel Mahum Squad Leader(Warrior) and Sel Mahum Squad Leader(Archer).
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
What happened? Were you unable to find <font color="LEVEL">50 Evidence of a Conspiracy</font>? I need at least that many to gain any useful information on the seal.<br>
You can get more by killing <font color="LEVEL">Sel Mahum</font> in the <font color="LEVEL">Sel Mahum Training Grounds</font>.
</body></html>

View File

@ -0,0 +1,10 @@
<html><head><body>Investigator Rua:<br>
Welcome back. Do you have 50 as promised?<br>
Great. I'll pay up my share. Plus, tell me if you want any attribute stones.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds reward_9546">15 Fire Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds reward_9547">15 Water Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds reward_9548">15 Earth Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds reward_9549">15 Wind Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds reward_9550">15 Dark Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10434_TheSealOfPunishmentSelMahumTrainingGrounds reward_9551">15 Holy Stones</Button>
<body></html>

View File

@ -0,0 +1,3 @@
<html><body>Investigator Rua:<br>
Thank you! Here's your reward. We need to move fast now!<br>
</body></html>

View File

@ -0,0 +1,240 @@
/*
* 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.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.QuestSound;
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.util.Util;
/**
* The Seal of Punishment: Sel Mahum Training Grounds (10434)
* @author Stayway
*/
public class Q10434_TheSealOfPunishmentSelMahumTrainingGrounds extends Quest
{
// NPCs
private static final int RUA = 33841;
private static final int[] SEL_MAHUMS =
{
18908, // Sel Mahum Chef
22775, // Sel Mahum Drill Sergeant (Wizard)
22776, // Sel Mahum Training Officer
22777, // Sel Mahum Drill Sergeant(Warrior)
22778, // Sel Mahum Drill Sergeant(Archer)
22779, // Sel Mahum Warrior
22780, // Sel Mahum Recruit(Wizard)
22781, // Sel Mahum Soldier(Wizard)
22782, // Sel Mahum Recruit(Warrior)
22783, // Sel Mahum Soldier(Warrior)
22784, // Sel Mahum Recruit(Archer)
22785, // Sel Mahum Soldier(Archer)
22786, // Sel Mahum Squad Leader(Wizard)
22787, // Sel Mahum Squad Leader(Warrior)
22788, // Sel Mahum Squad Leader(Archer)
};
// Item
private static final int EVIDENCE_OF_CONSPIRACY = 36692;
// Misc
private static final int MIN_LEVEL = 81;
private static final int MAX_LEVEL = 84;
public Q10434_TheSealOfPunishmentSelMahumTrainingGrounds()
{
super(10434);
addStartNpc(RUA);
addTalkId(RUA);
addKillId(SEL_MAHUMS);
registerQuestItems(EVIDENCE_OF_CONSPIRACY);
addCondMaxLevel(MAX_LEVEL, "noLevel.html");
addCondMinLevel(MIN_LEVEL, "noLevel.html");
addCondNotRace(Race.ERTHEIA, "noErtheia.html");
addCondInCategory(CategoryType.WEAPON_MASTER, "nocond.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
String htmltext = event;
switch (event)
{
case "33841-02.htm":
{
htmltext = event;
break;
}
case "33841-03.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "reward_9546":
case "reward_9547":
case "reward_9548":
case "reward_9549":
case "reward_9550":
case "reward_9551":
{
if (!qs.isCond(2))
{
break;
}
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
giveItems(player, stoneId, 15);
giveStoryQuestReward(player, 60);
final long count = getQuestItemsCount(player, EVIDENCE_OF_CONSPIRACY);
if ((count >= 50) && (count < 100))
{
addExpAndSp(player, 28240800, 6777);
}
else if ((count >= 100) && (count < 200))
{
addExpAndSp(player, 56481600, 13554);
}
else if ((count >= 200) && (count < 300))
{
addExpAndSp(player, 84722400, 20331);
}
else if ((count >= 300) && (count < 400))
{
addExpAndSp(player, 112963200, 27108);
}
else if ((count >= 400) && (count < 500))
{
addExpAndSp(player, 141204000, 33835);
}
else if ((count >= 500) && (count < 600))
{
addExpAndSp(player, 169444800, 40662);
}
else if ((count >= 600) && (count < 700))
{
addExpAndSp(player, 197685600, 47439);
}
else if ((count >= 700) && (count < 800))
{
addExpAndSp(player, 225926400, 54216);
}
else if ((count >= 800) && (count < 900))
{
addExpAndSp(player, 254167200, 60993);
}
else if (count >= 900)
{
addExpAndSp(player, 282408000, 67770);
}
qs.exitQuest(false, true);
htmltext = "33841-06.html";
break;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs == null)
{
return htmltext;
}
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == RUA)
{
htmltext = "33841-01.htm";
}
break;
}
case State.STARTED:
{
if ((qs.isCond(1)) && (npc.getId() == RUA))
{
htmltext = "33841-04.html";
break;
}
else if (qs.isCond(2))
{
htmltext = "33841-05.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getNoQuestMsg(player);
break;
}
}
return htmltext;
}
private void giveItem(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs != null)
{
giveItems(player, EVIDENCE_OF_CONSPIRACY, 1);
if (qs.isCond(1))
{
if (getQuestItemsCount(player, EVIDENCE_OF_CONSPIRACY) >= 50)
{
qs.setCond(2, true);
}
else
{
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
}
}
}
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
if (killer.isInParty())
{
for (L2PcInstance member : killer.getParty().getMembers())
{
if (Util.checkIfInRange(1500, npc, member, false))
{
giveItem(npc, member);
}
}
}
else
{
giveItem(npc, killer);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
Whoa, not so fast. You're way out of your league here. <br>
(This quest can only be performed by characters Lv. 81 or above of the Dreadnought, Titan, Fortune Seeker or Maestro class.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
I am focusing on my research right now. If you aren't here for something important, come back later.<br>
(Ertheia is excluded from this quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
I am focusing on my research right now. If you aren't here for something important, come back later.<br>
(This quest is for level 81 or higher Dreadnought, Titan, Fortune Seeker, Maestro.)
</body></html>

View File

@ -16,9 +16,6 @@
*/
package quests.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen;
import java.util.HashMap;
import java.util.Map;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.QuestSound;
import com.l2jmobius.gameserver.enums.Race;
@ -37,20 +34,19 @@ public class Q10437_TheSealOfPunishmentPlainsOfTheLizardmen extends Quest
{
// NPCs
private static final int LAKI = 32742;
private static final int[] TANTA_LIZARDMAN =
{
22768, // Tanta Lizardman Scouts
22769, // Tanta Lizardman Warriors
22770, // Tanta Lizardman Soldiers
22771, // Tanta Lizardman Berserkers
22772, // Tanta Lizardman Archers
22773, // Tanta Lizardman Wizards
22774, // Tanta Lizardman Summoners
};
// Item
private static final int EMBRYO_FRAGMENT = 36687;
// Misc
private static final Map<Integer, Integer> TANTA_LIZARDMAN = new HashMap<>();
static
{
TANTA_LIZARDMAN.put(22768, 888); // Tanta Lizardman Scouts
TANTA_LIZARDMAN.put(22769, 888); // Tanta Lizardman Warriors
TANTA_LIZARDMAN.put(22770, 888); // Tanta Lizardman Soldiers
TANTA_LIZARDMAN.put(22771, 888); // Tanta Lizardman Berserkers
TANTA_LIZARDMAN.put(22772, 888); // Tanta Lizardman Archers
TANTA_LIZARDMAN.put(22773, 888); // Tanta Lizardman Wizards
TANTA_LIZARDMAN.put(22774, 888); // Tanta Lizardman Summoners
}
private static final int MIN_LEVEL = 81;
private static final int MAX_LEVEL = 84;
@ -59,7 +55,7 @@ public class Q10437_TheSealOfPunishmentPlainsOfTheLizardmen extends Quest
super(10437);
addStartNpc(LAKI);
addTalkId(LAKI);
addKillId(TANTA_LIZARDMAN.keySet());
addKillId(TANTA_LIZARDMAN);
registerQuestItems(EMBRYO_FRAGMENT);
addCondMaxLevel(MAX_LEVEL, "noLevel.html");
addCondMinLevel(MIN_LEVEL, "noLevel.html");

View File

@ -296,6 +296,7 @@ import quests.Q10427_AssassinationOfTheKetraOrcChief.Q10427_AssassinationOfTheKe
import quests.Q10430_KekropusLetterTrackingTheEvil.Q10430_KekropusLetterTrackingTheEvil;
import quests.Q10431_TheSealOfPunishmentDenOfEvil.Q10431_TheSealOfPunishmentDenOfEvil;
import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegardingASeal;
import quests.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds;
import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment;
import quests.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen;
import quests.Q10439_KekropusLetterTheOriginsOfARumor.Q10439_KekropusLetterTheOriginsOfARumor;
@ -681,6 +682,7 @@ public class QuestMasterHandler
Q10430_KekropusLetterTrackingTheEvil.class,
Q10431_TheSealOfPunishmentDenOfEvil.class,
Q10433_KekropusLetterRegardingASeal.class,
Q10434_TheSealOfPunishmentSelMahumTrainingGrounds.class,
Q10436_KekropusLetterTheSealOfPunishment.class,
Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.class,
Q10439_KekropusLetterTheOriginsOfARumor.class,