Quests 10435 and 10441.

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2016-09-29 11:55:52 +00:00
parent f7a02a6b79
commit 9a8dbaca32
31 changed files with 494 additions and 2 deletions

View File

@ -84,8 +84,6 @@
10380 The Executioner's Execution
10388 Conspiracy Behind Doors
10389 The Voice of Authority
10435 Chasing Keltron
10441 Chasing Meccadan
10446 Hit and Run
10447 Timing is Everything
10452 Is it Edible?

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
I don't think it's time.<br>
(This quest may only be undertaken by a Fighter class character of level 81 or above and quest completed (Seal of punishment: Sel Mahum Train Ground)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
You! Yes yes you!! come closer, I've got a secret to tell you, those conspirancy point to some nasty Kelteron master, want to kill him for me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron 33841-02.htm">"Tell me what to do?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
What you alway "DO", just go there and kill him, when you are done, tell me<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron 33841-03.htm">"Alright..."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Investigator Rua:<br>
Ok then, on your way now...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron 33841-04.htm">"smile"</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Investigator Rua:<br>
Don't come back until you killed this Keltron.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Investigator Rua:<br>
Don't try to fool me!He is not dead yet...I'm watching you!
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Investigator Rua:<br>
Hahaha! Here comes my hero..please please coose your mighty reward!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron reward_9546">15 Fire Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron reward_9547">15 Water Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron reward_9548">15 Earth Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron reward_9549">15 Wind Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron reward_9550">15 Dark Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10435_ChasingKeltron reward_9551">15 Holy Stones</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Investigator Rua:<br>
Psh psh now, I need to work, talk to you later, maybe.
</body></html>

View File

@ -0,0 +1,155 @@
/*
* 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.Q10435_ChasingKeltron;
import com.l2jmobius.gameserver.enums.CategoryType;
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 quests.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds;
/**
* Chasing Keltron (10435)
* @URL https://l2wiki.com/Chasing_Keltron
* @author Gigi
*/
public class Q10435_ChasingKeltron extends Quest
{
// NPCs
private static final int RUA = 33841;
private static final int SEL_MAHUM_CHIEF_KELTRON = 27498;
// Reward
private static final int EAS = 960;
// Misc
private static final int MIN_LEVEL = 81;
public Q10435_ChasingKeltron()
{
super(10435);
addStartNpc(RUA);
addTalkId(RUA);
addKillId(SEL_MAHUM_CHIEF_KELTRON);
addCondMinLevel(MIN_LEVEL, "33841-00.htm");
addCondNotRace(Race.ERTHEIA, "33841-00.htm");
addCondInCategory(CategoryType.WEAPON_MASTER, "33841-00.htm");
addCondCompletedQuest(Q10434_TheSealOfPunishmentSelMahumTrainingGrounds.class.getSimpleName(), "33841-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 "33841-02.htm":
case "33841-03.htm":
{
htmltext = event;
break;
}
case "33841-04.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))
{
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
giveItems(player, stoneId, 15);
giveItems(player, EAS, 2);
giveStoryQuestReward(player, 30);
addExpAndSp(player, 14120400, 3388);
qs.exitQuest(false, true);
}
htmltext = "33841-07.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-05.html";
break;
}
else if (qs.isCond(2))
{
htmltext = "33841-06.html";
}
break;
}
case State.COMPLETED:
{
htmltext = getNoQuestMsg(player);
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && qs.isCond(1))
{
qs.setCond(2, true);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
Since you reduced the number of Mucrokians, things have stabilized around here. I can now try out my plan.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32641-02.htm">"Finally. What's the plan?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
While you were on the mission, Giant's Minions discovered unidentified Dimensional Doors near here. They claim these are related to the Seal of Punishment. Now that Mucrokians are weak, we can finally investigate.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32641-03.htm">Continue to listen</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
Of course, it won't be easy to investigate the Dimensional Door. You might get attacked by whoever guards it. But someone has to do it, and after I saw the way you handled those Mucrokians, well...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32641-04.htm">Accept</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Dr. Helvetica:<br>
Find the <font color="LEVEL">Dimensional Door</font> in the Reed Field and investigate it.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Dr. Helvetica:<br>
Investigate the <font color="LEVEL">Dimensional Doors</font> somewhere in the Reed Field.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
Safely returned? What happened out there?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32641-07.html">"I got rid of the Awakening Meccadan".</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Dr. Helvetica:<br>
So that did the trick, huh? Interesting. Anyway, I'll pay you for your pains. Choose a color, any color.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9546">15 Fire Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9547">15 Water Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9548">15 Earth Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9549">15 Wind Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9550">15 Dark Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9551">15 Holy Stones</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Dr. Helvetica:<br>
Here you go. My thanks to you.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Priestess Athenia:<br>
Thanks to your hard work, the Mucrokians are weaker now. I think we can move on to our next task.<br>
Personally, I wish you'd kept going until all of them were dead. But we don't have that kind of time, and this is a risk we just have to take.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32643-02.htm">"Let's get to it then."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priestess Athenia:<br>
While you were out killing Mucrokians, the Giant's Minions found unidentified Dimensional Doors near here. They think the Dimensional Doors are related to the Seal of Punishment and are ready to investigate further.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32643-03.htm">"Sounds interesting."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priestess Athenia:<br>
No one knows what kind of monsters dwell in those dimensions, but if anyone is up to this task, it's you. Are you ready?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32643-04.htm">"And willing."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Priestess Athenia:<br>
Find and investigate the <font color="LEVEL">Dimensional Door</font> in the Reed Field.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Priestess Athenia:<br>
Investigate the <font color="LEVEL">Dimensional Doors</font> somewhere in the Reed Field.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Priestess Athenia:<br>
Welcome back. What happened out there?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan 32643-07.html">"I fought Awakening Meccadan".</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Priestess Athenia:<br>
Really? Well, it seems to have done the trick. Here, let me pay up. What attributes do you want?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9546">15 Fire Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9547">15 Water Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9548">15 Earth Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9549">15 Wind Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9550">15 Dark Stones</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan reward_9551">15 Holy Stones</Button>>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Priestess Athenia:<br>
Here, take this. It's a token of thanks for your restoring peace to this place.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Dimensional Door:<br>
I want to fight this monster, summon it for me<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10441_ChasingMeccadan spawn">"Summon Maccadan"</Button>
</body></html>

View File

@ -0,0 +1,220 @@
/*
* 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.Q10441_ChasingMeccadan;
import com.l2jmobius.gameserver.enums.CategoryType;
import com.l2jmobius.gameserver.enums.ChatType;
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.network.NpcStringId;
import quests.Q10440_TheSealOfPunishmentTheFields.Q10440_TheSealOfPunishmentTheFields;
/**
* Chasing Meccadan (10441)
* @URL https://l2wiki.com/Chasing_Meccadan
* @author Gigi
*/
public class Q10441_ChasingMeccadan extends Quest
{
// NPCs
private static final int HELVETICA = 32641;
private static final int ATHENIA = 32643;
private static final int DIMENSIONAL_DOOR = 33869;
private static final int AWAKENING_MECCADEN = 27505;
// Reward
private static final int EAS = 960;
// Misc
private static final int MIN_LEVEL = 81;
private static final int MAX_LEVEL = 84;
public Q10441_ChasingMeccadan()
{
super(10441);
addStartNpc(HELVETICA, ATHENIA);
addTalkId(HELVETICA, ATHENIA, DIMENSIONAL_DOOR);
addKillId(AWAKENING_MECCADEN);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "noCondition.htm");
addCondNotRace(Race.ERTHEIA, "noErtheia.htm");
addCondInCategory(CategoryType.MAGE_GROUP, "noCondition.htm");
addCondCompletedQuest(Q10440_TheSealOfPunishmentTheFields.class.getSimpleName(), "noCondition.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 "32641-02.htm":
case "32641-03.htm":
case "32641-07.html":
case "32643-02.htm":
case "32643-03.htm":
case "32643-07.html":
{
htmltext = event;
break;
}
case "32641-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "32643-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "spawn":
{
final L2Npc maccaden = addSpawn(AWAKENING_MECCADEN, npc.getX() + 80, npc.getY() + 80, npc.getZ(), npc.getHeading(), false, 120000, true);
maccaden.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COVETING_THE_POWER_OF_THE_SEAL_HUH_SUCH_COURAGE_SHOULD_BE_REWARDED_WITH_DEATH);
addAttackPlayerDesire(maccaden, player);
break;
}
case "reward_9546":
case "reward_9547":
case "reward_9548":
case "reward_9549":
case "reward_9550":
case "reward_9551":
{
if (qs.isCond(2))
{
if (npc.getId() == HELVETICA)
{
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
giveItems(player, stoneId, 15);
giveItems(player, EAS, 2);
giveStoryQuestReward(player, 30);
addExpAndSp(player, 14120400, 3388);
qs.exitQuest(false, true);
htmltext = "32641-08.html";
break;
}
else if (npc.getId() == ATHENIA)
{
final int stoneId = Integer.parseInt(event.replaceAll("reward_", ""));
giveItems(player, stoneId, 15);
giveItems(player, EAS, 2);
giveStoryQuestReward(player, 30);
addExpAndSp(player, 14120400, 3388);
qs.exitQuest(false, true);
htmltext = "32643-08.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 (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;
}
case DIMENSIONAL_DOOR:
{
if (qs.isCond(1))
{
htmltext = "33869-01.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.isCond(1))
{
npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.FOOLS_YOU_HAVE_ALSO_BEEN_USED_BY_SHILEN_ARGH_EVEN_IF_I_DIE_THE_SEAL_OF_PUNISHMENT_WILL_ARGHHH);
qs.setCond(2, true);
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
It's so hard to find a good adventurer these days. No one is trustworthy enough to work on my mission.<br>
(This quest may only be undertaken by characters of level 81 or higher who have completed the quest "The Seal of Punishment: The Fields".)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Dr. Helvetica:<br>
Even if I wanted to put someone to work, I can't seem to find anybody skilled enough. Is there really no one reliable out there...<br>
(Ertheia classes cannot perform this quest.)
</body></html>

View File

@ -301,11 +301,13 @@ import quests.Q10431_TheSealOfPunishmentDenOfEvil.Q10431_TheSealOfPunishmentDenO
import quests.Q10432_ChasingVarangka.Q10432_ChasingVarangka;
import quests.Q10433_KekropusLetterRegardingASeal.Q10433_KekropusLetterRegardingASeal;
import quests.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds.Q10434_TheSealOfPunishmentSelMahumTrainingGrounds;
import quests.Q10435_ChasingKeltron.Q10435_ChasingKeltron;
import quests.Q10436_KekropusLetterTheSealOfPunishment.Q10436_KekropusLetterTheSealOfPunishment;
import quests.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.Q10437_TheSealOfPunishmentPlainsOfTheLizardmen;
import quests.Q10438_ChasingLoygen.Q10438_ChasingLoygen;
import quests.Q10439_KekropusLetterTheOriginsOfARumor.Q10439_KekropusLetterTheOriginsOfARumor;
import quests.Q10440_TheSealOfPunishmentTheFields.Q10440_TheSealOfPunishmentTheFields;
import quests.Q10441_ChasingMeccadan.Q10441_ChasingMeccadan;
import quests.Q10442_TheAnnihilatedPlains1.Q10442_TheAnnihilatedPlains1;
import quests.Q10443_TheAnnihilatedPlains2.Q10443_TheAnnihilatedPlains2;
import quests.Q10444_TheOriginOfMonsters.Q10444_TheOriginOfMonsters;
@ -692,11 +694,13 @@ public class QuestMasterHandler
Q10432_ChasingVarangka.class,
Q10433_KekropusLetterRegardingASeal.class,
Q10434_TheSealOfPunishmentSelMahumTrainingGrounds.class,
Q10435_ChasingKeltron.class,
Q10436_KekropusLetterTheSealOfPunishment.class,
Q10437_TheSealOfPunishmentPlainsOfTheLizardmen.class,
Q10438_ChasingLoygen.class,
Q10439_KekropusLetterTheOriginsOfARumor.class,
Q10440_TheSealOfPunishmentTheFields.class,
Q10441_ChasingMeccadan.class,
Q10442_TheAnnihilatedPlains1.class,
Q10443_TheAnnihilatedPlains2.class,
Q10444_TheOriginOfMonsters.class,