diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31774-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31774-1.htm
new file mode 100644
index 0000000000..42de13981d
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31774-1.htm
@@ -0,0 +1,9 @@
+
+Magrit:
+The Death Eater is the most powerful and dangerous creature in this prison.
+If you have the Key from the Central Part of the Western Wing of the Dungeon of Abyss, You can get to the Death Eater.
+However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have 30 minutes to destroy it.
+If you decide to retreat or fail and want to try your luck some other time, you will need a new key.
+And more: if the quantity and weight of items in your inventory will exceed 80%, You can not get a reward, so take care of an empty seat before the battle begins.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31774.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31774.htm
new file mode 100644
index 0000000000..ef80f68932
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31774.htm
@@ -0,0 +1,9 @@
+
+Magrit:
+An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31775-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31775-1.htm
new file mode 100644
index 0000000000..4ed525fb56
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31775-1.htm
@@ -0,0 +1,9 @@
+
+Ingrit:
+The Death Eater is the most powerful and dangerous creature in this prison.
+If you have the Key from the Central Part of the Western Wing of the Dungeon of Abyss, You can get to the Death Eater.
+However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have 30 minutes to destroy it.
+If you decide to retreat or fail and want to try your luck some other time, you will need a new key.
+And more: if the quantity and weight of items in your inventory will exceed 80%, You can not get a reward, so take care of an empty seat before the battle begins.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31775.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31775.htm
new file mode 100644
index 0000000000..bcc4c688eb
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31775.htm
@@ -0,0 +1,9 @@
+
+Ingrit:
+An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31776-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31776-1.htm
new file mode 100644
index 0000000000..f0941ca5eb
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31776-1.htm
@@ -0,0 +1,9 @@
+
+Iris:
+The Death Eater is the most powerful and dangerous creature in this prison.
+If you have the Key from the Central Part of the Western Wing of the Dungeon of Abyss, You can get to the Death Eater.
+However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have 30 minutes to destroy it.
+If you decide to retreat or fail and want to try your luck some other time, you will need a new key.
+And more: if the quantity and weight of items in your inventory will exceed 80%, You can not get a reward, so take care of an empty seat before the battle begins.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31776.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31776.htm
new file mode 100644
index 0000000000..29336e6df5
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31776.htm
@@ -0,0 +1,9 @@
+
+Iris:
+An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31777-1.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31777-1.htm
new file mode 100644
index 0000000000..34c5b00f50
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31777-1.htm
@@ -0,0 +1,9 @@
+
+Rosammy:
+The Death Eater is the most powerful and dangerous creature in this prison.
+If you have the Key from the Central Part of the Western Wing of the Dungeon of Abyss, You can get to the Death Eater.
+However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have 30 minutes to destroy it.
+If you decide to retreat or fail and want to try your luck some other time, you will need a new key.
+And more: if the quantity and weight of items in your inventory will exceed 80%, You can not get a reward, so take care of an empty seat before the battle begins.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31777.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31777.htm
new file mode 100644
index 0000000000..42a78c15e3
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/31777.htm
@@ -0,0 +1,9 @@
+
+Rosammy:
+An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Ingrit.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Ingrit.java
new file mode 100644
index 0000000000..5ee5dcf80f
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Ingrit.java
@@ -0,0 +1,109 @@
+/*
+ * 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 ai.areas.DungeonOfAbyss.SoulTracker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jmobius.gameserver.model.Location;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author QuangNguyen
+ */
+public class Ingrit extends AbstractNpcAI
+{
+ // NPC
+ private static final int SOUL_TRACKER_INRGIT = 31775;
+ // Item
+ private static final int KEY_OF_WEST_WING = 90010;
+ // Locations
+ private static final Map LOCATIONS = new HashMap<>();
+ static
+ {
+ LOCATIONS.put("1", new Location(-119533, -179641, -6751)); // Join Room from Ingrit
+ LOCATIONS.put("2", new Location(-120325, -182444, -6752)); // Move to West Wing 1nd
+ LOCATIONS.put("3", new Location(-116975, -178699, -6751)); // Go to the Condemned of Abyss Prison
+ LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
+ }
+
+ private Ingrit()
+ {
+ addStartNpc(SOUL_TRACKER_INRGIT);
+ addTalkId(SOUL_TRACKER_INRGIT);
+ addFirstTalkId(SOUL_TRACKER_INRGIT);
+ }
+
+ @Override
+ public String onFirstTalk(L2Npc npc, L2PcInstance player)
+ {
+ return npc.getId() + ".htm";
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (npc.getId() == SOUL_TRACKER_INRGIT)
+ {
+ QuestState qs = player.getQuestState("Q00933_ExploringTheWestWingOfTheDungeonOfAbyss");
+ switch (event)
+ {
+ case "1":
+ {
+ if ((qs != null) && qs.isStarted())
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Join Room from Ingrit
+ }
+ else
+ {
+ return "no_enter.htm";
+ }
+ break;
+ }
+ case "2":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Move to West Wing 1nd
+ break;
+ }
+ case "3":
+ {
+ if (!hasQuestItems(player, KEY_OF_WEST_WING))
+ {
+ return "no_key.htm";
+ }
+ player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
+ break;
+ }
+ case "4":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
+ break;
+ }
+ }
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ public static void main(String[] args)
+ {
+ new Ingrit();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Iris.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Iris.java
new file mode 100644
index 0000000000..18cd4cd549
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Iris.java
@@ -0,0 +1,109 @@
+/*
+ * 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 ai.areas.DungeonOfAbyss.SoulTracker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jmobius.gameserver.model.Location;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author QuangNguyen
+ */
+public class Iris extends AbstractNpcAI
+{
+ // NPC
+ private static final int SOUL_TRACKER_IRIS = 31776;
+ // Item
+ private static final int KEY_OF_EAST_WING = 90011;
+ // Locations
+ private static final Map LOCATIONS = new HashMap<>();
+ static
+ {
+ LOCATIONS.put("1", new Location(-110038, -180560, -6754)); // Join Room from Iris
+ LOCATIONS.put("2", new Location(-109234, -177737, -6751)); // Move to East Wing 2nd
+ LOCATIONS.put("3", new Location(-112648, -181517, -6751)); // Go to the Condemned of Abyss Prison
+ LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
+ }
+
+ private Iris()
+ {
+ addStartNpc(SOUL_TRACKER_IRIS);
+ addTalkId(SOUL_TRACKER_IRIS);
+ addFirstTalkId(SOUL_TRACKER_IRIS);
+ }
+
+ @Override
+ public String onFirstTalk(L2Npc npc, L2PcInstance player)
+ {
+ return npc.getId() + ".htm";
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (npc.getId() == SOUL_TRACKER_IRIS)
+ {
+ QuestState qs = player.getQuestState("Q00935_ExploringTheEastWingOfTheDungeonOfAbyss");
+ switch (event)
+ {
+ case "1":
+ {
+ if ((qs != null) && qs.isStarted())
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Join Room form Iris
+ }
+ else
+ {
+ return "no_enter.htm";
+ }
+ break;
+ }
+ case "2":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Move to East Wing 2nd
+ break;
+ }
+ case "3":
+ {
+ if (!hasQuestItems(player, KEY_OF_EAST_WING))
+ {
+ return "no_key.htm";
+ }
+ player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
+ break;
+ }
+ case "4":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
+ break;
+ }
+ }
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ public static void main(String[] args)
+ {
+ new Iris();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Magrit.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Magrit.java
new file mode 100644
index 0000000000..89a208d1fb
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Magrit.java
@@ -0,0 +1,109 @@
+/*
+ * 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 ai.areas.DungeonOfAbyss.SoulTracker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jmobius.gameserver.model.Location;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author QuangNguyen
+ */
+public class Magrit extends AbstractNpcAI
+{
+ // NPC
+ private static final int SOUL_TRACKER_MARGIT = 31774;
+ // Item
+ private static final int KEY_OF_WEST_WING = 90010;
+ // Locations
+ private static final Map LOCATIONS = new HashMap<>();
+ static
+ {
+ LOCATIONS.put("1", new Location(-119440, -182464, -6752)); // Join Room from Magrit
+ LOCATIONS.put("2", new Location(-120394, -179651, -6751)); // Move to West Wing 2nd
+ LOCATIONS.put("3", new Location(-116963, -181492, -6575)); // Go to the Condemned of Abyss Prison
+ LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
+ }
+
+ private Magrit()
+ {
+ addStartNpc(SOUL_TRACKER_MARGIT);
+ addTalkId(SOUL_TRACKER_MARGIT);
+ addFirstTalkId(SOUL_TRACKER_MARGIT);
+ }
+
+ @Override
+ public String onFirstTalk(L2Npc npc, L2PcInstance player)
+ {
+ return npc.getId() + ".htm";
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (npc.getId() == SOUL_TRACKER_MARGIT)
+ {
+ QuestState qs = player.getQuestState("Q00933_ExploringTheWestWingOfTheDungeonOfAbyss");
+ switch (event)
+ {
+ case "1":
+ {
+ if ((qs != null) && qs.isStarted())
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Join Room from Magrit
+ }
+ else
+ {
+ return "no_enter.htm";
+ }
+ break;
+ }
+ case "2":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Move to West Wing 2nd
+ break;
+ }
+ case "3":
+ {
+ if (!hasQuestItems(player, KEY_OF_WEST_WING))
+ {
+ return "no_key.htm";
+ }
+ player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
+ break;
+ }
+ case "4":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
+ break;
+ }
+ }
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ public static void main(String[] args)
+ {
+ new Magrit();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Rosammy.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Rosammy.java
new file mode 100644
index 0000000000..2dd21cedc0
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Rosammy.java
@@ -0,0 +1,109 @@
+/*
+ * 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 ai.areas.DungeonOfAbyss.SoulTracker;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jmobius.gameserver.model.Location;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author QuangNguyen
+ */
+public class Rosammy extends AbstractNpcAI
+{
+ // NPC
+ private static final int SOUL_TRACKER_ROSAMMY = 31777;
+ // Item
+ private static final int KEY_OF_EAST_WING = 90011;
+ // Locations
+ private static final Map LOCATIONS = new HashMap<>();
+ static
+ {
+ LOCATIONS.put("1", new Location(-110067, -177733, -6751)); // Join Room from Rosammy
+ LOCATIONS.put("2", new Location(-120318, -179626, -6752)); // Move to East Wing 1nd
+ LOCATIONS.put("3", new Location(-112632, -178671, -6751)); // Go to the Condemned of Abyss Prison
+ LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
+ }
+
+ private Rosammy()
+ {
+ addStartNpc(SOUL_TRACKER_ROSAMMY);
+ addTalkId(SOUL_TRACKER_ROSAMMY);
+ addFirstTalkId(SOUL_TRACKER_ROSAMMY);
+ }
+
+ @Override
+ public String onFirstTalk(L2Npc npc, L2PcInstance player)
+ {
+ return npc.getId() + ".htm";
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (npc.getId() == SOUL_TRACKER_ROSAMMY)
+ {
+ QuestState qs = player.getQuestState("Q00935_ExploringTheEastWingOfTheDungeonOfAbyss");
+ switch (event)
+ {
+ case "1":
+ {
+ if ((qs != null) && qs.isStarted())
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Join Room Rosammy
+ }
+ else
+ {
+ return "no_enter.htm";
+ }
+ break;
+ }
+ case "2":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Move to East Wing 1nd
+ break;
+ }
+ case "3":
+ {
+ if (!hasQuestItems(player, KEY_OF_EAST_WING))
+ {
+ return "no_key.htm";
+ }
+ player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
+ break;
+ }
+ case "4":
+ {
+ player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
+ break;
+ }
+ }
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ public static void main(String[] args)
+ {
+ new Rosammy();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/no_enter.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/no_enter.htm
new file mode 100644
index 0000000000..8739419ea6
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/no_enter.htm
@@ -0,0 +1,4 @@
+
+Magrit:
+You apparently forgot to take the quest, please take the quest.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/no_key.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/no_key.htm
new file mode 100644
index 0000000000..2b614e3f14
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/no_key.htm
@@ -0,0 +1,4 @@
+
+Magrit:
+If you do not have the Key, you can not move to the Condemned of Abyss Prison.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778-no_level.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778-no_level.htm
new file mode 100644
index 0000000000..7aa52d6993
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778-no_level.htm
@@ -0,0 +1,5 @@
+
+Tores:
+It seems to me that you are not strong enough to go on a mission to the Dungeon of Abyss.
+(Western Wing of the Dungeon of Abyss for characters 40-44 level.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778-no_level01.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778-no_level01.htm
new file mode 100644
index 0000000000..2b6c6393a7
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778-no_level01.htm
@@ -0,0 +1,5 @@
+
+Tores:
+It seems to me that you are not strong enough to go on a mission to the Dungeon of Abyss.
+(Eastern Wing side of the Dungeon of Abyss for characters 45-49 level.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778.htm
new file mode 100644
index 0000000000..2abd4983a2
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/31778.htm
@@ -0,0 +1,7 @@
+
+Tores:
+Have you heard of the Dungeon of Abyss? Especially evil and dangerous monsters are imprisoned there.
+But someone has recently removed the seal from its gates. If we do nothing… No, only a thought of it scares me. I need your help.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/Tores.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/Tores.java
new file mode 100644
index 0000000000..886bc64d60
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/Tores.java
@@ -0,0 +1,98 @@
+/*
+ * 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 ai.areas.DungeonOfAbyss.Tores;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import com.l2jmobius.gameserver.model.Location;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+
+import ai.AbstractNpcAI;
+
+/**
+ * @author QuangNguyen
+ */
+public class Tores extends AbstractNpcAI
+{
+ // NPC
+ private static final int TORES = 31778;
+ // Locations
+ private static final Map LOCATIONS = new HashMap<>();
+ static
+ {
+ // move from Tores
+ LOCATIONS.put("1", new Location(-120325, -182444, -6752)); // Move to Magrit
+ LOCATIONS.put("2", new Location(-109202, -180546, -6751)); // Move to Iris
+ }
+
+ private Tores()
+ {
+ addStartNpc(TORES);
+ addTalkId(TORES);
+ addFirstTalkId(TORES);
+ }
+
+ @Override
+ public String onFirstTalk(L2Npc npc, L2PcInstance player)
+ {
+ return "31778.htm";
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ switch (event)
+ {
+ case "1":
+ {
+ final Location loc = LOCATIONS.get(event);
+ if ((player.getLevel() > 39) && (player.getLevel() < 45))
+ {
+ player.teleToLocation(loc, true);
+
+ }
+ else
+ {
+ return "31778-no_level.htm";
+ }
+ break;
+ }
+ case "2":
+ {
+ final Location loc = LOCATIONS.get(event);
+ if ((player.getLevel() > 44) && (player.getLevel() < 50))
+ {
+ player.teleToLocation(loc, true);
+
+ }
+ else
+ {
+ return "31778-no_level01.htm";
+ }
+ break;
+ }
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ public static void main(String[] args)
+ {
+ new Tores();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/MissingQuests.txt
index 6c3d002c68..ba676dcb65 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/MissingQuests.txt
@@ -2,8 +2,6 @@
911 Request from the Red Libra Guild - Intermediate
912 Request from the Red Libra Guild - Advanced
913 Request from the Red Libra Guild - Super Advanced
-933 Exploring the West Wing of the Dungeon of Abyss
-935 Exploring the East Wing of the Dungeon of Abyss
NEED TO BE REMADE
Q00071_SagaOfEvasTemplar
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-01.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-01.htm
new file mode 100644
index 0000000000..ab3cd7f603
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-01.htm
@@ -0,0 +1,5 @@
+
+Magrit:
+I'll tell you the story of this place
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-01a.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-01a.htm
new file mode 100644
index 0000000000..75876d5722
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-01a.htm
@@ -0,0 +1,4 @@
+
+Magrit:
+You do not meet the requirements of the quest
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-02.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-02.htm
new file mode 100644
index 0000000000..47fcbd8de2
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-02.htm
@@ -0,0 +1,5 @@
+
+Magrit:
+In this area dreadful monsters live ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-03.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-03.htm
new file mode 100644
index 0000000000..3703f96083
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-03.htm
@@ -0,0 +1,5 @@
+
+Magrit:
+If you help us remove the threat, we will reward you ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-04.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-04.htm
new file mode 100644
index 0000000000..fb252a6952
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-04.htm
@@ -0,0 +1,3 @@
+
+You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-05.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-05.htm
new file mode 100644
index 0000000000..f20e01119d
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31774-05.htm
@@ -0,0 +1,5 @@
+
+Magrit:
+Did you manage to destroy the inhabitants?
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-01.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-01.htm
new file mode 100644
index 0000000000..1d79e81ca7
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-01.htm
@@ -0,0 +1,5 @@
+
+Ingrit:
+I'll tell you the story of this place
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-01a.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-01a.htm
new file mode 100644
index 0000000000..d31d2e8aeb
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-01a.htm
@@ -0,0 +1,4 @@
+
+Ingrit:
+You do not meet the requirements of the quest
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-02.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-02.htm
new file mode 100644
index 0000000000..b18f703967
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-02.htm
@@ -0,0 +1,5 @@
+
+Ingrit:
+In this area dreadful monsters live ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-03.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-03.htm
new file mode 100644
index 0000000000..3a7526a49b
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-03.htm
@@ -0,0 +1,5 @@
+
+Ingrit:
+If you help us remove the threat, we will reward you ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-04.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-04.htm
new file mode 100644
index 0000000000..fb252a6952
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-04.htm
@@ -0,0 +1,3 @@
+
+You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-05.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-05.htm
new file mode 100644
index 0000000000..0655e621de
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/31775-05.htm
@@ -0,0 +1,5 @@
+
+Ingrit:
+Did you manage to destroy the inhabitants?
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.java
new file mode 100644
index 0000000000..108b471d2d
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.java
@@ -0,0 +1,226 @@
+/*
+ * 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.Q00933_ExploringTheWestWingOfTheDungeonOfAbyss;
+
+import com.l2jmobius.gameserver.enums.QuestType;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.ItemHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * @author QuangNguyen
+ */
+public class Q00933_ExploringTheWestWingOfTheDungeonOfAbyss extends Quest
+{
+ // NPCs
+ private static final int MAGRIT = 31774;
+ private static final int INGRIT = 31775;
+ // Monsters
+ public final int MERTT = 21638;
+ public final int DUHT = 21639;
+ public final int PRIZT = 21640;
+ public final int KOVART = 21641;
+ // Items
+ public final ItemHolder OSKZLA = new ItemHolder(90008, 1);
+ public final ItemHolder POD = new ItemHolder(90136, 1);
+
+ public Q00933_ExploringTheWestWingOfTheDungeonOfAbyss()
+ {
+ super(933);
+ addStartNpc(MAGRIT, INGRIT);
+ addTalkId(MAGRIT, INGRIT);
+ addKillId(MERTT, DUHT, PRIZT, KOVART);
+ registerQuestItems(OSKZLA.getId());
+ }
+
+ @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 "31774-01.htm":
+ case "31774-02.htm":
+ case "31774-03.htm":
+ case "31775-01.htm":
+ case "31775-02.htm":
+ case "31775-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+
+ case "31774-04.htm":
+ {
+ if (player.getLevel() >= 40)
+ {
+ qs.startQuest();
+ htmltext = event;
+ }
+ break;
+ }
+ case "31775-04.htm":
+ {
+ if (player.getLevel() >= 40)
+ {
+ qs.startQuest();
+ htmltext = event;
+ }
+ break;
+ }
+ case "end.htm":
+ {
+ player.addExpAndSp(250000, 7700);
+ rewardItems(player, POD);
+ qs.exitQuest(QuestType.DAILY, true);
+ break;
+ }
+ }
+
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance talker)
+ {
+ final QuestState qs = getQuestState(talker, true);
+ String htmltext = getNoQuestMsg(talker);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = (talker.getLevel() < 40) ? "nolvl.htm" : "31774-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ if (npc.getId() == MAGRIT)
+ {
+ switch (qs.getCond())
+ {
+ case 0:
+ {
+ if ((qs.getPlayer().getLevel() >= 40) && (qs.getPlayer().getLevel() <= 46))
+ {
+ htmltext = "31774-01.htm";
+ }
+ else
+ {
+ htmltext = "31774-01a.htm";
+ }
+ break;
+ }
+ case 1:
+ {
+ htmltext = "31774-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "31774-05.htm";
+ break;
+ }
+ }
+ break;
+ }
+ else if (npc.getId() == INGRIT)
+ {
+ switch (qs.getCond())
+ {
+ case 0:
+ {
+ if ((qs.getPlayer().getLevel() >= 40) && (qs.getPlayer().getLevel() <= 46))
+ {
+ htmltext = "31775-01.htm";
+ qs.startQuest();
+ }
+ else
+ {
+ htmltext = "31775-01a.htm";
+ }
+ break;
+ }
+ case 1:
+ {
+ htmltext = "31775-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "31775-05.htm";
+ break;
+ }
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (qs.isNowAvailable())
+ {
+ qs.setState(State.CREATED);
+ if ((npc.getId() == MAGRIT) && (qs.getPlayer().getLevel() < 40))
+ {
+ htmltext = "31774-01.htm";
+ }
+ else if ((npc.getId() == INGRIT) && (qs.getPlayer().getLevel() < 40))
+ {
+ htmltext = "31775-01.htm";
+ }
+ else
+ {
+ htmltext = "nolvl.htm";
+ }
+ }
+ else
+ {
+ htmltext = getAlreadyCompletedMsg(talker);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if (qs.getCond() == 1)
+ {
+ if (getQuestItemsCount(killer, OSKZLA.getId()) < 50)
+ {
+ giveItems(killer, OSKZLA);
+ }
+ if (getQuestItemsCount(killer, OSKZLA.getId()) >= 50)
+ {
+ qs.setCond(2);
+ }
+ }
+
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/end.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/end.htm
new file mode 100644
index 0000000000..f32c5fb48b
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/end.htm
@@ -0,0 +1,3 @@
+
+Thanks for the help, here's the reward !!!
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/nolvl.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/nolvl.htm
new file mode 100644
index 0000000000..f9c3fb3893
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00933_ExploringTheWestWingOfTheDungeonOfAbyss/nolvl.htm
@@ -0,0 +1,4 @@
+
+Magrit:
+(This quest is only available to level 40-46 characters.)
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-01.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-01.htm
new file mode 100644
index 0000000000..6706c2be67
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-01.htm
@@ -0,0 +1,5 @@
+
+Iris:
+I'll tell you the story of this place
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-01a.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-01a.htm
new file mode 100644
index 0000000000..0f65ea546a
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-01a.htm
@@ -0,0 +1,4 @@
+
+Iris:
+You do not meet the requirements of the quest
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-02.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-02.htm
new file mode 100644
index 0000000000..c175dcab31
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-02.htm
@@ -0,0 +1,5 @@
+
+Iris:
+In this area dreadful monsters live ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-03.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-03.htm
new file mode 100644
index 0000000000..fece623ead
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-03.htm
@@ -0,0 +1,5 @@
+
+Iris:
+If you help us remove the threat, we will reward you ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-04.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-04.htm
new file mode 100644
index 0000000000..fb252a6952
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-04.htm
@@ -0,0 +1,3 @@
+
+You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-05.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-05.htm
new file mode 100644
index 0000000000..5ce01fea90
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31776-05.htm
@@ -0,0 +1,5 @@
+
+Iris:
+Did you manage to destroy the inhabitants?
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-01.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-01.htm
new file mode 100644
index 0000000000..31f94d9a87
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-01.htm
@@ -0,0 +1,5 @@
+
+Rosammy:
+I'll tell you the story of this place
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-01a.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-01a.htm
new file mode 100644
index 0000000000..9a40cd587c
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-01a.htm
@@ -0,0 +1,4 @@
+
+Rosammy:
+You do not meet the requirements of the quest
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-02.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-02.htm
new file mode 100644
index 0000000000..924ecbfa39
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-02.htm
@@ -0,0 +1,5 @@
+
+Rosammy:
+In this area dreadful monsters live ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-03.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-03.htm
new file mode 100644
index 0000000000..f498a62d0c
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-03.htm
@@ -0,0 +1,5 @@
+
+Rosammy:
+If you help us remove the threat, we will reward you ...
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-04.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-04.htm
new file mode 100644
index 0000000000..fb252a6952
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-04.htm
@@ -0,0 +1,3 @@
+
+You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-05.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-05.htm
new file mode 100644
index 0000000000..47f1cd1209
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/31777-05.htm
@@ -0,0 +1,5 @@
+
+Rosammy:
+Did you manage to destroy the inhabitants?
+
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.java
new file mode 100644
index 0000000000..82013c2336
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.java
@@ -0,0 +1,226 @@
+/*
+ * 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.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss;
+
+import com.l2jmobius.gameserver.enums.QuestType;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.ItemHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * @author QuangNguyen
+ */
+public class Q00935_ExploringTheEastWingOfTheDungeonOfAbyss extends Quest
+{
+ // NPCs
+ private static final int IRIS = 31776;
+ private static final int ROSAMMY = 31777;
+ // Monsters
+ public final int MERTT = 21644;
+ public final int DUHT = 21645;
+ public final int PRIZT = 21646;
+ public final int KOVART = 21647;
+ // Items
+ public final ItemHolder OSKZLA = new ItemHolder(90009, 1);
+ public final ItemHolder POD = new ItemHolder(90136, 1);
+
+ public Q00935_ExploringTheEastWingOfTheDungeonOfAbyss()
+ {
+ super(935);
+ addStartNpc(IRIS, ROSAMMY);
+ addTalkId(IRIS, ROSAMMY);
+ addKillId(MERTT, DUHT, PRIZT, KOVART);
+ registerQuestItems(OSKZLA.getId());
+ }
+
+ @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 "31776-01.htm":
+ case "31776-02.htm":
+ case "31776-03.htm":
+ case "31777-01.htm":
+ case "31777-02.htm":
+ case "31777-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+
+ case "31776-04.htm":
+ {
+ if (player.getLevel() >= 45)
+ {
+ qs.startQuest();
+ htmltext = event;
+ }
+ break;
+ }
+ case "31777-04.htm":
+ {
+ if (player.getLevel() >= 45)
+ {
+ qs.startQuest();
+ htmltext = event;
+ }
+ break;
+ }
+ case "end.htm":
+ {
+ player.addExpAndSp(250000, 7700);
+ rewardItems(player, POD);
+ qs.exitQuest(QuestType.DAILY, true);
+ break;
+ }
+ }
+
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance talker)
+ {
+ final QuestState qs = getQuestState(talker, true);
+ String htmltext = getNoQuestMsg(talker);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = (talker.getLevel() < 45) ? "nolvl.htm" : "31776-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ if (npc.getId() == IRIS)
+ {
+ switch (qs.getCond())
+ {
+ case 0:
+ {
+ if ((qs.getPlayer().getLevel() >= 45) && (qs.getPlayer().getLevel() <= 49))
+ {
+ htmltext = "31776-01.htm";
+ }
+ else
+ {
+ htmltext = "31776-01a.htm";
+ }
+ break;
+ }
+ case 1:
+ {
+ htmltext = "31776-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "31776-05.htm";
+ break;
+ }
+ }
+ break;
+ }
+ else if (npc.getId() == ROSAMMY)
+ {
+ switch (qs.getCond())
+ {
+ case 0:
+ {
+ if ((qs.getPlayer().getLevel() >= 45) && (qs.getPlayer().getLevel() <= 49))
+ {
+ htmltext = "31777-01.htm";
+ qs.startQuest();
+ }
+ else
+ {
+ htmltext = "31777-01a.htm";
+ }
+ break;
+ }
+ case 1:
+ {
+ htmltext = "31777-04.htm";
+ break;
+ }
+ case 2:
+ {
+ htmltext = "31777-05.htm";
+ break;
+ }
+ }
+ }
+ break;
+ }
+ case State.COMPLETED:
+ {
+ if (qs.isNowAvailable())
+ {
+ qs.setState(State.CREATED);
+ if ((npc.getId() == IRIS) && (qs.getPlayer().getLevel() < 45))
+ {
+ htmltext = "31776-01.htm";
+ }
+ else if ((npc.getId() == ROSAMMY) && (qs.getPlayer().getLevel() < 45))
+ {
+ htmltext = "31777-01.htm";
+ }
+ else
+ {
+ htmltext = "nolvl.htm";
+ }
+ }
+ else
+ {
+ htmltext = getAlreadyCompletedMsg(talker);
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(killer, false);
+ if (qs.getCond() == 1)
+ {
+ if (getQuestItemsCount(killer, OSKZLA.getId()) < 50)
+ {
+ giveItems(killer, OSKZLA);
+ }
+ if (getQuestItemsCount(killer, OSKZLA.getId()) >= 50)
+ {
+ qs.setCond(2);
+ }
+ }
+
+ return null;
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/end.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/end.htm
new file mode 100644
index 0000000000..f32c5fb48b
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/end.htm
@@ -0,0 +1,3 @@
+
+Thanks for the help, here's the reward !!!
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/nolvl.htm b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/nolvl.htm
new file mode 100644
index 0000000000..2206ccad41
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/Q00935_ExploringTheEastWingOfTheDungeonOfAbyss/nolvl.htm
@@ -0,0 +1,4 @@
+
+Magrit:
+(This quest is only available to level 45-49 characters.)
+
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/QuestMasterHandler.java
index 0a1d6d3cbc..07559ce1f4 100644
--- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -51,6 +51,7 @@ import quests.Q00165_ShilensHunt.Q00165_ShilensHunt;
import quests.Q00166_MassOfDarkness.Q00166_MassOfDarkness;
import quests.Q00167_DwarvenKinship.Q00167_DwarvenKinship;
import quests.Q00168_DeliverSupplies.Q00168_DeliverSupplies;
+import quests.Q00169_OffspringOfNightmares.Q00169_OffspringOfNightmares;
import quests.Q00170_DangerousSeduction.Q00170_DangerousSeduction;
import quests.Q00211_TrialOfTheChallenger.Q00211_TrialOfTheChallenger;
import quests.Q00212_TrialOfDuty.Q00212_TrialOfDuty;
@@ -146,6 +147,8 @@ import quests.Q00416_PathOfTheOrcShaman.Q00416_PathOfTheOrcShaman;
import quests.Q00417_PathOfTheScavenger.Q00417_PathOfTheScavenger;
import quests.Q00418_PathOfTheArtisan.Q00418_PathOfTheArtisan;
import quests.Q00662_AGameOfCards.Q00662_AGameOfCards;
+import quests.Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.Q00933_ExploringTheWestWingOfTheDungeonOfAbyss;
+import quests.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss;
import quests.Q11000_MoonKnight.Q11000_MoonKnight;
/**
@@ -220,6 +223,7 @@ public class QuestMasterHandler
Q00166_MassOfDarkness.class,
Q00167_DwarvenKinship.class,
Q00168_DeliverSupplies.class,
+ Q00169_OffspringOfNightmares.class,
Q00170_DangerousSeduction.class,
Q00211_TrialOfTheChallenger.class,
Q00212_TrialOfDuty.class,
@@ -289,7 +293,7 @@ public class QuestMasterHandler
Q00374_WhisperOfDreamsPart1.class,
Q00375_WhisperOfDreamsPart2.class,
Q00344_1000YearsTheEndOfLamentation.class,
- // TODO: Q00348_AnArrogantSearch.class,
+ // Q00348_AnArrogantSearch.class,
Q00354_ConquestOfAlligatorIsland.class,
Q00355_FamilyHonor.class,
Q00356_DigUpTheSeaOfSpores.class,
@@ -317,6 +321,8 @@ public class QuestMasterHandler
Q00418_PathOfTheArtisan.class,
Q00662_AGameOfCards.class,
Q11000_MoonKnight.class,
+ Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.class,
+ Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.class,
};
public static void main(String[] args)
diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/spawns/Others/16_12.xml b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/spawns/Others/16_12.xml
new file mode 100644
index 0000000000..371ca3f221
--- /dev/null
+++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/spawns/Others/16_12.xml
@@ -0,0 +1,204 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+