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)); - } -}