diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_Underground/dist/game/data/scripts/quests/MissingQuests.txt index ed2074be63..8ecd5bbf9e 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/MissingQuests.txt +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/MissingQuests.txt @@ -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 diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/Q10377_TheInvadedExecutionGrounds.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/Q10377_TheInvadedExecutionGrounds.java new file mode 100644 index 0000000000..cf8cea56c8 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/Q10377_TheInvadedExecutionGrounds.java @@ -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 . + */ +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; + } +} \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_01.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_01.html new file mode 100644 index 0000000000..6802309c50 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_01.html @@ -0,0 +1,4 @@ +Guard Harlan:
+What brings you here, adventurer?
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_02.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_02.html new file mode 100644 index 0000000000..065c764ba0 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_02.html @@ -0,0 +1,5 @@ +Guard Harlan:
+Ah! You were the one sent by High Priest Sylvain.
+You should know that "Execution Grounds" isn't used anymore - people call it the Guillotine Fortress now. You see, Guillotine, the Warden of the Execution Grounds, gained Shilen's power and has turned the place into a veritable fortress.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_03.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_03.html new file mode 100644 index 0000000000..4cd88199f1 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_03.html @@ -0,0 +1,4 @@ +Guard Harlan:
+Here is the order.
+We need you to deliver it to Guillotine Fortress Watchman Roderik. But be careful. The Guillotine of Death is not the only terror you will face there!
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_04.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_04.html new file mode 100644 index 0000000000..23be814188 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/hitsran_q10377_04.html @@ -0,0 +1,3 @@ +Guard Harlan:
+You already have the order, right? Please deliver it to Guillotine Fortress Watchman Roderik.
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_01.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_01.htm new file mode 100644 index 0000000000..cfc9e1b77e --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_01.htm @@ -0,0 +1,6 @@ +High Priest Sylvain:
+I have have news.
+It is important to Dion Territory, but does an outsider care to listen?
+ + + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_02a.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_02a.html new file mode 100644 index 0000000000..cdbc23cfda --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_02a.html @@ -0,0 +1,4 @@ +High Priest Sylvain:
+I see. I... understand. If you ever change your mind, we are desperate for help.
+Einhasad's blessing be with you...
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_03.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_03.html new file mode 100644 index 0000000000..2785df2b2c --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_03.html @@ -0,0 +1,3 @@ +High Priest Sylvain:
+Was I not clear? Speak to Guard Harlan at the town entrance for details.
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_04.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_04.htm new file mode 100644 index 0000000000..9bc57a903d --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_04.htm @@ -0,0 +1,5 @@ +High Priest Sylvain:
+It's... embarrassing. Do not think less of us for it.
+Shilen's catastrophe... You must certainly remember the Rain of Blood and Fog of plague? Of course, Dion suffered like the rest of Aden. But the disaster contaminated our land with wicked things... And the Duke Byron Ashton has made a decision.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_05.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_05.htm new file mode 100644 index 0000000000..db225ba423 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_05.htm @@ -0,0 +1,5 @@ +High Priest Sylvain:
+Well, he decided to dump everything in the Execution Grounds. But the whole cause of the mess was Shilen's Blood, and now that area is... horrible.
+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.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_06.htm b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_06.htm new file mode 100644 index 0000000000..f397052d00 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/sylvain_q10377_06.htm @@ -0,0 +1,4 @@ +High Priest Sylvain:
+Oh, what a relief! But you will need to prepare yourself well..
+Guard Harlan can give you more details and tell you the way. May the Einhasad's blessing be with you....
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_01.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_01.html new file mode 100644 index 0000000000..bf2e92b334 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_01.html @@ -0,0 +1,5 @@ +Guillotine Fortress Watchman Endrigo:
+You've brought the Roderik's report? Did you finish scouting Guillotine Fortress?
+Tell me what you saw.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_02.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_02.html new file mode 100644 index 0000000000..e69de29bb2 diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_03.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_03.html new file mode 100644 index 0000000000..f15e2e3d38 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_endrigo_q10377_03.html @@ -0,0 +1,3 @@ +Guillotine Fortress Watchman Endrigo:
+I can deliver the message to the town. I would appreciate it if you did something else for me.
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_01.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_01.html new file mode 100644 index 0000000000..8c9d3cd608 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_01.html @@ -0,0 +1,4 @@ +Guillotine Fortress Watchman Roderik:
+What brings you to the land of the dead?
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_02.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_02.html new file mode 100644 index 0000000000..d58e76748e --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_02.html @@ -0,0 +1,5 @@ +Guillotine Fortress Watchman Roderik:
+You're On orders from town? Hmm... I see, I see. Well, getting this far proves you're no fool.
+I will trust you for a mission.
+ + \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_03.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_03.html new file mode 100644 index 0000000000..db905f5cbd --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_03.html @@ -0,0 +1,5 @@ +Guillotine Fortress Watchman Roderik:
+After Guillotine of Death 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?
+I've heard that the Tombstones are particularly haunted, so check the Tombstone of Houpon the Warden Overseer, Tombstone of Crook the Mad, and Tombstone of the Guillotine of Death.
+When you have finished, report to Guillotine Fortress Watchman Endrigo over there, and give him this report as well.
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_04.html b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_04.html new file mode 100644 index 0000000000..aa26459b41 --- /dev/null +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/Q10377_TheInvadedExecutionGrounds/warden_roderik_q10377_04.html @@ -0,0 +1,4 @@ +Guillotine Fortress Watchman Roderik:
+Scout around the Tombstone, especially the Tombstone of Houpon the Warden Overseer, Tombstone of Crook the Mad, and Tombstone of the Guillotine of Death.
+When you have finished, report to Guillotine Fortress Watchman Endrigo over there, and give him this report as well.
+ \ No newline at end of file diff --git a/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java index 629e1df8c1..8fef65c6c3 100644 --- a/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java +++ b/L2J_Mobius_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java @@ -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,