Quest The Invaded Execution Grounds (10377).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2016-12-14 14:43:24 +00:00
parent e1fb70d08d
commit b3144d7103
20 changed files with 305 additions and 1 deletions

View File

@ -75,7 +75,6 @@
10374 That Place Succubus
10375 Succubus Disciples
10376 Bloody Good Time
10377 The Invaded Execution Grounds
10378 Weeding Work
10379 An Uninvited Guest
10380 The Executioner's Execution

View File

@ -0,0 +1,234 @@
/*
* 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.Q10377_TheInvadedExecutionGrounds;
import com.l2jmobius.gameserver.enums.ChatType;
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.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
/**
* The Invaded Execution Grounds (10377)
* @URL https://l2wiki.com/The_Invaded_Execution_Grounds
* @author Gigi
*/
public final class Q10377_TheInvadedExecutionGrounds extends Quest
{
// NPCs
private static final int SYLVAIN = 30070;
private static final int HARLAN = 30074;
private static final int RODERIK = 30631;
private static final int ENDRIGO = 30632;
private static final int TOMBSTONE_OF_THE_GUILLOTINE_OF_DEATH = 33717;
private static final int TOMBSTONE_OF_HOUPON_THE_WARDEN_OVERSEER = 33718;
private static final int TOMBSTONE_OF_CROOK_THE_MAD = 33719;
// Items
private static final int SOE_GUILLOTINE_FORTRESS = 35292;
private static final int ADENA = 57;
private static final int HARLANS_ORDERS = 34972;
private static final int ENDRIGOS_REPORT = 34973;
// Misc
private static final int MIN_LEVEL = 95;
public Q10377_TheInvadedExecutionGrounds()
{
super(10377);
addStartNpc(SYLVAIN);
addFirstTalkId(TOMBSTONE_OF_THE_GUILLOTINE_OF_DEATH, TOMBSTONE_OF_HOUPON_THE_WARDEN_OVERSEER, TOMBSTONE_OF_CROOK_THE_MAD);
addTalkId(SYLVAIN, HARLAN, RODERIK, ENDRIGO);
registerQuestItems(HARLANS_ORDERS, ENDRIGOS_REPORT);
addCondMinLevel(MIN_LEVEL);
}
@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 "sylvain_q10377_02a.html":
case "sylvain_q10377_04.htm":
case "sylvain_q10377_05.htm":
case "hitsran_q10377_02.html":
case "warden_roderik_q10377_02.html":
{
htmltext = event;
break;
}
case "sylvain_q10377_06.htm":
{
qs.startQuest();
htmltext = event;
npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, SYLVAIN, NpcStringId.OH_GODS_THANK_YOU_FOR_SENDING_US_AN_ADVENTURER_LIKE_S1));
break;
}
case "hitsran_q10377_03.html":
{
qs.setCond(2, true);
giveItems(player, HARLANS_ORDERS, 1);
htmltext = event;
break;
}
case "warden_roderik_q10377_03.html":
{
qs.setCond(0);
qs.setCond(3, true);
takeItems(player, HARLANS_ORDERS, -1);
giveItems(player, ENDRIGOS_REPORT, 1);
htmltext = event;
break;
}
case "warden_endrigo_q10377_02.html":
{
giveItems(player, ADENA, 2970560);
giveItems(player, SOE_GUILLOTINE_FORTRESS, 2);
addExpAndSp(player, 756106110, 181465);
qs.exitQuest(false, true);
htmltext = event;
break;
}
}
return htmltext;
}
@Override
public String onFirstTalk(L2Npc npc, L2PcInstance player)
{
QuestState qs = getQuestState(player, false);
if (qs != null)
{
switch (npc.getId())
{
case TOMBSTONE_OF_HOUPON_THE_WARDEN_OVERSEER:
{
if (qs.isCond(3))
{
qs.setCond(4, true);
}
break;
}
case TOMBSTONE_OF_CROOK_THE_MAD:
{
if (qs.isCond(4))
{
qs.setCond(5, true);
}
break;
}
case TOMBSTONE_OF_THE_GUILLOTINE_OF_DEATH:
{
if (qs.isCond(5))
{
qs.setCond(6, true);
}
break;
}
}
}
return null;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
String htmltext = getNoQuestMsg(player);
final QuestState qs = getQuestState(player, true);
if (qs == null)
{
return htmltext;
}
switch (qs.getState())
{
case State.CREATED:
{
if (npc.getId() == SYLVAIN)
{
htmltext = "sylvain_q10377_01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case SYLVAIN:
{
if (qs.isCond(1))
{
htmltext = "sylvain_q10377_03.html";
}
break;
}
case HARLAN:
{
if (qs.isCond(1))
{
htmltext = "hitsran_q10377_01.html";
}
else if (qs.isCond(2))
{
htmltext = "hitsran_q10377_04.html";
}
break;
}
case RODERIK:
{
if (qs.isCond(2))
{
htmltext = "warden_roderik_q10377_01.html";
}
else if (qs.isCond(3))
{
htmltext = "warden_roderik_q10377_04.html";
}
break;
}
case ENDRIGO:
{
if ((qs.getCond() > 3) && (qs.getCond() < 6))
{
htmltext = "warden_endrigo_q10377_03.html";
}
else if (qs.isCond(6))
{
takeItems(player, ENDRIGOS_REPORT, -1);
htmltext = "warden_endrigo_q10377_01.html";
}
break;
}
}
break;
}
case State.COMPLETED:
{
htmltext = getAlreadyCompletedMsg(player);
break;
}
}
return htmltext;
}
}

View File

