diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/MissingQuests.txt
index 6edf28c5d7..a9ea6273e9 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/MissingQuests.txt
@@ -46,10 +46,4 @@
10747 The Hero's Journey: Pagan Temple
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
-10802 The Dimensional Warp, Part 2
-10803 The Dimensional Warp, Part 3
-10804 The Dimensional Warp, Part 4
-10805 The Dimensional Warp, Part 5
-10806 The Dimensional Warp, Part 6
-10807 The Dimensional Warp, Part 7
10809 The Hero's Journey: Blazing Swamp
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
index f16e4a0045..80f70302f1 100644
--- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
@@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
private static final int RESED = 33974;
// Monsters
private static final int DIMENSIONAL_BUGBEAR = 23465;
- // other
+ // Others
private static final int MIN_LEVEL = 99;
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
private static final int WARP_CRYSTAL = 39597;
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
@@ -0,0 +1,4 @@
+
Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
new file mode 100644
index 0000000000..dbbc35f962
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
new file mode 100644
index 0000000000..aafbc2ba6f
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Dimensional Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
new file mode 100644
index 0000000000..36a49fe97d
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
new file mode 100644
index 0000000000..d9ba89a5e4
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Dimensional Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
new file mode 100644
index 0000000000..4600cd995c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Dimensional Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
new file mode 100644
index 0000000000..2076a91123
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
new file mode 100644
index 0000000000..a6b57f397c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10802_TheDimensionalWarpPart2;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+
+/**
+ * The Dimensional Warp, Part 2 (10802)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
+ * @author Mobius
+ */
+public class Q10802_TheDimensionalWarpPart2 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int DIMENSIONAL_BINDER = 23467;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10802_TheDimensionalWarpPart2()
+ {
+ super(10802);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(DIMENSIONAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 49380951086L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
new file mode 100644
index 0000000000..382f41fc38
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
new file mode 100644
index 0000000000..0a9f1a8ca8
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Etins come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
new file mode 100644
index 0000000000..d32288d8be
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
new file mode 100644
index 0000000000..1859f388b6
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Etins and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
new file mode 100644
index 0000000000..2ab774064c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Etins.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
new file mode 100644
index 0000000000..30d4ab1648
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
new file mode 100644
index 0000000000..787b66b5ce
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10803_TheDimensionalWarpPart3;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+
+/**
+ * The Dimensional Warp, Part 3 (10803)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
+ * @author Mobius
+ */
+public class Q10803_TheDimensionalWarpPart3 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORDLY_ETIN = 23471;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10803_TheDimensionalWarpPart3()
+ {
+ super(10803);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORDLY_ETIN);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 54383249571L, 0);
+ giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
new file mode 100644
index 0000000000..0c799f407c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
new file mode 100644
index 0000000000..b9a34b4c39
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
new file mode 100644
index 0000000000..54cc3098d0
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
new file mode 100644
index 0000000000..e779ceb0ab
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
new file mode 100644
index 0000000000..2ab4351dd7
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
new file mode 100644
index 0000000000..58721db127
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
new file mode 100644
index 0000000000..4cd643fb80
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10804_TheDimensionalWarpPart4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+
+/**
+ * The Dimensional Warp, Part 4 (10804)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
+ * @author Mobius
+ */
+public class Q10804_TheDimensionalWarpPart4 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORLDLY_GOLEM = 23474;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10804_TheDimensionalWarpPart4()
+ {
+ super(10804);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORLDLY_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 60425832857L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
new file mode 100644
index 0000000000..94efd045d6
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
new file mode 100644
index 0000000000..1a4c02567e
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
new file mode 100644
index 0000000000..bde468aefa
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
new file mode 100644
index 0000000000..27ef4dd594
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
new file mode 100644
index 0000000000..0e68d1a707
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
new file mode 100644
index 0000000000..79676ce4e8
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
new file mode 100644
index 0000000000..4fe0016a21
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10805_TheDimensionalWarpPart5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+
+/**
+ * The Dimensional Warp, Part 5 (10805)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
+ * @author Mobius
+ */
+public class Q10805_TheDimensionalWarpPart5 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_GOLEM = 23483;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10805_TheDimensionalWarpPart5()
+ {
+ super(10805);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 66530730240L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
new file mode 100644
index 0000000000..d51b478618
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
new file mode 100644
index 0000000000..8ecea0f173
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Berserkers come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
new file mode 100644
index 0000000000..a052b31368
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
new file mode 100644
index 0000000000..fbc9031a8f
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Berserkers and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
new file mode 100644
index 0000000000..998d299659
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Berserkers.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
new file mode 100644
index 0000000000..295f620d0c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
new file mode 100644
index 0000000000..9b65bc5a6c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10806_TheDimensionalWarpPart6;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+
+/**
+ * The Dimensional Warp, Part 6 (10806)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
+ * @author Mobius
+ */
+public class Q10806_TheDimensionalWarpPart6 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BERSERKER = 23478;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10806_TheDimensionalWarpPart6()
+ {
+ super(10806);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BERSERKER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 73923033600L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
new file mode 100644
index 0000000000..c75e1b123e
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
new file mode 100644
index 0000000000..afdc867e38
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
new file mode 100644
index 0000000000..75a1e86195
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
new file mode 100644
index 0000000000..efe5447742
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
new file mode 100644
index 0000000000..247b7ae92c
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
new file mode 100644
index 0000000000..731fb678a7
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
new file mode 100644
index 0000000000..3bfffa9350
--- /dev/null
+++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10807_TheDimensionalWarpPart7;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+
+/**
+ * The Dimensional Warp, Part 7 (10807)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
+ * @author Mobius
+ */
+public class Q10807_TheDimensionalWarpPart7 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BINDER = 23481;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10807_TheDimensionalWarpPart7()
+ {
+ super(10807);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 90422325000L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/MissingQuests.txt
index 45fa93b6b6..f5baaa8b59 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/MissingQuests.txt
@@ -53,12 +53,6 @@
10747 The Hero's Journey: Pagan Temple
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
-10802 The Dimensional Warp, Part 2
-10803 The Dimensional Warp, Part 3
-10804 The Dimensional Warp, Part 4
-10805 The Dimensional Warp, Part 5
-10806 The Dimensional Warp, Part 6
-10807 The Dimensional Warp, Part 7
10809 The Hero's Journey: Blazing Swamp
10844 Bloody Battle - Seizing Supplies
10845 Bloody Battle - Rescue the Smiths
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
index f16e4a0045..80f70302f1 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
@@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
private static final int RESED = 33974;
// Monsters
private static final int DIMENSIONAL_BUGBEAR = 23465;
- // other
+ // Others
private static final int MIN_LEVEL = 99;
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
private static final int WARP_CRYSTAL = 39597;
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
new file mode 100644
index 0000000000..dbbc35f962
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
new file mode 100644
index 0000000000..aafbc2ba6f
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Dimensional Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
new file mode 100644
index 0000000000..36a49fe97d
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
new file mode 100644
index 0000000000..d9ba89a5e4
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Dimensional Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
new file mode 100644
index 0000000000..4600cd995c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Dimensional Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
new file mode 100644
index 0000000000..2076a91123
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
new file mode 100644
index 0000000000..a6b57f397c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10802_TheDimensionalWarpPart2;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+
+/**
+ * The Dimensional Warp, Part 2 (10802)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
+ * @author Mobius
+ */
+public class Q10802_TheDimensionalWarpPart2 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int DIMENSIONAL_BINDER = 23467;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10802_TheDimensionalWarpPart2()
+ {
+ super(10802);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(DIMENSIONAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 49380951086L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
new file mode 100644
index 0000000000..382f41fc38
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
new file mode 100644
index 0000000000..0a9f1a8ca8
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Etins come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
new file mode 100644
index 0000000000..d32288d8be
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
new file mode 100644
index 0000000000..1859f388b6
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Etins and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
new file mode 100644
index 0000000000..2ab774064c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Etins.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
new file mode 100644
index 0000000000..30d4ab1648
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
new file mode 100644
index 0000000000..787b66b5ce
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10803_TheDimensionalWarpPart3;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+
+/**
+ * The Dimensional Warp, Part 3 (10803)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
+ * @author Mobius
+ */
+public class Q10803_TheDimensionalWarpPart3 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORDLY_ETIN = 23471;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10803_TheDimensionalWarpPart3()
+ {
+ super(10803);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORDLY_ETIN);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 54383249571L, 0);
+ giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
new file mode 100644
index 0000000000..0c799f407c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
new file mode 100644
index 0000000000..b9a34b4c39
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
new file mode 100644
index 0000000000..54cc3098d0
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
new file mode 100644
index 0000000000..e779ceb0ab
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
new file mode 100644
index 0000000000..2ab4351dd7
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
new file mode 100644
index 0000000000..58721db127
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
new file mode 100644
index 0000000000..4cd643fb80
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10804_TheDimensionalWarpPart4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+
+/**
+ * The Dimensional Warp, Part 4 (10804)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
+ * @author Mobius
+ */
+public class Q10804_TheDimensionalWarpPart4 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORLDLY_GOLEM = 23474;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10804_TheDimensionalWarpPart4()
+ {
+ super(10804);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORLDLY_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 60425832857L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
new file mode 100644
index 0000000000..94efd045d6
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
new file mode 100644
index 0000000000..1a4c02567e
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
new file mode 100644
index 0000000000..bde468aefa
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
new file mode 100644
index 0000000000..27ef4dd594
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
new file mode 100644
index 0000000000..0e68d1a707
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
new file mode 100644
index 0000000000..79676ce4e8
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
new file mode 100644
index 0000000000..4fe0016a21
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10805_TheDimensionalWarpPart5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+
+/**
+ * The Dimensional Warp, Part 5 (10805)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
+ * @author Mobius
+ */
+public class Q10805_TheDimensionalWarpPart5 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_GOLEM = 23483;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10805_TheDimensionalWarpPart5()
+ {
+ super(10805);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 66530730240L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
new file mode 100644
index 0000000000..d51b478618
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
new file mode 100644
index 0000000000..8ecea0f173
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Berserkers come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
new file mode 100644
index 0000000000..a052b31368
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
new file mode 100644
index 0000000000..fbc9031a8f
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Berserkers and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
new file mode 100644
index 0000000000..998d299659
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Berserkers.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
new file mode 100644
index 0000000000..295f620d0c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
new file mode 100644
index 0000000000..9b65bc5a6c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10806_TheDimensionalWarpPart6;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+
+/**
+ * The Dimensional Warp, Part 6 (10806)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
+ * @author Mobius
+ */
+public class Q10806_TheDimensionalWarpPart6 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BERSERKER = 23478;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10806_TheDimensionalWarpPart6()
+ {
+ super(10806);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BERSERKER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 73923033600L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
new file mode 100644
index 0000000000..c75e1b123e
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
new file mode 100644
index 0000000000..afdc867e38
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
new file mode 100644
index 0000000000..75a1e86195
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
new file mode 100644
index 0000000000..efe5447742
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
new file mode 100644
index 0000000000..247b7ae92c
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
new file mode 100644
index 0000000000..731fb678a7
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
new file mode 100644
index 0000000000..3bfffa9350
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10807_TheDimensionalWarpPart7;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+
+/**
+ * The Dimensional Warp, Part 7 (10807)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
+ * @author Mobius
+ */
+public class Q10807_TheDimensionalWarpPart7 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BINDER = 23481;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10807_TheDimensionalWarpPart7()
+ {
+ super(10807);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 90422325000L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java
index 1d83a564dc..904e36a67f 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -456,6 +456,12 @@ import quests.Q10798_LettersFromTheQueenDragonValley.Q10798_LettersFromTheQueenD
import quests.Q10799_StrangeThingsAfootInTheValley.Q10799_StrangeThingsAfootInTheValley;
import quests.Q10800_ReconnaissanceAtDragonValley.Q10800_ReconnaissanceAtDragonValley;
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+import quests.Q10807_TheDimensionalWarpPart7.Q10807_TheDimensionalWarpPart7;
import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimit;
import quests.Q10812_FacingSadness.Q10812_FacingSadness;
import quests.Q10813_ForGlory.Q10813_ForGlory;
@@ -930,6 +936,12 @@ public class QuestMasterHandler
Q10799_StrangeThingsAfootInTheValley.class,
Q10800_ReconnaissanceAtDragonValley.class,
Q10801_TheDimensionalWarpPart1.class,
+ Q10802_TheDimensionalWarpPart2.class,
+ Q10803_TheDimensionalWarpPart3.class,
+ Q10804_TheDimensionalWarpPart4.class,
+ Q10805_TheDimensionalWarpPart5.class,
+ Q10806_TheDimensionalWarpPart6.class,
+ Q10807_TheDimensionalWarpPart7.class,
Q10811_ExaltedOneWhoFacesTheLimit.class,
Q10812_FacingSadness.class,
Q10813_ForGlory.class,
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt
index b2fad5f1bb..78618679a6 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/MissingQuests.txt
@@ -83,12 +83,6 @@
10731 The Minstrel's Song, Part 6
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
-10802 The Dimensional Warp, Part 2
-10803 The Dimensional Warp, Part 3
-10804 The Dimensional Warp, Part 4
-10805 The Dimensional Warp, Part 5
-10806 The Dimensional Warp, Part 6
-10807 The Dimensional Warp, Part 7
10844 Bloody Battle - Seizing Supplies
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
index f16e4a0045..80f70302f1 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
@@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
private static final int RESED = 33974;
// Monsters
private static final int DIMENSIONAL_BUGBEAR = 23465;
- // other
+ // Others
private static final int MIN_LEVEL = 99;
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
private static final int WARP_CRYSTAL = 39597;
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
new file mode 100644
index 0000000000..dbbc35f962
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
new file mode 100644
index 0000000000..aafbc2ba6f
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Dimensional Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
new file mode 100644
index 0000000000..36a49fe97d
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
new file mode 100644
index 0000000000..d9ba89a5e4
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Dimensional Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
new file mode 100644
index 0000000000..4600cd995c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Dimensional Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
new file mode 100644
index 0000000000..2076a91123
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
new file mode 100644
index 0000000000..a6b57f397c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10802_TheDimensionalWarpPart2;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+
+/**
+ * The Dimensional Warp, Part 2 (10802)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
+ * @author Mobius
+ */
+public class Q10802_TheDimensionalWarpPart2 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int DIMENSIONAL_BINDER = 23467;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10802_TheDimensionalWarpPart2()
+ {
+ super(10802);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(DIMENSIONAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 49380951086L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
new file mode 100644
index 0000000000..382f41fc38
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
new file mode 100644
index 0000000000..0a9f1a8ca8
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Etins come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
new file mode 100644
index 0000000000..d32288d8be
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
new file mode 100644
index 0000000000..1859f388b6
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Etins and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
new file mode 100644
index 0000000000..2ab774064c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Etins.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
new file mode 100644
index 0000000000..30d4ab1648
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
new file mode 100644
index 0000000000..787b66b5ce
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10803_TheDimensionalWarpPart3;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+
+/**
+ * The Dimensional Warp, Part 3 (10803)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
+ * @author Mobius
+ */
+public class Q10803_TheDimensionalWarpPart3 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORDLY_ETIN = 23471;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10803_TheDimensionalWarpPart3()
+ {
+ super(10803);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORDLY_ETIN);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 54383249571L, 0);
+ giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
new file mode 100644
index 0000000000..0c799f407c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
new file mode 100644
index 0000000000..b9a34b4c39
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
new file mode 100644
index 0000000000..54cc3098d0
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
new file mode 100644
index 0000000000..e779ceb0ab
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
new file mode 100644
index 0000000000..2ab4351dd7
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
new file mode 100644
index 0000000000..58721db127
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
new file mode 100644
index 0000000000..4cd643fb80
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10804_TheDimensionalWarpPart4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+
+/**
+ * The Dimensional Warp, Part 4 (10804)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
+ * @author Mobius
+ */
+public class Q10804_TheDimensionalWarpPart4 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORLDLY_GOLEM = 23474;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10804_TheDimensionalWarpPart4()
+ {
+ super(10804);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORLDLY_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 60425832857L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
new file mode 100644
index 0000000000..94efd045d6
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
new file mode 100644
index 0000000000..1a4c02567e
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
new file mode 100644
index 0000000000..bde468aefa
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
new file mode 100644
index 0000000000..27ef4dd594
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
new file mode 100644
index 0000000000..0e68d1a707
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
new file mode 100644
index 0000000000..79676ce4e8
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
new file mode 100644
index 0000000000..4fe0016a21
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10805_TheDimensionalWarpPart5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+
+/**
+ * The Dimensional Warp, Part 5 (10805)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
+ * @author Mobius
+ */
+public class Q10805_TheDimensionalWarpPart5 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_GOLEM = 23483;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10805_TheDimensionalWarpPart5()
+ {
+ super(10805);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 66530730240L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
new file mode 100644
index 0000000000..d51b478618
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
new file mode 100644
index 0000000000..8ecea0f173
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Berserkers come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
new file mode 100644
index 0000000000..a052b31368
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
new file mode 100644
index 0000000000..fbc9031a8f
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Berserkers and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
new file mode 100644
index 0000000000..998d299659
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Berserkers.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
new file mode 100644
index 0000000000..295f620d0c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
new file mode 100644
index 0000000000..9b65bc5a6c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10806_TheDimensionalWarpPart6;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+
+/**
+ * The Dimensional Warp, Part 6 (10806)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
+ * @author Mobius
+ */
+public class Q10806_TheDimensionalWarpPart6 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BERSERKER = 23478;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10806_TheDimensionalWarpPart6()
+ {
+ super(10806);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BERSERKER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 73923033600L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
new file mode 100644
index 0000000000..c75e1b123e
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
new file mode 100644
index 0000000000..afdc867e38
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
new file mode 100644
index 0000000000..75a1e86195
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
new file mode 100644
index 0000000000..efe5447742
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
new file mode 100644
index 0000000000..247b7ae92c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
new file mode 100644
index 0000000000..731fb678a7
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
new file mode 100644
index 0000000000..3bfffa9350
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10807_TheDimensionalWarpPart7;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+
+/**
+ * The Dimensional Warp, Part 7 (10807)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
+ * @author Mobius
+ */
+public class Q10807_TheDimensionalWarpPart7 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BINDER = 23481;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10807_TheDimensionalWarpPart7()
+ {
+ super(10807);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 90422325000L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java
index d93c8c8080..0eeee88c0a 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -422,6 +422,12 @@ import quests.Q10798_LettersFromTheQueenDragonValley.Q10798_LettersFromTheQueenD
import quests.Q10799_StrangeThingsAfootInTheValley.Q10799_StrangeThingsAfootInTheValley;
import quests.Q10800_ReconnaissanceAtDragonValley.Q10800_ReconnaissanceAtDragonValley;
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+import quests.Q10807_TheDimensionalWarpPart7.Q10807_TheDimensionalWarpPart7;
import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimit;
import quests.Q10812_FacingSadness.Q10812_FacingSadness;
import quests.Q10813_ForGlory.Q10813_ForGlory;
@@ -862,6 +868,12 @@ public class QuestMasterHandler
Q10799_StrangeThingsAfootInTheValley.class,
Q10800_ReconnaissanceAtDragonValley.class,
Q10801_TheDimensionalWarpPart1.class,
+ Q10802_TheDimensionalWarpPart2.class,
+ Q10803_TheDimensionalWarpPart3.class,
+ Q10804_TheDimensionalWarpPart4.class,
+ Q10805_TheDimensionalWarpPart5.class,
+ Q10806_TheDimensionalWarpPart6.class,
+ Q10807_TheDimensionalWarpPart7.class,
Q10811_ExaltedOneWhoFacesTheLimit.class,
Q10812_FacingSadness.class,
Q10813_ForGlory.class,
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt
index 9a57d5a999..ceac7a5db5 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt
@@ -152,12 +152,6 @@
10731 The Minstrel's Song, Part 6
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
-10802 The Dimensional Warp, Part 2
-10803 The Dimensional Warp, Part 3
-10804 The Dimensional Warp, Part 4
-10805 The Dimensional Warp, Part 5
-10806 The Dimensional Warp, Part 6
-10807 The Dimensional Warp, Part 7
10844 Bloody Battle - Seizing Supplies
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
index f16e4a0045..80f70302f1 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
@@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
private static final int RESED = 33974;
// Monsters
private static final int DIMENSIONAL_BUGBEAR = 23465;
- // other
+ // Others
private static final int MIN_LEVEL = 99;
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
private static final int WARP_CRYSTAL = 39597;
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
new file mode 100644
index 0000000000..dbbc35f962
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
new file mode 100644
index 0000000000..aafbc2ba6f
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Dimensional Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
new file mode 100644
index 0000000000..36a49fe97d
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
new file mode 100644
index 0000000000..d9ba89a5e4
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Dimensional Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
new file mode 100644
index 0000000000..4600cd995c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Dimensional Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
new file mode 100644
index 0000000000..2076a91123
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
new file mode 100644
index 0000000000..a6b57f397c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10802_TheDimensionalWarpPart2;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+
+/**
+ * The Dimensional Warp, Part 2 (10802)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
+ * @author Mobius
+ */
+public class Q10802_TheDimensionalWarpPart2 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int DIMENSIONAL_BINDER = 23467;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10802_TheDimensionalWarpPart2()
+ {
+ super(10802);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(DIMENSIONAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 49380951086L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
new file mode 100644
index 0000000000..382f41fc38
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
new file mode 100644
index 0000000000..0a9f1a8ca8
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Etins come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
new file mode 100644
index 0000000000..d32288d8be
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
new file mode 100644
index 0000000000..1859f388b6
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Etins and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
new file mode 100644
index 0000000000..2ab774064c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Etins.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
new file mode 100644
index 0000000000..30d4ab1648
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
new file mode 100644
index 0000000000..787b66b5ce
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10803_TheDimensionalWarpPart3;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+
+/**
+ * The Dimensional Warp, Part 3 (10803)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
+ * @author Mobius
+ */
+public class Q10803_TheDimensionalWarpPart3 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORDLY_ETIN = 23471;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10803_TheDimensionalWarpPart3()
+ {
+ super(10803);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORDLY_ETIN);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 54383249571L, 0);
+ giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
new file mode 100644
index 0000000000..0c799f407c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
new file mode 100644
index 0000000000..b9a34b4c39
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
new file mode 100644
index 0000000000..54cc3098d0
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
new file mode 100644
index 0000000000..e779ceb0ab
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
new file mode 100644
index 0000000000..2ab4351dd7
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
new file mode 100644
index 0000000000..58721db127
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
new file mode 100644
index 0000000000..4cd643fb80
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10804_TheDimensionalWarpPart4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+
+/**
+ * The Dimensional Warp, Part 4 (10804)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
+ * @author Mobius
+ */
+public class Q10804_TheDimensionalWarpPart4 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORLDLY_GOLEM = 23474;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10804_TheDimensionalWarpPart4()
+ {
+ super(10804);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORLDLY_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 60425832857L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
new file mode 100644
index 0000000000..94efd045d6
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
new file mode 100644
index 0000000000..1a4c02567e
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
new file mode 100644
index 0000000000..bde468aefa
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
new file mode 100644
index 0000000000..27ef4dd594
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
new file mode 100644
index 0000000000..0e68d1a707
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
new file mode 100644
index 0000000000..79676ce4e8
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
new file mode 100644
index 0000000000..4fe0016a21
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10805_TheDimensionalWarpPart5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+
+/**
+ * The Dimensional Warp, Part 5 (10805)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
+ * @author Mobius
+ */
+public class Q10805_TheDimensionalWarpPart5 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_GOLEM = 23483;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10805_TheDimensionalWarpPart5()
+ {
+ super(10805);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 66530730240L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
new file mode 100644
index 0000000000..d51b478618
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
new file mode 100644
index 0000000000..8ecea0f173
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Berserkers come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
new file mode 100644
index 0000000000..a052b31368
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
new file mode 100644
index 0000000000..fbc9031a8f
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Berserkers and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
new file mode 100644
index 0000000000..998d299659
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Berserkers.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
new file mode 100644
index 0000000000..295f620d0c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
new file mode 100644
index 0000000000..9b65bc5a6c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10806_TheDimensionalWarpPart6;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+
+/**
+ * The Dimensional Warp, Part 6 (10806)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
+ * @author Mobius
+ */
+public class Q10806_TheDimensionalWarpPart6 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BERSERKER = 23478;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10806_TheDimensionalWarpPart6()
+ {
+ super(10806);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BERSERKER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 73923033600L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
new file mode 100644
index 0000000000..c75e1b123e
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
new file mode 100644
index 0000000000..afdc867e38
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
new file mode 100644
index 0000000000..75a1e86195
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
new file mode 100644
index 0000000000..efe5447742
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
new file mode 100644
index 0000000000..247b7ae92c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
new file mode 100644
index 0000000000..731fb678a7
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
new file mode 100644
index 0000000000..3bfffa9350
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10807_TheDimensionalWarpPart7;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+
+/**
+ * The Dimensional Warp, Part 7 (10807)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
+ * @author Mobius
+ */
+public class Q10807_TheDimensionalWarpPart7 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BINDER = 23481;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10807_TheDimensionalWarpPart7()
+ {
+ super(10807);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 90422325000L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java
index a47966894c..7f1ffaaaca 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -420,6 +420,12 @@ import quests.Q10798_LettersFromTheQueenDragonValley.Q10798_LettersFromTheQueenD
import quests.Q10799_StrangeThingsAfootInTheValley.Q10799_StrangeThingsAfootInTheValley;
import quests.Q10800_ReconnaissanceAtDragonValley.Q10800_ReconnaissanceAtDragonValley;
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+import quests.Q10807_TheDimensionalWarpPart7.Q10807_TheDimensionalWarpPart7;
import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimit;
import quests.Q10812_FacingSadness.Q10812_FacingSadness;
import quests.Q10813_ForGlory.Q10813_ForGlory;
@@ -858,6 +864,12 @@ public class QuestMasterHandler
Q10799_StrangeThingsAfootInTheValley.class,
Q10800_ReconnaissanceAtDragonValley.class,
Q10801_TheDimensionalWarpPart1.class,
+ Q10802_TheDimensionalWarpPart2.class,
+ Q10803_TheDimensionalWarpPart3.class,
+ Q10804_TheDimensionalWarpPart4.class,
+ Q10805_TheDimensionalWarpPart5.class,
+ Q10806_TheDimensionalWarpPart6.class,
+ Q10807_TheDimensionalWarpPart7.class,
Q10811_ExaltedOneWhoFacesTheLimit.class,
Q10812_FacingSadness.class,
Q10813_ForGlory.class,
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt
index f7cf89d1ec..fcbe4f84ad 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt
@@ -216,12 +216,6 @@
10731 The Minstrel's Song, Part 6
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
-10802 The Dimensional Warp, Part 2
-10803 The Dimensional Warp, Part 3
-10804 The Dimensional Warp, Part 4
-10805 The Dimensional Warp, Part 5
-10806 The Dimensional Warp, Part 6
-10807 The Dimensional Warp, Part 7
10844 Bloody Battle - Seizing Supplies
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
index f16e4a0045..80f70302f1 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
@@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
private static final int RESED = 33974;
// Monsters
private static final int DIMENSIONAL_BUGBEAR = 23465;
- // other
+ // Others
private static final int MIN_LEVEL = 99;
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
private static final int WARP_CRYSTAL = 39597;
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
new file mode 100644
index 0000000000..dbbc35f962
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
new file mode 100644
index 0000000000..aafbc2ba6f
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Dimensional Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
new file mode 100644
index 0000000000..36a49fe97d
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
new file mode 100644
index 0000000000..d9ba89a5e4
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Dimensional Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
new file mode 100644
index 0000000000..4600cd995c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Dimensional Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
new file mode 100644
index 0000000000..2076a91123
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
new file mode 100644
index 0000000000..a6b57f397c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10802_TheDimensionalWarpPart2;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+
+/**
+ * The Dimensional Warp, Part 2 (10802)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
+ * @author Mobius
+ */
+public class Q10802_TheDimensionalWarpPart2 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int DIMENSIONAL_BINDER = 23467;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10802_TheDimensionalWarpPart2()
+ {
+ super(10802);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(DIMENSIONAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 49380951086L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
new file mode 100644
index 0000000000..382f41fc38
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
new file mode 100644
index 0000000000..0a9f1a8ca8
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Etins come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
new file mode 100644
index 0000000000..d32288d8be
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
new file mode 100644
index 0000000000..1859f388b6
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Etins and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
new file mode 100644
index 0000000000..2ab774064c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Etins.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
new file mode 100644
index 0000000000..30d4ab1648
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
new file mode 100644
index 0000000000..787b66b5ce
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10803_TheDimensionalWarpPart3;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+
+/**
+ * The Dimensional Warp, Part 3 (10803)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
+ * @author Mobius
+ */
+public class Q10803_TheDimensionalWarpPart3 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORDLY_ETIN = 23471;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10803_TheDimensionalWarpPart3()
+ {
+ super(10803);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORDLY_ETIN);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 54383249571L, 0);
+ giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
new file mode 100644
index 0000000000..0c799f407c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
new file mode 100644
index 0000000000..b9a34b4c39
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
new file mode 100644
index 0000000000..54cc3098d0
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
new file mode 100644
index 0000000000..e779ceb0ab
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
new file mode 100644
index 0000000000..2ab4351dd7
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
new file mode 100644
index 0000000000..58721db127
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
new file mode 100644
index 0000000000..4cd643fb80
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10804_TheDimensionalWarpPart4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+
+/**
+ * The Dimensional Warp, Part 4 (10804)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
+ * @author Mobius
+ */
+public class Q10804_TheDimensionalWarpPart4 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORLDLY_GOLEM = 23474;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10804_TheDimensionalWarpPart4()
+ {
+ super(10804);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORLDLY_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 60425832857L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
new file mode 100644
index 0000000000..94efd045d6
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
new file mode 100644
index 0000000000..1a4c02567e
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
new file mode 100644
index 0000000000..bde468aefa
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
new file mode 100644
index 0000000000..27ef4dd594
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
new file mode 100644
index 0000000000..0e68d1a707
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
new file mode 100644
index 0000000000..79676ce4e8
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
new file mode 100644
index 0000000000..4fe0016a21
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10805_TheDimensionalWarpPart5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+
+/**
+ * The Dimensional Warp, Part 5 (10805)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
+ * @author Mobius
+ */
+public class Q10805_TheDimensionalWarpPart5 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_GOLEM = 23483;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10805_TheDimensionalWarpPart5()
+ {
+ super(10805);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 66530730240L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
new file mode 100644
index 0000000000..d51b478618
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
new file mode 100644
index 0000000000..8ecea0f173
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Berserkers come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
new file mode 100644
index 0000000000..a052b31368
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
new file mode 100644
index 0000000000..fbc9031a8f
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Berserkers and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
new file mode 100644
index 0000000000..998d299659
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Berserkers.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
new file mode 100644
index 0000000000..295f620d0c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
new file mode 100644
index 0000000000..9b65bc5a6c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10806_TheDimensionalWarpPart6;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+
+/**
+ * The Dimensional Warp, Part 6 (10806)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
+ * @author Mobius
+ */
+public class Q10806_TheDimensionalWarpPart6 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BERSERKER = 23478;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10806_TheDimensionalWarpPart6()
+ {
+ super(10806);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BERSERKER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 73923033600L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
new file mode 100644
index 0000000000..c75e1b123e
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
new file mode 100644
index 0000000000..afdc867e38
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
new file mode 100644
index 0000000000..75a1e86195
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
new file mode 100644
index 0000000000..efe5447742
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
new file mode 100644
index 0000000000..247b7ae92c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
new file mode 100644
index 0000000000..731fb678a7
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
new file mode 100644
index 0000000000..3bfffa9350
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10807_TheDimensionalWarpPart7;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+
+/**
+ * The Dimensional Warp, Part 7 (10807)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
+ * @author Mobius
+ */
+public class Q10807_TheDimensionalWarpPart7 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BINDER = 23481;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10807_TheDimensionalWarpPart7()
+ {
+ super(10807);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 90422325000L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java
index eddbaac5cc..c960044f65 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -408,6 +408,12 @@ import quests.Q10798_LettersFromTheQueenDragonValley.Q10798_LettersFromTheQueenD
import quests.Q10799_StrangeThingsAfootInTheValley.Q10799_StrangeThingsAfootInTheValley;
import quests.Q10800_ReconnaissanceAtDragonValley.Q10800_ReconnaissanceAtDragonValley;
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+import quests.Q10807_TheDimensionalWarpPart7.Q10807_TheDimensionalWarpPart7;
import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimit;
import quests.Q10812_FacingSadness.Q10812_FacingSadness;
import quests.Q10813_ForGlory.Q10813_ForGlory;
@@ -834,6 +840,12 @@ public class QuestMasterHandler
Q10799_StrangeThingsAfootInTheValley.class,
Q10800_ReconnaissanceAtDragonValley.class,
Q10801_TheDimensionalWarpPart1.class,
+ Q10802_TheDimensionalWarpPart2.class,
+ Q10803_TheDimensionalWarpPart3.class,
+ Q10804_TheDimensionalWarpPart4.class,
+ Q10805_TheDimensionalWarpPart5.class,
+ Q10806_TheDimensionalWarpPart6.class,
+ Q10807_TheDimensionalWarpPart7.class,
Q10811_ExaltedOneWhoFacesTheLimit.class,
Q10812_FacingSadness.class,
Q10813_ForGlory.class,
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt
index aac7ee5702..c0cbed30ef 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt
@@ -231,12 +231,6 @@
10731 The Minstrel's Song, Part 6
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
-10802 The Dimensional Warp, Part 2
-10803 The Dimensional Warp, Part 3
-10804 The Dimensional Warp, Part 4
-10805 The Dimensional Warp, Part 5
-10806 The Dimensional Warp, Part 6
-10807 The Dimensional Warp, Part 7
10844 Bloody Battle - Seizing Supplies
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
index f16e4a0045..80f70302f1 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10801_TheDimensionalWarpPart1/Q10801_TheDimensionalWarpPart1.java
@@ -41,7 +41,7 @@ public class Q10801_TheDimensionalWarpPart1 extends Quest
private static final int RESED = 33974;
// Monsters
private static final int DIMENSIONAL_BUGBEAR = 23465;
- // other
+ // Others
private static final int MIN_LEVEL = 99;
private static final int DIMENSIONAL_BRACELET_STAGE_1 = 39747;
private static final int WARP_CRYSTAL = 39597;
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
new file mode 100644
index 0000000000..dbbc35f962
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
new file mode 100644
index 0000000000..aafbc2ba6f
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Dimensional Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
new file mode 100644
index 0000000000..36a49fe97d
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
new file mode 100644
index 0000000000..d9ba89a5e4
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Dimensional Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
new file mode 100644
index 0000000000..4600cd995c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Dimensional Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
new file mode 100644
index 0000000000..2076a91123
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
new file mode 100644
index 0000000000..a6b57f397c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10802_TheDimensionalWarpPart2/Q10802_TheDimensionalWarpPart2.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10802_TheDimensionalWarpPart2;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+
+/**
+ * The Dimensional Warp, Part 2 (10802)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_2
+ * @author Mobius
+ */
+public class Q10802_TheDimensionalWarpPart2 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int DIMENSIONAL_BINDER = 23467;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10802_TheDimensionalWarpPart2()
+ {
+ super(10802);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(DIMENSIONAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10801_TheDimensionalWarpPart1.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 49380951086L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + DIMENSIONAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + DIMENSIONAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(DIMENSIONAL_BINDER, false, qs.getInt("killed_" + DIMENSIONAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
new file mode 100644
index 0000000000..382f41fc38
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
new file mode 100644
index 0000000000..0a9f1a8ca8
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Etins come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
new file mode 100644
index 0000000000..d32288d8be
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
new file mode 100644
index 0000000000..1859f388b6
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Etins and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
new file mode 100644
index 0000000000..2ab774064c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Etins.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
new file mode 100644
index 0000000000..30d4ab1648
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
new file mode 100644
index 0000000000..787b66b5ce
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10803_TheDimensionalWarpPart3/Q10803_TheDimensionalWarpPart3.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10803_TheDimensionalWarpPart3;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+
+/**
+ * The Dimensional Warp, Part 3 (10803)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_3
+ * @author Mobius
+ */
+public class Q10803_TheDimensionalWarpPart3 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORDLY_ETIN = 23471;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int BLOODY_ETERNAL_ENHANCEMENT_STONE = 3556;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10803_TheDimensionalWarpPart3()
+ {
+ super(10803);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORDLY_ETIN);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10802_TheDimensionalWarpPart2.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 54383249571L, 0);
+ giveItems(player, BLOODY_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORDLY_ETIN);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORDLY_ETIN, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORDLY_ETIN, false, qs.getInt("killed_" + UNWORDLY_ETIN)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
new file mode 100644
index 0000000000..0c799f407c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
new file mode 100644
index 0000000000..b9a34b4c39
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Unworldly Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
new file mode 100644
index 0000000000..54cc3098d0
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
new file mode 100644
index 0000000000..e779ceb0ab
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Unworldly Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
new file mode 100644
index 0000000000..2ab4351dd7
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Unworldly Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
new file mode 100644
index 0000000000..58721db127
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
new file mode 100644
index 0000000000..4cd643fb80
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10804_TheDimensionalWarpPart4/Q10804_TheDimensionalWarpPart4.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10804_TheDimensionalWarpPart4;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+
+/**
+ * The Dimensional Warp, Part 4 (10804)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_4
+ * @author Mobius
+ */
+public class Q10804_TheDimensionalWarpPart4 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int UNWORLDLY_GOLEM = 23474;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10804_TheDimensionalWarpPart4()
+ {
+ super(10804);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(UNWORLDLY_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10803_TheDimensionalWarpPart3.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 60425832857L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + UNWORLDLY_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + UNWORLDLY_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(UNWORLDLY_GOLEM, false, qs.getInt("killed_" + UNWORLDLY_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
new file mode 100644
index 0000000000..94efd045d6
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
new file mode 100644
index 0000000000..1a4c02567e
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Golems come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
new file mode 100644
index 0000000000..bde468aefa
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
new file mode 100644
index 0000000000..27ef4dd594
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Golems and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
new file mode 100644
index 0000000000..0e68d1a707
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Golems.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
new file mode 100644
index 0000000000..79676ce4e8
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
new file mode 100644
index 0000000000..4fe0016a21
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10805_TheDimensionalWarpPart5/Q10805_TheDimensionalWarpPart5.java
@@ -0,0 +1,181 @@
+/*
+ * 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.Q10805_TheDimensionalWarpPart5;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+
+/**
+ * The Dimensional Warp, Part 5 (10805)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_5
+ * @author Mobius
+ */
+public class Q10805_TheDimensionalWarpPart5 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_GOLEM = 23483;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int DARK_ETERNAL_ENHANCEMENT_STONE = 35567;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10805_TheDimensionalWarpPart5()
+ {
+ super(10805);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_GOLEM);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10804_TheDimensionalWarpPart4.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 66530730240L, 0);
+ giveItems(player, DARK_ETERNAL_ENHANCEMENT_STONE, 1);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_GOLEM);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_GOLEM, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_GOLEM, false, qs.getInt("killed_" + ABYSSAL_GOLEM)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
new file mode 100644
index 0000000000..d51b478618
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
new file mode 100644
index 0000000000..8ecea0f173
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Berserkers come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
new file mode 100644
index 0000000000..a052b31368
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
new file mode 100644
index 0000000000..fbc9031a8f
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Berserkers and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
new file mode 100644
index 0000000000..998d299659
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Berserkers.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
new file mode 100644
index 0000000000..295f620d0c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
new file mode 100644
index 0000000000..9b65bc5a6c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10806_TheDimensionalWarpPart6/Q10806_TheDimensionalWarpPart6.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10806_TheDimensionalWarpPart6;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+
+/**
+ * The Dimensional Warp, Part 6 (10806)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_6
+ * @author Mobius
+ */
+public class Q10806_TheDimensionalWarpPart6 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BERSERKER = 23478;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10806_TheDimensionalWarpPart6()
+ {
+ super(10806);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BERSERKER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10805_TheDimensionalWarpPart5.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 73923033600L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BERSERKER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BERSERKER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BERSERKER, false, qs.getInt("killed_" + ABYSSAL_BERSERKER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
new file mode 100644
index 0000000000..60df561273
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-00.htm
@@ -0,0 +1,4 @@
+Resed:
+Are you trying to enter the Dimensional Warp? It's not a place for people like you.
+(Only characters Lv. 99 or above may undertake this quest.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
new file mode 100644
index 0000000000..c75e1b123e
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-01.htm
@@ -0,0 +1,5 @@
+Resed:
+Have you been inside Dimensional Warp? My job is to send the explorers to the Dimensional Warp, but I don't have enough information here. I'm continuously collecting more, but it's still not enough.
+I know it won't be easy, but can you do me a favor?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
new file mode 100644
index 0000000000..afdc867e38
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-02.htm
@@ -0,0 +1,5 @@
+Resed:
+In the early stages of a Dimensional Warp, Abyssal Binders come out.
+But we still don't have enough information about them. I need more information about them because people run into them the most.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
new file mode 100644
index 0000000000..75a1e86195
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-03.htm
@@ -0,0 +1,5 @@
+Resed:
+Can we start with 100?
+They come out often, so it won't be too hard. Thank you!
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
new file mode 100644
index 0000000000..efe5447742
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-04.htm
@@ -0,0 +1,3 @@
+Resed:
+Kill 100 Abyssal Binders and come back to me.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
new file mode 100644
index 0000000000..247b7ae92c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-05.html
@@ -0,0 +1,4 @@
+Resed:
+We still don't have enough information. That's not enough.
+Go kill more Abyssal Binders.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
new file mode 100644
index 0000000000..731fb678a7
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-06.html
@@ -0,0 +1,5 @@
+Resed:
+Thank you. This will be enough.
+Can You give me the information now?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
new file mode 100644
index 0000000000..0bb0b71989
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/33974-07.html
@@ -0,0 +1,4 @@
+Resed:
+Good work. You're almost at the finish line.
+The reward is better than the last time. Take it.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
new file mode 100644
index 0000000000..3bfffa9350
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10807_TheDimensionalWarpPart7/Q10807_TheDimensionalWarpPart7.java
@@ -0,0 +1,179 @@
+/*
+ * 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.Q10807_TheDimensionalWarpPart7;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import com.l2jmobius.Config;
+import com.l2jmobius.gameserver.enums.QuestSound;
+import com.l2jmobius.gameserver.model.L2Party;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
+import com.l2jmobius.gameserver.model.quest.Quest;
+import com.l2jmobius.gameserver.model.quest.QuestState;
+import com.l2jmobius.gameserver.model.quest.State;
+
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+
+/**
+ * The Dimensional Warp, Part 7 (10807)
+ * @URL https://l2wiki.com/The_Dimensional_Warp,_Part_7
+ * @author Mobius
+ */
+public class Q10807_TheDimensionalWarpPart7 extends Quest
+{
+ // NPC
+ private static final int RESED = 33974;
+ // Monsters
+ private static final int ABYSSAL_BINDER = 23481;
+ // Others
+ private static final int MIN_LEVEL = 99;
+ private static final int WARP_CRYSTAL = 39597;
+
+ public Q10807_TheDimensionalWarpPart7()
+ {
+ super(10807);
+ addStartNpc(RESED);
+ addTalkId(RESED);
+ addKillId(ABYSSAL_BINDER);
+ addCondMinLevel(MIN_LEVEL, "33974-00.htm");
+ addCondCompletedQuest(Q10806_TheDimensionalWarpPart6.class.getSimpleName(), "");
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+
+ switch (event)
+ {
+ case "33974-02.htm":
+ case "33974-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "33974-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "33974-07.html":
+ {
+ if (qs.isCond(2))
+ {
+ if (player.getLevel() >= MIN_LEVEL)
+ {
+ addExpAndSp(player, 90422325000L, 0);
+ giveItems(player, WARP_CRYSTAL, 300);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
+ else
+ {
+ htmltext = getNoQuestLevelRewardMsg(player);
+ }
+ }
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(L2Npc npc, L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "33974-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "33974-05.html" : "33974-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
+ {
+ L2Party party = killer.getParty();
+ if (party != null)
+ {
+ party.getMembers().forEach(p -> onKill(npc, p));
+ }
+ else
+ {
+ onKill(npc, killer);
+ }
+ return super.onKill(npc, killer, isSummon);
+ }
+
+ private void onKill(L2Npc npc, L2PcInstance killer)
+ {
+ final QuestState qs = getQuestState(killer, false);
+
+ if ((qs != null) && qs.isCond(1) && (npc.calculateDistance3D(killer) <= Config.ALT_PARTY_RANGE))
+ {
+ int killedBugbear = qs.getInt("killed_" + ABYSSAL_BINDER);
+ if (killedBugbear < 100)
+ {
+ qs.set("killed_" + ABYSSAL_BINDER, ++killedBugbear);
+ playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
+ }
+ if (killedBugbear >= 100)
+ {
+ qs.setCond(2, true);
+ }
+ sendNpcLogList(killer);
+ }
+ }
+
+ @Override
+ public Set getNpcLogList(L2PcInstance player)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1))
+ {
+ final Set holder = new HashSet<>();
+ holder.add(new NpcLogListHolder(ABYSSAL_BINDER, false, qs.getInt("killed_" + ABYSSAL_BINDER)));
+ return holder;
+ }
+ return super.getNpcLogList(player);
+ }
+}
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java
index 019a83fcd3..17770873dc 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -357,6 +357,12 @@ import quests.Q10798_LettersFromTheQueenDragonValley.Q10798_LettersFromTheQueenD
import quests.Q10799_StrangeThingsAfootInTheValley.Q10799_StrangeThingsAfootInTheValley;
import quests.Q10800_ReconnaissanceAtDragonValley.Q10800_ReconnaissanceAtDragonValley;
import quests.Q10801_TheDimensionalWarpPart1.Q10801_TheDimensionalWarpPart1;
+import quests.Q10802_TheDimensionalWarpPart2.Q10802_TheDimensionalWarpPart2;
+import quests.Q10803_TheDimensionalWarpPart3.Q10803_TheDimensionalWarpPart3;
+import quests.Q10804_TheDimensionalWarpPart4.Q10804_TheDimensionalWarpPart4;
+import quests.Q10805_TheDimensionalWarpPart5.Q10805_TheDimensionalWarpPart5;
+import quests.Q10806_TheDimensionalWarpPart6.Q10806_TheDimensionalWarpPart6;
+import quests.Q10807_TheDimensionalWarpPart7.Q10807_TheDimensionalWarpPart7;
import quests.Q10811_ExaltedOneWhoFacesTheLimit.Q10811_ExaltedOneWhoFacesTheLimit;
import quests.Q10812_FacingSadness.Q10812_FacingSadness;
import quests.Q10813_ForGlory.Q10813_ForGlory;
@@ -732,6 +738,12 @@ public class QuestMasterHandler
Q10799_StrangeThingsAfootInTheValley.class,
Q10800_ReconnaissanceAtDragonValley.class,
Q10801_TheDimensionalWarpPart1.class,
+ Q10802_TheDimensionalWarpPart2.class,
+ Q10803_TheDimensionalWarpPart3.class,
+ Q10804_TheDimensionalWarpPart4.class,
+ Q10805_TheDimensionalWarpPart5.class,
+ Q10806_TheDimensionalWarpPart6.class,
+ Q10807_TheDimensionalWarpPart7.class,
Q10811_ExaltedOneWhoFacesTheLimit.class,
Q10812_FacingSadness.class,
Q10813_ForGlory.class,