Quest The Invaded Execution Grounds (10377).
Contributed by gigilo1968.
This commit is contained in:
parent
e1fb70d08d
commit
b3144d7103
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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>
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user