@ -0,0 +1,4 @@
<html><body>Guard Harlan:<br>
What brings you here, adventurer?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds hitsran_q10377_02.html">"I'm here about the Execution Grounds."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Guard Harlan:<br>
Ah! You were the one sent by High Priest Sylvain.<br>
You should know that "Execution Grounds" isn't used anymore - people call it the <font color="LEVEL">Guillotine Fortress</font> now. You see, Guillotine, the Warden of the Execution Grounds, gained Shilen's power and has turned the place into a veritable fortress.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds hitsran_q10377_03.html">"What can I do then?"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Guard Harlan:<br>
Here is the order.<br>
We need you to deliver it to <font color="LEVEL">Guillotine Fortress Watchman Roderik</font>. But be careful. The Guillotine of Death is not the only terror you will face there!<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Guard Harlan:<br>
You already have the order, right? Please deliver it to Guillotine Fortress Watchman Roderik. <br>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>High Priest Sylvain:<br>
I have have news.<br>
It is important to Dion Territory, but does an outsider care to listen?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds sylvain_q10377_04.htm">"I do. What about Dion Territory?"</button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds sylvain_q10377_02a.html">"It's none of my business."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Sylvain:<br>
I see. I... understand. If you ever change your mind, we are desperate for help.<br>
Einhasad's blessing be with you...<br>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>High Priest Sylvain:<br>
Was I not clear? Speak to <font color="LEVEL">Guard Harlan</font> at the town entrance for details.<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>High Priest Sylvain:<br>
It's... embarrassing. Do not think less of us for it.<br>
Shilen's catastrophe... You must certainly remember the <font color="LEVEL">Rain of Blood</font> and <font color="LEVEL">Fog of plague</font>? Of course, Dion suffered like the rest of Aden. But the disaster contaminated our land with wicked things... And the Duke <font color="LEVEL">Byron Ashton</font> has made a decision.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds sylvain_q10377_05.htm">"...yes?"</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>High Priest Sylvain:<br>
Well, he decided to dump everything in the <font color="LEVEL">Execution Grounds.</font> But the whole cause of the mess was <font color="LEVEL">Shilen's Blood</font>, and now that area is... horrible. <br>
The spirits there must have gained malevolent power from Shilen's Blood. I'm supposed to go assess the situation, but it's too dangerous.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds sylvain_q10377_06.htm">"I'll go. I've probably seen worse."</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>High Priest Sylvain:<br>
Oh, what a relief! But you will need to prepare yourself well..<br>
<font color="LEVEL">Guard Harlan</font> can give you more details and tell you the way. May the Einhasad's blessing be with you....<br>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Guillotine Fortress Watchman Endrigo:<br>
You've brought the Roderik's report? Did you finish scouting Guillotine Fortress?<br>
Tell me what you saw.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds warden_endrigo_q10377_02.html">"There was a graveyard..."</button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Guillotine Fortress Watchman Endrigo:<br>
I can deliver the message to the town. I would appreciate it if you did something else for me.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Guillotine Fortress Watchman Roderik:<br>
What brings you to the land of the dead?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds warden_roderik_q10377_02.html">"Well, it's a long story..."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Guillotine Fortress Watchman Roderik:<br>
You're On orders from town? Hmm... I see, I see. Well, getting this far proves you're no fool.<br>
I will trust you for a mission.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10377_TheInvadedExecutionGrounds warden_roderik_q10377_03.html">"Let's hear it."</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Guillotine Fortress Watchman Roderik:<br>
After <font color="LEVEL">Guillotine of Death</font> turned this place into his fortress, everything changed. Even the land changed, and we can't spare scouts. It's impossible to plan without knowing the land. Could you scout for us?<br>
I've heard that the <font color="LEVEL">Tombstones</font> are particularly haunted, so check the <font color="LEVEL">Tombstone of Houpon the Warden Overseer, Tombstone of Crook the Mad, and Tombstone of the Guillotine of Death</font>.<br>
When you have finished, report to <font color="LEVEL">Guillotine Fortress Watchman Endrigo</font> over there, and give him this report as well.<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Guillotine Fortress Watchman Roderik:<br>
Scout around the <font color="LEVEL">Tombstone</font>, especially the <font color="LEVEL">Tombstone of Houpon the Warden Overseer, Tombstone of Crook the Mad, and Tombstone of the Guillotine of Death</font>.<br>
When you have finished, report to <font color="LEVEL">Guillotine Fortress Watchman Endrigo</font> over there, and give him this report as well.<br>
</body></html>

View File

@ -259,6 +259,7 @@ import quests.Q10365_SeekerEscort.Q10365_SeekerEscort;
import quests.Q10366_RuinsStatusUpdate.Q10366_RuinsStatusUpdate;
import quests.Q10368_RebellionOfMonsters.Q10368_RebellionOfMonsters;
import quests.Q10369_NoblesseSoulTesting.Q10369_NoblesseSoulTesting;
import quests.Q10377_TheInvadedExecutionGrounds.Q10377_TheInvadedExecutionGrounds;
import quests.Q10381_ToTheSeedOfHellfire.Q10381_ToTheSeedOfHellfire;
import quests.Q10382_DayOfLiberation.Q10382_DayOfLiberation;
import quests.Q10383_FergasonsOffer.Q10383_FergasonsOffer;
@ -656,6 +657,7 @@ public class QuestMasterHandler
Q10366_RuinsStatusUpdate.class,
Q10368_RebellionOfMonsters.class,
Q10369_NoblesseSoulTesting.class,
Q10377_TheInvadedExecutionGrounds.class,
Q10381_ToTheSeedOfHellfire.class,
Q10382_DayOfLiberation.class,
Q10383_FergasonsOffer.class,