Quest The Seal of Punishment: Den of Evil (10431).
Contributed by Stayway.
This commit is contained in:
@@ -89,7 +89,6 @@
|
||||
10380 The Executioner's Execution
|
||||
10388 Conspiracy Behind Doors
|
||||
10389 The Voice of Authority
|
||||
10431 The Seal of Punishment: Den of Evil
|
||||
10432 Chasing Varangka
|
||||
10434 The Seal of Punishment: Sel Mahum Training Grounds
|
||||
10435 Chasing Keltron
|
||||
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Chairen:<br>
|
||||
What brings you here, stranger?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil 32655-02.html">Deliver Jokel's message</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Chairen:<br>
|
||||
Varangka, eh? I could give you a hand with that. No one looks forward to his fall more than I.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil 32655-03.html">Any suggestions?</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Chairen:<br>
|
||||
I suggest starting with the force field. To get to it, you'll need my help. Here's the deal. Defeat <font color="LEVEL">Ragna Orc Warriors, Ragna Orc Heroes, Ragna Orc Commanders, Ragna Orc Healers, Ragna Orc Shamans, Ragna Orc Priests, Ragna Orc Archers, Ragna Orc Snipers, Varangka's Dre Vanuls, and Varangka's Destroyers</font>. Bring me, oh, <font color="LEVEL">50</font> <font color="LEVEL">Evil Freed Soul</font>, and I will make you something to take down the force field.
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Chairen:<br>
|
||||
To breach the force field, you'll need my help. Here's the deal. Defeat <font color="LEVEL">Ragna Orc Warriors, Ragna Orc Heroes, Ragna Orc Commanders, Ragna Orc Healers, Ragna Orc Shamans, Ragna Orc Priests, Ragna Orc Archers, Ragna Orc Snipers, Varangka's Dre Vanuls, and Varangka's Destroyers</font>. Bring me, oh, <font color="LEVEL">50 Evil Freed Soul</font>, and I will make you something to take down the force field.
|
||||
</body></html>
|
@@ -0,0 +1,9 @@
|
||||
<html><body>Chairen:<br>
|
||||
I see you've amassed quite the collection of Evil Freed Souls. Good, you've advanced both our efforts. Hand them over and I'll see if I can't find something to reward you with.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil reward_9546">15 Fire Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil reward_9547">15 Water Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil reward_9548">15 Earth Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil reward_9549">15 Wind Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil reward_9550">15 Dark Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil reward_9551">15 Holy Stones</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Chairen:<br>
|
||||
Here is the reward you asked for. If you give me some time I'll have the item you wanted soon.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
We have to find out how the Den of Evil is connected to the Seal of Punishment. If Shilen succeeds in removing the seal, I can hardly bear to think of what will happen! Is there anyone who can stop this?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil 33868-02.htm">"There is one who will."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
Good, then you understand me. First, we need to stop whatever the Ragnas are planning, and the best way to do that is to kill Varangka, the shaman who leads them. But there is a problem.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil 33868-03.htm">"Of course there is."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,5 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
Varangka is unrivaled in his dark curses. He has set up a force field around himself to stop us from attacking him. Before we can do anything, we have to find a way to destroy the force field.<br>
|
||||
I've found an old enemy of Varangka's, who might know something of the force field's weaknesses. I want you to talk to him and follow any instructions he give you.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10431_TheSealOfPunishmentDenOfEvil 33868-04.htm">">"I will."</Button>
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
Do you see <font color="LEVEL">Chairen</font>, near the altar over there? He is the one I want you to meet.
|
||||
</body></html>
|
@@ -0,0 +1,3 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
Do you see <font color="LEVEL">Chairen</font>, near the altar over there? He is the one I want you to meet.
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
I don't trust you.<br>
|
||||
(Characters must be Lv. 81 or above to perform this quest.)
|
||||
</body></html>
|
@@ -0,0 +1,238 @@
|
||||
/*
|
||||
* 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.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;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The Seal of Punishment: Den of Evil (10431)
|
||||
* @author Stayway
|
||||
*/
|
||||
public class Q10431_TheSealOfPunishmentDenOfEvil extends Quest
|
||||
{
|
||||
// Npcs
|
||||
private static final int JOKEL = 33868;
|
||||
private static final int CHAIREN = 32655;
|
||||
// Item
|
||||
private static final int EVIL_FREED_SOUL = 36715;
|
||||
// Misc
|
||||
private static final Map<Integer, Double> RAGNA_ORC = new HashMap<>();
|
||||
static
|
||||
{
|
||||
RAGNA_ORC.put(22692, 0.888); // Ragna Orc Warriors
|
||||
RAGNA_ORC.put(22693, 0.888); // Ragna Orc Heroes
|
||||
RAGNA_ORC.put(22694, 0.888); // Ragna Orc Commanders
|
||||
RAGNA_ORC.put(22695, 0.888); // Ragna Orc Healers
|
||||
RAGNA_ORC.put(22696, 0.888); // Ragna Orc Shamans
|
||||
RAGNA_ORC.put(22697, 0.888); // Ragna Orc Priests
|
||||
RAGNA_ORC.put(22698, 0.888); // Ragna Orc Archers
|
||||
RAGNA_ORC.put(22699, 0.888); // Ragna Orc Snipers
|
||||
RAGNA_ORC.put(22701, 0.888); // Varangka's Dre Vanuls
|
||||
RAGNA_ORC.put(22702, 0.888); // Varangka's Destroyers
|
||||
}
|
||||
private static final int MIN_LEVEL = 81;
|
||||
private static final int MAX_LEVEL = 84;
|
||||
|
||||
public Q10431_TheSealOfPunishmentDenOfEvil()
|
||||
{
|
||||
super(10431);
|
||||
addStartNpc(JOKEL);
|
||||
addTalkId(JOKEL, CHAIREN);
|
||||
addKillId(RAGNA_ORC.keySet());
|
||||
registerQuestItems(EVIL_FREED_SOUL);
|
||||
addCondMaxLevel(MAX_LEVEL, "33868-06.html");
|
||||
addCondMaxLevel(MIN_LEVEL, "33868-06.html");
|
||||
addCondNotRace(Race.ERTHEIA, "noErtheia.html");
|
||||
addCondInCategory(CategoryType.FOURTH_CLASS_GROUP, "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 "32655-02.htm":
|
||||
case "33868-02.htm":
|
||||
case "33868-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33868-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "32655-03.html":
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "reward_9546":
|
||||
case "reward_9547":
|
||||
case "reward_9548":
|
||||
case "reward_9549":
|
||||
case "reward_9550":
|
||||
case "reward_9551":
|
||||
{
|
||||
if (!qs.isCond(3))
|
||||
{
|
||||
break;
|
||||
}
|
||||
takeItems(player, EVIL_FREED_SOUL, -1);
|
||||
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
|
||||
giveItems(player, stoneId, 15);
|
||||
giveStoryQuestReward(player, 60);
|
||||
final long count = getQuestItemsCount(player, EVIL_FREED_SOUL);
|
||||
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 = "32655-06.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
|
||||
switch (npc.getId())
|
||||
{
|
||||
case JOKEL:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "33868-01.htm";
|
||||
}
|
||||
else if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33868-05.html";
|
||||
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case CHAIREN:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "32655-01.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "32655-04.html";
|
||||
}
|
||||
else if (qs.isCond(3))
|
||||
{
|
||||
htmltext = "32655-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final int npcId = npc.getId();
|
||||
|
||||
if (RAGNA_ORC.containsKey(npcId))
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, EVIL_FREED_SOUL, 1, 0, RAGNA_ORC.get(npcId), true);
|
||||
}
|
||||
if (getQuestItemsCount(killer, EVIL_FREED_SOUL) < 50)
|
||||
{
|
||||
giveItems(killer, EVIL_FREED_SOUL, 1);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if (getQuestItemsCount(killer, EVIL_FREED_SOUL) >= 50)
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Jokel:<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 Duelist, Phoenix Knight, Hell Knight, Adventurer, Eva's Templar, Sword Muse, Wind Rider, Shillien Templar, Spectral Dancer, Ghost Hunter, Grand Khavatari, Doombringer, Soul Hound, or Judicator class.)
|
||||
</body></html>
|
@@ -0,0 +1,4 @@
|
||||
<html><body>Giant's Minion Jokel:<br>
|
||||
Whoa, not so fast. You're way out of your league here. <br>
|
||||
(Ertheia are excluded from this quest.)
|
||||
</body></html>
|
@@ -292,6 +292,7 @@ import quests.Q10425_TheKetraOrcSupporters.Q10425_TheKetraOrcSupporters;
|
||||
import quests.Q10426_AssassinationOfTheKetraOrcCommander.Q10426_AssassinationOfTheKetraOrcCommander;
|
||||
import quests.Q10427_AssassinationOfTheKetraOrcChief.Q10427_AssassinationOfTheKetraOrcChief;
|
||||
import quests.Q10430_KekropusLetterTrackingTheEvil.Q10430_KekropusLetterTrackingTheEvil;
|
||||
import quests.Q10431_TheSealOfPunishmentDenOfEvil.Q10431_TheSealOfPunishmentDenOfEvil;
|
||||
import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegardingASeal;
|
||||
import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment;
|
||||
import quests.Q10439_KekropusLetterTheOriginsOfARumor.Q10439_KekropusLetterTheOriginsOfARumor;
|
||||
@@ -670,6 +671,7 @@ public class QuestMasterHandler
|
||||
Q10426_AssassinationOfTheKetraOrcCommander.class,
|
||||
Q10427_AssassinationOfTheKetraOrcChief.class,
|
||||
Q10430_KekropusLetterTrackingTheEvil.class,
|
||||
Q10431_TheSealOfPunishmentDenOfEvil.class,
|
||||
Q10433_KekropusLetterRegardingASeal.class,
|
||||
Q10436_KekropusLetterTheSealOfPunishment.class,
|
||||
Q10439_KekropusLetterTheOriginsOfARumor.class,
|
||||
|
Reference in New Issue
Block a user