Quest The Seal of Punishment: The Fields (10440).
Contributed by Stayway.
This commit is contained in:
parent
a895ed7809
commit
bfc582df43
@ -92,7 +92,6 @@
|
||||
10434 The Seal of Punishment: Sel Mahum Training Grounds
|
||||
10435 Chasing Keltron
|
||||
10438 Chasing Loygen
|
||||
10440 The Seal of Punishment: The Fields
|
||||
10441 Chasing Meccadan
|
||||
10446 Hit and Run
|
||||
10447 Timing is Everything
|
||||
|
@ -0,0 +1,5 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
I have bad news. We might have to drop everything and just take off.... Worst-case scenario, we will be lucky to return alive.<br>
|
||||
Umm... If you would help me...<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields 32641-02.htm">"What's your problem?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
The Seal of Punishment and Shilen. There are signs of the Seal of Punishment here. If it opens, that's the end for all of us.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields 32641-03.htm">"Do you have a solution?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
We've been working work with <font color="LEVEL">Giant's Minions</font> to investigate the seal. Only because our lives are at stake, you understand. But the accursed Mucrokians are everywhere, disrupting our investigation. If we could reduce their numbers... Will you help me?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields 32641-04.htm">"Yes."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
Yes! That's what I wanted to hear. Get rid of the <font color="LEVEL">Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians and Awakened Mucrokians</font> around here. About <font color="LEVEL">50</font> of them should be fine.
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
Get rid of the <font color="LEVEL">Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians and Awakened Mucrokians</font> around here. About <font color="LEVEL">50</font> of them should be fine.
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
Unreal! I didn't think anyone could do it. Well done, well done. What would you like for your reward?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9546">15 Fire Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9547">15 Water Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9548">15 Earth Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9549">15 Wind Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9550">15 Dark Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9551">15 Holy Stones</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Dr. Helvetica:<br>
|
||||
Here you go! You made my day, haha!
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Priestess Athenia:<br>
|
||||
So I need to tell you up front; it's not safe here. We may have to abandon our efforts to complete the ritual. Walking away would save a lot of lives, but if you're willing to do something a bit dangerous, we might be able to do both.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields 32643-02.htm">"I'll help if I can."</Button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>Priestess Athenia:<br>
|
||||
Rumor has it that Shilen's final seal, the Seal of Punishment, was discovered near here. If it opens, not just the Reed Field will be threatened -- the entire continent will face death.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields 32643-03.htm">"Is there a way to prevent that?"</Button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>Priestess Athenia:<br>
|
||||
Fortunately, we've got an agreement with the <font color="LEVEL">Giant's Minions</font>. They have information about the seal, and we have information about nearby areas. We're joining forces to help them with their investigation.<br>
|
||||
I'm sure you understand how important this is. Can we count on you?<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields 32643-04.htm">"Just point me in the right direction."</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Priestess Athenia:<br>
|
||||
It seems Eva hasn't abandoned us after all. If you kill some <font color="LEVEL">Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians, and Awakened Mucrokians</font> around here, it will take pressure off the Giant's Minions. About <font color="LEVEL">50</font> of them should be enough.
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Priestess Athenia:<br>
|
||||
Kill <font color="LEVEL">50</font><font color="LEVEL">Mucrokian Fanatics, Mucrokian Ascetics, Mucrokian Saviors, Mucrokian Prophets, Contaminated Mucrokians, and Awakened Mucrokians</font> to take pressure off the Giant's Minions.
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>Priestess Athenia:<br>
|
||||
You're incredible! Those things looked like nothing in front of you. Wow. Oh, tell me what you want and I'll give you what I can as a token of thanks.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9546">15 Fire Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9547">15 Water Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9548">15 Earth Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9549">15 Wind Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9550">15 Dark Stones</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10440_TheSealOfPunishmentTheFields reward_9551">15 Holy Stones</Button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>Priestess Athenia:<br>
|
||||
Thank you! Here, I hope you find these useful.
|
||||
</body></html>
|
@ -0,0 +1,268 @@
|
||||
/*
|
||||
* 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.Q10440_TheSealOfPunishmentTheFields;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
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.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.network.NpcStringId;
|
||||
|
||||
/**
|
||||
* The Seal of Punishment: The Fields (10440)
|
||||
* @author Stayway
|
||||
*/
|
||||
public class Q10440_TheSealOfPunishmentTheFields extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int HELVETICA = 32641;
|
||||
private static final int ATHENIA = 32643;
|
||||
// Monsters
|
||||
private static final int MUCROKIAN_FANATIC = 22650;
|
||||
private static final int MUCROKIAN_ASCETIC = 22651;
|
||||
private static final int MUCROKIAN_SAVIOR = 22652;
|
||||
private static final int MUCROKIAN_PROPHET = 22653;
|
||||
private static final int CONTAMINATED_MUCROKIAN = 22654;
|
||||
private static final int AWAKENED_MUCROKIAN = 22655;
|
||||
// Misc
|
||||
private static final String KILL_COUNT_VAR = "KillCounts";
|
||||
private static final int MIN_LEVEL = 81;
|
||||
private static final int MAX_LEVEL = 84;
|
||||
|
||||
public Q10440_TheSealOfPunishmentTheFields()
|
||||
{
|
||||
super(10440);
|
||||
addStartNpc(HELVETICA, ATHENIA);
|
||||
addTalkId(HELVETICA, ATHENIA);
|
||||
addKillId(MUCROKIAN_FANATIC, MUCROKIAN_ASCETIC, MUCROKIAN_SAVIOR, MUCROKIAN_PROPHET, CONTAMINATED_MUCROKIAN, AWAKENED_MUCROKIAN);
|
||||
addCondMaxLevel(MAX_LEVEL, "noLevel.html");
|
||||
addCondMinLevel(MIN_LEVEL, "noLevel.html");
|
||||
addCondNotRace(Race.ERTHEIA, "noErtheia.html");
|
||||
addCondInCategory(CategoryType.MAGE_GROUP, "noLevel.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 "32641-02.htm":
|
||||
case "32641-03.htm":
|
||||
case "32643-02.htm":
|
||||
case "32643-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "32641-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.setMemoState(1);
|
||||
qs.set(Integer.toString(MUCROKIAN_FANATIC), 0);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "32643-04.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.setMemoState(2);
|
||||
qs.set(Integer.toString(MUCROKIAN_FANATIC), 0);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "reward_9546":
|
||||
case "reward_9547":
|
||||
case "reward_9548":
|
||||
case "reward_9549":
|
||||
case "reward_9550":
|
||||
case "reward_9551":
|
||||
{
|
||||
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
|
||||
giveItems(player, stoneId, 15);
|
||||
giveStoryQuestReward(player, 60);
|
||||
int count = qs.getInt(KILL_COUNT_VAR);
|
||||
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);
|
||||
if ((qs.isCond(2)) && (qs.isMemoState(1)))
|
||||
{
|
||||
htmltext = "32641-07.html";
|
||||
}
|
||||
else if ((qs.isCond(3)) && (qs.isMemoState(2)))
|
||||
{
|
||||
htmltext = "32643-07.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 HELVETICA:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "32641-01.htm";
|
||||
}
|
||||
else if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "32641-05.html";
|
||||
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "32641-06.html";
|
||||
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ATHENIA:
|
||||
{
|
||||
if (qs.isCreated())
|
||||
{
|
||||
htmltext = "32643-01.htm";
|
||||
}
|
||||
else if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "32643-05.html";
|
||||
|
||||
}
|
||||
else if (qs.isCond(3))
|
||||
{
|
||||
htmltext = "32643-06.html";
|
||||
|
||||
}
|
||||
else if (qs.isCompleted())
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if ((qs != null) && (qs.getCond() > 0))
|
||||
{
|
||||
int count = qs.getInt(KILL_COUNT_VAR) + 1;
|
||||
qs.set(KILL_COUNT_VAR, count);
|
||||
if ((count >= 50) && (qs.isMemoState(1)))
|
||||
{
|
||||
qs.setCond(2, true);
|
||||
sendNpcLogList(killer);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else if ((count >= 50) && (qs.isMemoState(2)))
|
||||
{
|
||||
qs.setCond(3, true);
|
||||
sendNpcLogList(killer);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
else
|
||||
{
|
||||
sendNpcLogList(killer);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if ((qs != null) && (qs.getCond() > 0))
|
||||
{
|
||||
final int killCounts = qs.getInt(KILL_COUNT_VAR);
|
||||
if (killCounts > 0)
|
||||
{
|
||||
final Set<NpcLogListHolder> holder = new HashSet<>();
|
||||
holder.add(new NpcLogListHolder(NpcStringId.ELIMINATING_THE_MUCROKIANS, killCounts));
|
||||
return holder;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(player);
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><body><br>
|
||||
This wasn't good news at all. I might have to take my research and leave this place. If worse comes to worst, it may not be a bad thing to go back.<br>Mm, but, why am I telling you all this? I talk too much when I'm upset. Now, go away.<br>
|
||||
(Ertheia classes cannot perform this quest.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body><br>
|
||||
Bad news, bad news. We might have to drop everything and run. We might be lucky to even survive on our way out. Oh, this is bad...<br>
|
||||
Wait, why are you standing around listening? Go away!<br>
|
||||
(This quest can only be performed by characters Lv. 81 or above, who are either an Archmage, Soultaker, Arcana Lord, Cardinal, Hierophant, Mystic Muse, Elemental Master, Eva's Saint, Storm Screamer, Spectral Master, Shillien Saint, Dominator, or Doomcryer.)
|
||||
</body></html>
|
@ -298,6 +298,7 @@ import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegarding
|
||||
import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment;
|
||||
import quests.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen;
|
||||
import quests.Q10439_KekropusLetterTheOriginsOfARumor.Q10439_KekropusLetterTheOriginsOfARumor;
|
||||
import quests.Q10440_TheSealOfPunishmentTheFields.Q10440_TheSealOfPunishmentTheFields;
|
||||
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
|
||||
import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2;
|
||||
import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters;
|
||||
@ -680,6 +681,7 @@ public class QuestMasterHandler
|
||||
Q10436_KekropusLetterTheSealOfPunishment.class,
|
||||
Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.class,
|
||||
Q10439_KekropusLetterTheOriginsOfARumor.class,
|
||||
Q10440_TheSealOfPunishmentTheFields.class,
|
||||
Q10442_TheAnnihilatedPlains1.class,
|
||||
Q10443_TheAnnihilatedPlains2.class,
|
||||
Q10444_TheOriginOfMonsters.class,
|
||||
|
Loading…
Reference in New Issue
Block a user