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 3fb7761e4c..8c9f4b4ec7 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
@@ -53,7 +53,6 @@
10357 Altar of Blood that Awakens Destruction
10373 Exploring the Dimension - Sealing the Dimension
10396 Witch of Spores
-10418 The Immortal Pirate King
10457 Kefensis' Illusion
10506 Diana's Request
10712 The Minstrel's Song, Part 1
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
new file mode 100644
index 0000000000..1e4800d2c7
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
@@ -0,0 +1,4 @@
+
Captain Jeronin:
+I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.
+(Only characters with Lv. 83-90.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
new file mode 100644
index 0000000000..b62ef364e3
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Hello Hunter. Have you heard of the rumors that are circulating here?
+This strong and powerful creature appeared suddenly.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
new file mode 100644
index 0000000000..b038f460d2
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+He uses Nen. He has tremendous magical power
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
new file mode 100644
index 0000000000..3199a2d5ad
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Is his name Zaken. This is all true!
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
new file mode 100644
index 0000000000..28b3477a6e
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Did you kill Zaken?
+You ruined Zaken designs...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
new file mode 100644
index 0000000000..079b9bfa77
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+Well done. Good job.
+If something else is needed, we will contact you for help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
new file mode 100644
index 0000000000..b1a271a99c
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
@@ -0,0 +1,128 @@
+/*
+ * 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.Q10418_TheImmortalPirateKing;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * The Immortal Pirate King (10418)
+ * @URL https://l2wiki.com/The_Immortal_Pirate_King
+ * @author Dmitri
+ */
+public class Q10418_TheImmortalPirateKing extends Quest
+{
+ // NPC
+ private static final int JERONIN = 30121;
+ // Raidboss
+ private static final int ZAKEN = 29181;
+ // Misc
+ private static final int MIN_LEVEL = 83;
+ private static final int MAX_LEVEL = 90;
+
+ public Q10418_TheImmortalPirateKing()
+ {
+ super(10418);
+ addStartNpc(JERONIN);
+ addTalkId(JERONIN);
+ addKillId(ZAKEN);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30121-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+ switch (event)
+ {
+ case "30121-02.htm":
+ case "30121-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "30121-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30121-07.html":
+ {
+ // Rewards
+ giveAdena(player, 359064, true);
+ addExpAndSp(player, 34720560, 41664);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "30121-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "30121-05.html" : "30121-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
+ {
+ executeForEachPlayer(player, npc, isSummon, true, false);
+ return super.onKill(npc, player, isSummon);
+ }
+
+ @Override
+ public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ qs.setCond(2, true);
+ }
+ }
+}
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 8c11cf4239..544cf17255 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
@@ -323,6 +323,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
+import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
@@ -518,7 +519,6 @@ import quests.not_done.Q10298_WastelandQueen;
import quests.not_done.Q10357_AltarOfBloodThatAwakensDestruction;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10396_WitchOfSpores;
-import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10748_MysteriousSuggestion1;
@@ -879,7 +879,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class,
- Q10418_TheImmortalPirateKing.class, // TODO: Not done.
+ Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
deleted file mode 100644
index 1bcef865f5..0000000000
--- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.not_done;
-
-import org.l2jmobius.Config;
-import org.l2jmobius.gameserver.model.quest.Quest;
-
-/**
- * @author Mobius
- */
-public class Q10418_TheImmortalPirateKing extends Quest
-{
- private static final int START_NPC = 30121;
-
- public Q10418_TheImmortalPirateKing()
- {
- super(10418);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
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 5cf18b5186..da30a34d23 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
@@ -111,7 +111,6 @@
10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension
10396 Witch of Spores
-10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush
10457 Kefensis' Illusion
10506 Diana's Request
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
new file mode 100644
index 0000000000..1e4800d2c7
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.
+(Only characters with Lv. 83-90.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
new file mode 100644
index 0000000000..b62ef364e3
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Hello Hunter. Have you heard of the rumors that are circulating here?
+This strong and powerful creature appeared suddenly.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
new file mode 100644
index 0000000000..b038f460d2
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+He uses Nen. He has tremendous magical power
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
new file mode 100644
index 0000000000..3199a2d5ad
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Is his name Zaken. This is all true!
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
new file mode 100644
index 0000000000..28b3477a6e
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Did you kill Zaken?
+You ruined Zaken designs...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
new file mode 100644
index 0000000000..079b9bfa77
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+Well done. Good job.
+If something else is needed, we will contact you for help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
new file mode 100644
index 0000000000..b1a271a99c
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
@@ -0,0 +1,128 @@
+/*
+ * 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.Q10418_TheImmortalPirateKing;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * The Immortal Pirate King (10418)
+ * @URL https://l2wiki.com/The_Immortal_Pirate_King
+ * @author Dmitri
+ */
+public class Q10418_TheImmortalPirateKing extends Quest
+{
+ // NPC
+ private static final int JERONIN = 30121;
+ // Raidboss
+ private static final int ZAKEN = 29181;
+ // Misc
+ private static final int MIN_LEVEL = 83;
+ private static final int MAX_LEVEL = 90;
+
+ public Q10418_TheImmortalPirateKing()
+ {
+ super(10418);
+ addStartNpc(JERONIN);
+ addTalkId(JERONIN);
+ addKillId(ZAKEN);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30121-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+ switch (event)
+ {
+ case "30121-02.htm":
+ case "30121-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "30121-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30121-07.html":
+ {
+ // Rewards
+ giveAdena(player, 359064, true);
+ addExpAndSp(player, 34720560, 41664);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "30121-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "30121-05.html" : "30121-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
+ {
+ executeForEachPlayer(player, npc, isSummon, true, false);
+ return super.onKill(npc, player, isSummon);
+ }
+
+ @Override
+ public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ qs.setCond(2, true);
+ }
+ }
+}
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 95d97ddf31..1db8966b1f 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
@@ -329,6 +329,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
+import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
@@ -525,7 +526,6 @@ import quests.not_done.Q10355_BlacksmithsSoulAwakeningWeapon1;
import quests.not_done.Q10356_BlacksmithsSoulAwakeningWeapon2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10396_WitchOfSpores;
-import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10423_EmbryoStrongholdAmbush;
import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest;
@@ -905,7 +905,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class,
- Q10418_TheImmortalPirateKing.class, // TODO: Not done.
+ Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
deleted file mode 100644
index 1bcef865f5..0000000000
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.not_done;
-
-import org.l2jmobius.Config;
-import org.l2jmobius.gameserver.model.quest.Quest;
-
-/**
- * @author Mobius
- */
-public class Q10418_TheImmortalPirateKing extends Quest
-{
- private static final int START_NPC = 30121;
-
- public Q10418_TheImmortalPirateKing()
- {
- super(10418);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
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 167c70f928..374a1277da 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
@@ -116,7 +116,6 @@
10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension
10396 Witch of Spores
-10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush
10457 Kefensis' Illusion
10506 Diana's Request
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
new file mode 100644
index 0000000000..1e4800d2c7
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.
+(Only characters with Lv. 83-90.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
new file mode 100644
index 0000000000..b62ef364e3
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Hello Hunter. Have you heard of the rumors that are circulating here?
+This strong and powerful creature appeared suddenly.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
new file mode 100644
index 0000000000..b038f460d2
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+He uses Nen. He has tremendous magical power
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
new file mode 100644
index 0000000000..3199a2d5ad
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Is his name Zaken. This is all true!
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
new file mode 100644
index 0000000000..28b3477a6e
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Did you kill Zaken?
+You ruined Zaken designs...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
new file mode 100644
index 0000000000..079b9bfa77
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+Well done. Good job.
+If something else is needed, we will contact you for help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
new file mode 100644
index 0000000000..b1a271a99c
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
@@ -0,0 +1,128 @@
+/*
+ * 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.Q10418_TheImmortalPirateKing;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * The Immortal Pirate King (10418)
+ * @URL https://l2wiki.com/The_Immortal_Pirate_King
+ * @author Dmitri
+ */
+public class Q10418_TheImmortalPirateKing extends Quest
+{
+ // NPC
+ private static final int JERONIN = 30121;
+ // Raidboss
+ private static final int ZAKEN = 29181;
+ // Misc
+ private static final int MIN_LEVEL = 83;
+ private static final int MAX_LEVEL = 90;
+
+ public Q10418_TheImmortalPirateKing()
+ {
+ super(10418);
+ addStartNpc(JERONIN);
+ addTalkId(JERONIN);
+ addKillId(ZAKEN);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30121-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+ switch (event)
+ {
+ case "30121-02.htm":
+ case "30121-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "30121-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30121-07.html":
+ {
+ // Rewards
+ giveAdena(player, 359064, true);
+ addExpAndSp(player, 34720560, 41664);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "30121-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "30121-05.html" : "30121-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
+ {
+ executeForEachPlayer(player, npc, isSummon, true, false);
+ return super.onKill(npc, player, isSummon);
+ }
+
+ @Override
+ public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ qs.setCond(2, true);
+ }
+ }
+}
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 8b38198e16..3d0c722fb9 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
@@ -348,6 +348,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
+import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
@@ -560,7 +561,6 @@ import quests.not_done.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10396_WitchOfSpores;
-import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10535_BlacksmithsSoul3;
@@ -977,7 +977,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class,
- Q10418_TheImmortalPirateKing.class, // TODO: Not done.
+ Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
deleted file mode 100644
index 1bcef865f5..0000000000
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.not_done;
-
-import org.l2jmobius.Config;
-import org.l2jmobius.gameserver.model.quest.Quest;
-
-/**
- * @author Mobius
- */
-public class Q10418_TheImmortalPirateKing extends Quest
-{
- private static final int START_NPC = 30121;
-
- public Q10418_TheImmortalPirateKing()
- {
- super(10418);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
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 11bcfb801c..4bb7afddd8 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
@@ -123,7 +123,6 @@
10355 Blacksmith's Soul-awakening Weapon - 1
10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension
-10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush
10457 Kefensis' Illusion
10506 Diana's Request
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
new file mode 100644
index 0000000000..1e4800d2c7
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.
+(Only characters with Lv. 83-90.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
new file mode 100644
index 0000000000..b62ef364e3
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Hello Hunter. Have you heard of the rumors that are circulating here?
+This strong and powerful creature appeared suddenly.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
new file mode 100644
index 0000000000..b038f460d2
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+He uses Nen. He has tremendous magical power
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
new file mode 100644
index 0000000000..3199a2d5ad
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Is his name Zaken. This is all true!
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
new file mode 100644
index 0000000000..28b3477a6e
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Did you kill Zaken?
+You ruined Zaken designs...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
new file mode 100644
index 0000000000..079b9bfa77
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+Well done. Good job.
+If something else is needed, we will contact you for help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
new file mode 100644
index 0000000000..b1a271a99c
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
@@ -0,0 +1,128 @@
+/*
+ * 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.Q10418_TheImmortalPirateKing;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * The Immortal Pirate King (10418)
+ * @URL https://l2wiki.com/The_Immortal_Pirate_King
+ * @author Dmitri
+ */
+public class Q10418_TheImmortalPirateKing extends Quest
+{
+ // NPC
+ private static final int JERONIN = 30121;
+ // Raidboss
+ private static final int ZAKEN = 29181;
+ // Misc
+ private static final int MIN_LEVEL = 83;
+ private static final int MAX_LEVEL = 90;
+
+ public Q10418_TheImmortalPirateKing()
+ {
+ super(10418);
+ addStartNpc(JERONIN);
+ addTalkId(JERONIN);
+ addKillId(ZAKEN);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30121-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+ switch (event)
+ {
+ case "30121-02.htm":
+ case "30121-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "30121-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30121-07.html":
+ {
+ // Rewards
+ giveAdena(player, 359064, true);
+ addExpAndSp(player, 34720560, 41664);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "30121-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "30121-05.html" : "30121-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
+ {
+ executeForEachPlayer(player, npc, isSummon, true, false);
+ return super.onKill(npc, player, isSummon);
+ }
+
+ @Override
+ public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ qs.setCond(2, true);
+ }
+ }
+}
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 425e100f0b..0c4efc4c39 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
@@ -311,6 +311,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
+import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
@@ -517,7 +518,6 @@ import quests.not_done.Q10298_WastelandQueen;
import quests.not_done.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
-import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10529_IvoryTowersResearchSeaOfSporesJournal;
@@ -905,7 +905,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class,
- Q10418_TheImmortalPirateKing.class, // TODO: Not done.
+ Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
deleted file mode 100644
index 1bcef865f5..0000000000
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.not_done;
-
-import org.l2jmobius.Config;
-import org.l2jmobius.gameserver.model.quest.Quest;
-
-/**
- * @author Mobius
- */
-public class Q10418_TheImmortalPirateKing extends Quest
-{
- private static final int START_NPC = 30121;
-
- public Q10418_TheImmortalPirateKing()
- {
- super(10418);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt
index 0ed2fac893..2bf3b72878 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/MissingQuests.txt
@@ -126,7 +126,6 @@
10355 Blacksmith's Soul-awakening Weapon - 1
10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension
-10418 The Immortal Pirate King
10457 Kefensis' Illusion
10535 Blacksmith's Soul-awakening Weapon - 3
10552 Challenge! Balthus Knight!
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
new file mode 100644
index 0000000000..1e4800d2c7
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.
+(Only characters with Lv. 83-90.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
new file mode 100644
index 0000000000..b62ef364e3
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Hello Hunter. Have you heard of the rumors that are circulating here?
+This strong and powerful creature appeared suddenly.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
new file mode 100644
index 0000000000..b038f460d2
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+He uses Nen. He has tremendous magical power
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
new file mode 100644
index 0000000000..3199a2d5ad
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Is his name Zaken. This is all true!
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
new file mode 100644
index 0000000000..28b3477a6e
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Did you kill Zaken?
+You ruined Zaken designs...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
new file mode 100644
index 0000000000..079b9bfa77
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+Well done. Good job.
+If something else is needed, we will contact you for help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
new file mode 100644
index 0000000000..b1a271a99c
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
@@ -0,0 +1,128 @@
+/*
+ * 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.Q10418_TheImmortalPirateKing;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * The Immortal Pirate King (10418)
+ * @URL https://l2wiki.com/The_Immortal_Pirate_King
+ * @author Dmitri
+ */
+public class Q10418_TheImmortalPirateKing extends Quest
+{
+ // NPC
+ private static final int JERONIN = 30121;
+ // Raidboss
+ private static final int ZAKEN = 29181;
+ // Misc
+ private static final int MIN_LEVEL = 83;
+ private static final int MAX_LEVEL = 90;
+
+ public Q10418_TheImmortalPirateKing()
+ {
+ super(10418);
+ addStartNpc(JERONIN);
+ addTalkId(JERONIN);
+ addKillId(ZAKEN);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30121-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+ switch (event)
+ {
+ case "30121-02.htm":
+ case "30121-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "30121-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30121-07.html":
+ {
+ // Rewards
+ giveAdena(player, 359064, true);
+ addExpAndSp(player, 34720560, 41664);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "30121-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "30121-05.html" : "30121-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
+ {
+ executeForEachPlayer(player, npc, isSummon, true, false);
+ return super.onKill(npc, player, isSummon);
+ }
+
+ @Override
+ public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ qs.setCond(2, true);
+ }
+ }
+}
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java
index e1815e863b..d3e1f2019d 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -316,6 +316,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
+import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander;
@@ -538,7 +539,6 @@ import quests.not_done.Q10298_WastelandQueen;
import quests.not_done.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
-import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10535_BlacksmithsSoul3;
import quests.not_done.Q10552_ChallengeBalthusKnight;
@@ -932,7 +932,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class,
- Q10418_TheImmortalPirateKing.class, // TODO: Not done.
+ Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class,
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
deleted file mode 100644
index 1bcef865f5..0000000000
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.not_done;
-
-import org.l2jmobius.Config;
-import org.l2jmobius.gameserver.model.quest.Quest;
-
-/**
- * @author Mobius
- */
-public class Q10418_TheImmortalPirateKing extends Quest
-{
- private static final int START_NPC = 30121;
-
- public Q10418_TheImmortalPirateKing()
- {
- super(10418);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt
index affa2f7138..c0e39a1a84 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/MissingQuests.txt
@@ -122,7 +122,6 @@
10355 Blacksmiths Soul - 1
10356 Blacksmiths Soul - 2
10373 Exploring the Dimension - Sealing the Dimension
-10418 The Immortal Pirate King
10457 Kefensis' Illusion
10514 New Path to Glory
10515 New Way for Pride
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
new file mode 100644
index 0000000000..1e4800d2c7
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-00.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+I don't know where you heard it, but the guild has decided to assign it to a more reliable guild member. Let's talk later when we trust each other more.
+(Only characters with Lv. 83-90.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
new file mode 100644
index 0000000000..b62ef364e3
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-01.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Hello Hunter. Have you heard of the rumors that are circulating here?
+This strong and powerful creature appeared suddenly.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
new file mode 100644
index 0000000000..b038f460d2
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-02.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+He uses Nen. He has tremendous magical power
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
new file mode 100644
index 0000000000..3199a2d5ad
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-03.htm
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Is his name Zaken. This is all true!
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-04.htm
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
new file mode 100644
index 0000000000..1189f1600c
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-05.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.
+Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
new file mode 100644
index 0000000000..28b3477a6e
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-06.html
@@ -0,0 +1,5 @@
+Captain Jeronin:
+Did you kill Zaken?
+You ruined Zaken designs...
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
new file mode 100644
index 0000000000..079b9bfa77
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/30121-07.html
@@ -0,0 +1,4 @@
+Captain Jeronin:
+Well done. Good job.
+If something else is needed, we will contact you for help.
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
new file mode 100644
index 0000000000..b1a271a99c
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/Q10418_TheImmortalPirateKing/Q10418_TheImmortalPirateKing.java
@@ -0,0 +1,128 @@
+/*
+ * 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.Q10418_TheImmortalPirateKing;
+
+import org.l2jmobius.Config;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.model.quest.Quest;
+import org.l2jmobius.gameserver.model.quest.QuestState;
+import org.l2jmobius.gameserver.model.quest.State;
+
+/**
+ * The Immortal Pirate King (10418)
+ * @URL https://l2wiki.com/The_Immortal_Pirate_King
+ * @author Dmitri
+ */
+public class Q10418_TheImmortalPirateKing extends Quest
+{
+ // NPC
+ private static final int JERONIN = 30121;
+ // Raidboss
+ private static final int ZAKEN = 29181;
+ // Misc
+ private static final int MIN_LEVEL = 83;
+ private static final int MAX_LEVEL = 90;
+
+ public Q10418_TheImmortalPirateKing()
+ {
+ super(10418);
+ addStartNpc(JERONIN);
+ addTalkId(JERONIN);
+ addKillId(ZAKEN);
+ addCondLevel(MIN_LEVEL, MAX_LEVEL, "30121-00.htm");
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ final QuestState qs = getQuestState(player, false);
+ if (qs == null)
+ {
+ return htmltext;
+ }
+ switch (event)
+ {
+ case "30121-02.htm":
+ case "30121-03.htm":
+ {
+ htmltext = event;
+ break;
+ }
+ case "30121-04.htm":
+ {
+ qs.startQuest();
+ htmltext = event;
+ break;
+ }
+ case "30121-07.html":
+ {
+ // Rewards
+ giveAdena(player, 359064, true);
+ addExpAndSp(player, 34720560, 41664);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onTalk(Npc npc, PlayerInstance player)
+ {
+ final QuestState qs = getQuestState(player, true);
+ String htmltext = getNoQuestMsg(player);
+ switch (qs.getState())
+ {
+ case State.CREATED:
+ {
+ htmltext = "30121-01.htm";
+ break;
+ }
+ case State.STARTED:
+ {
+ htmltext = (qs.isCond(1)) ? "30121-05.html" : "30121-06.html";
+ break;
+ }
+ case State.COMPLETED:
+ {
+ htmltext = getAlreadyCompletedMsg(player);
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onKill(Npc npc, PlayerInstance player, boolean isSummon)
+ {
+ executeForEachPlayer(player, npc, isSummon, true, false);
+ return super.onKill(npc, player, isSummon);
+ }
+
+ @Override
+ public void actionForEachPlayer(PlayerInstance player, Npc npc, boolean isSummon)
+ {
+ final QuestState qs = getQuestState(player, false);
+ if ((qs != null) && qs.isCond(1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
+ {
+ qs.setCond(2, true);
+ }
+ }
+}
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java
index 235d782241..ab26f1d70f 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/QuestMasterHandler.java
@@ -152,6 +152,7 @@ import quests.Q10386_MysteriousJourney.Q10386_MysteriousJourney;
import quests.Q10387_SoullessOne.Q10387_SoullessOne;
import quests.Q10388_ConspiracyBehindDoor.Q10388_ConspiracyBehindDoor;
import quests.Q10389_TheVoiceOfAuthority.Q10389_TheVoiceOfAuthority;
+import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10423_EmbryoStrongholdRaid.Q10423_EmbryoStrongholdRaid;
import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat;
import quests.Q10446_HitAndRun.Q10446_HitAndRun;
@@ -295,7 +296,6 @@ import quests.not_done.Q10298_WastelandQueen;
import quests.not_done.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
-import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10514_NewPathToGlory;
import quests.not_done.Q10515_NewWayForPride;
@@ -506,7 +506,7 @@ public class QuestMasterHandler
Q10387_SoullessOne.class,
Q10388_ConspiracyBehindDoor.class,
Q10389_TheVoiceOfAuthority.class,
- Q10418_TheImmortalPirateKing.class, // TODO: Not done.
+ Q10418_TheImmortalPirateKing.class,
Q10423_EmbryoStrongholdRaid.class,
Q10445_AnImpendingThreat.class,
Q10446_HitAndRun.class,
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
deleted file mode 100644
index 1bcef865f5..0000000000
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/quests/not_done/Q10418_TheImmortalPirateKing.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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.not_done;
-
-import org.l2jmobius.Config;
-import org.l2jmobius.gameserver.model.quest.Quest;
-
-/**
- * @author Mobius
- */
-public class Q10418_TheImmortalPirateKing extends Quest
-{
- private static final int START_NPC = 30121;
-
- public Q10418_TheImmortalPirateKing()
- {
- super(10418);
- addStartNpc(START_NPC);
- addTalkId(START_NPC);
- addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
- }
-}