Addition of quest The Immortal Pirate King (10418).

Contributed by Dmitri.
This commit is contained in:
MobiusDevelopment
2020-03-19 19:05:51 +00:00
parent 2d4fb64b26
commit 44f102cf7e
72 changed files with 990 additions and 234 deletions

View File

@@ -53,7 +53,6 @@
10357 Altar of Blood that Awakens Destruction 10357 Altar of Blood that Awakens Destruction
10373 Exploring the Dimension - Sealing the Dimension 10373 Exploring the Dimension - Sealing the Dimension
10396 Witch of Spores 10396 Witch of Spores
10418 The Immortal Pirate King
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request
10712 The Minstrel's Song, Part 1 10712 The Minstrel's Song, Part 1

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
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.<br>
(Only characters with Lv. 83-90.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Hello Hunter. Have you heard of the rumors that are circulating here?<br>
This strong and powerful creature appeared suddenly.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-02.htm">keep going</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
He uses Nen. He has tremendous magical power<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-03.htm">"Really?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Is his name Zaken. This is all true!<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-04.htm">Ask about the agreement</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Did you kill Zaken?<br>
You ruined Zaken designs...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-07.html">"I figured out Zaken"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
Well done. Good job.<br>
If something else is needed, we will contact you for help.
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}
}

View File

@@ -323,6 +323,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom; import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos; import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed; import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts; import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters; import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander; 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.Q10357_AltarOfBloodThatAwakensDestruction;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10396_WitchOfSpores; import quests.not_done.Q10396_WitchOfSpores;
import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion; import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest; import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10748_MysteriousSuggestion1; import quests.not_done.Q10748_MysteriousSuggestion1;
@@ -879,7 +879,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class, Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class, Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class, Q10417_DaimonTheWhiteEyed.class,
Q10418_TheImmortalPirateKing.class, // TODO: Not done. Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class, Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class, Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class, Q10421_AssassinationOfTheVarkaSilenosCommander.class,

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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));
}
}

View File

@@ -111,7 +111,6 @@
10356 Blacksmith's Soul-awakening Weapon - 2 10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension 10373 Exploring the Dimension - Sealing the Dimension
10396 Witch of Spores 10396 Witch of Spores
10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush 10423 Embryo Stronghold Ambush
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
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.<br>
(Only characters with Lv. 83-90.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Hello Hunter. Have you heard of the rumors that are circulating here?<br>
This strong and powerful creature appeared suddenly.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-02.htm">keep going</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
He uses Nen. He has tremendous magical power<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-03.htm">"Really?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Is his name Zaken. This is all true!<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-04.htm">Ask about the agreement</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Did you kill Zaken?<br>
You ruined Zaken designs...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-07.html">"I figured out Zaken"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
Well done. Good job.<br>
If something else is needed, we will contact you for help.
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}
}

View File

@@ -329,6 +329,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom; import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos; import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed; import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts; import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters; import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander; 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.Q10356_BlacksmithsSoulAwakeningWeapon2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10396_WitchOfSpores; import quests.not_done.Q10396_WitchOfSpores;
import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10423_EmbryoStrongholdAmbush; import quests.not_done.Q10423_EmbryoStrongholdAmbush;
import quests.not_done.Q10457_KefensisIllusion; import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest; import quests.not_done.Q10506_DianasRequest;
@@ -905,7 +905,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class, Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class, Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class, Q10417_DaimonTheWhiteEyed.class,
Q10418_TheImmortalPirateKing.class, // TODO: Not done. Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class, Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class, Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class, Q10421_AssassinationOfTheVarkaSilenosCommander.class,

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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));
}
}

View File

@@ -116,7 +116,6 @@
10356 Blacksmith's Soul-awakening Weapon - 2 10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension 10373 Exploring the Dimension - Sealing the Dimension
10396 Witch of Spores 10396 Witch of Spores
10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush 10423 Embryo Stronghold Ambush
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
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.<br>
(Only characters with Lv. 83-90.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Hello Hunter. Have you heard of the rumors that are circulating here?<br>
This strong and powerful creature appeared suddenly.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-02.htm">keep going</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
He uses Nen. He has tremendous magical power<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-03.htm">"Really?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Is his name Zaken. This is all true!<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-04.htm">Ask about the agreement</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Did you kill Zaken?<br>
You ruined Zaken designs...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-07.html">"I figured out Zaken"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
Well done. Good job.<br>
If something else is needed, we will contact you for help.
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}
}

View File

@@ -348,6 +348,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom; import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos; import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed; import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts; import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters; import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander; 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.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10396_WitchOfSpores; import quests.not_done.Q10396_WitchOfSpores;
import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion; import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest; import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10535_BlacksmithsSoul3; import quests.not_done.Q10535_BlacksmithsSoul3;
@@ -977,7 +977,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class, Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class, Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class, Q10417_DaimonTheWhiteEyed.class,
Q10418_TheImmortalPirateKing.class, // TODO: Not done. Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class, Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class, Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class, Q10421_AssassinationOfTheVarkaSilenosCommander.class,

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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));
}
}

View File

@@ -123,7 +123,6 @@
10355 Blacksmith's Soul-awakening Weapon - 1 10355 Blacksmith's Soul-awakening Weapon - 1
10356 Blacksmith's Soul-awakening Weapon - 2 10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension 10373 Exploring the Dimension - Sealing the Dimension
10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush 10423 Embryo Stronghold Ambush
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
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.<br>
(Only characters with Lv. 83-90.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Hello Hunter. Have you heard of the rumors that are circulating here?<br>
This strong and powerful creature appeared suddenly.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-02.htm">keep going</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
He uses Nen. He has tremendous magical power<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-03.htm">"Really?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Is his name Zaken. This is all true!<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-04.htm">Ask about the agreement</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Did you kill Zaken?<br>
You ruined Zaken designs...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-07.html">"I figured out Zaken"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
Well done. Good job.<br>
If something else is needed, we will contact you for help.
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}
}

View File

@@ -311,6 +311,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom; import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos; import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed; import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts; import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters; import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander; 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.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2; import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion; import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10506_DianasRequest; import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10529_IvoryTowersResearchSeaOfSporesJournal; import quests.not_done.Q10529_IvoryTowersResearchSeaOfSporesJournal;
@@ -905,7 +905,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class, Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class, Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class, Q10417_DaimonTheWhiteEyed.class,
Q10418_TheImmortalPirateKing.class, // TODO: Not done. Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class, Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class, Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class, Q10421_AssassinationOfTheVarkaSilenosCommander.class,

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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));
}
}

View File

@@ -126,7 +126,6 @@
10355 Blacksmith's Soul-awakening Weapon - 1 10355 Blacksmith's Soul-awakening Weapon - 1
10356 Blacksmith's Soul-awakening Weapon - 2 10356 Blacksmith's Soul-awakening Weapon - 2
10373 Exploring the Dimension - Sealing the Dimension 10373 Exploring the Dimension - Sealing the Dimension
10418 The Immortal Pirate King
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10535 Blacksmith's Soul-awakening Weapon - 3 10535 Blacksmith's Soul-awakening Weapon - 3
10552 Challenge! Balthus Knight! 10552 Challenge! Balthus Knight!

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
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.<br>
(Only characters with Lv. 83-90.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Hello Hunter. Have you heard of the rumors that are circulating here?<br>
This strong and powerful creature appeared suddenly.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-02.htm">keep going</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
He uses Nen. He has tremendous magical power<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-03.htm">"Really?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Is his name Zaken. This is all true!<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-04.htm">Ask about the agreement</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Did you kill Zaken?<br>
You ruined Zaken designs...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-07.html">"I figured out Zaken"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
Well done. Good job.<br>
If something else is needed, we will contact you for help.
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}
}

View File

@@ -316,6 +316,7 @@ import quests.Q10414_KekropusLetterWithCourage.Q10414_KekropusLetterWithCourage;
import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom; import quests.Q10415_KekropusLetterWithWisdom.Q10415_KekropusLetterWithWisdom;
import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos; import quests.Q10416_InSearchOfTheEyeOfArgos.Q10416_InSearchOfTheEyeOfArgos;
import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed; import quests.Q10417_DaimonTheWhiteEyed.Q10417_DaimonTheWhiteEyed;
import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts; import quests.Q10419_KekropusLetterKampfsWhereabouts.Q10419_KekropusLetterKampfsWhereabouts;
import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters; import quests.Q10420_TheVarkaSilenosSupporters.Q10420_TheVarkaSilenosSupporters;
import quests.Q10421_AssassinationOfTheVarkaSilenosCommander.Q10421_AssassinationOfTheVarkaSilenosCommander; 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.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2; import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion; import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10535_BlacksmithsSoul3; import quests.not_done.Q10535_BlacksmithsSoul3;
import quests.not_done.Q10552_ChallengeBalthusKnight; import quests.not_done.Q10552_ChallengeBalthusKnight;
@@ -932,7 +932,7 @@ public class QuestMasterHandler
Q10415_KekropusLetterWithWisdom.class, Q10415_KekropusLetterWithWisdom.class,
Q10416_InSearchOfTheEyeOfArgos.class, Q10416_InSearchOfTheEyeOfArgos.class,
Q10417_DaimonTheWhiteEyed.class, Q10417_DaimonTheWhiteEyed.class,
Q10418_TheImmortalPirateKing.class, // TODO: Not done. Q10418_TheImmortalPirateKing.class,
Q10419_KekropusLetterKampfsWhereabouts.class, Q10419_KekropusLetterKampfsWhereabouts.class,
Q10420_TheVarkaSilenosSupporters.class, Q10420_TheVarkaSilenosSupporters.class,
Q10421_AssassinationOfTheVarkaSilenosCommander.class, Q10421_AssassinationOfTheVarkaSilenosCommander.class,

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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));
}
}

View File

@@ -122,7 +122,6 @@
10355 Blacksmiths Soul - 1 10355 Blacksmiths Soul - 1
10356 Blacksmiths Soul - 2 10356 Blacksmiths Soul - 2
10373 Exploring the Dimension - Sealing the Dimension 10373 Exploring the Dimension - Sealing the Dimension
10418 The Immortal Pirate King
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10514 New Path to Glory 10514 New Path to Glory
10515 New Way for Pride 10515 New Way for Pride

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
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.<br>
(Only characters with Lv. 83-90.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Hello Hunter. Have you heard of the rumors that are circulating here?<br>
This strong and powerful creature appeared suddenly.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-02.htm">keep going</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
He uses Nen. He has tremendous magical power<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-03.htm">"Really?"</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Is his name Zaken. This is all true!<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-04.htm">Ask about the agreement</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
You can teleport to Devil's Isle via Zaken Researcher Somulitan, located in Giran Harbor.<br>
Go to Cavern of the Pirate Captain on Devil's Isle and defeat Zaken.
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Captain Jeronin:<br>
Did you kill Zaken?<br>
You ruined Zaken designs...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10418_TheImmortalPirateKing 30121-07.html">"I figured out Zaken"</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Captain Jeronin:<br>
Well done. Good job.<br>
If something else is needed, we will contact you for help.
</body></html>

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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);
}
}
}

View File

@@ -152,6 +152,7 @@ import quests.Q10386_MysteriousJourney.Q10386_MysteriousJourney;
import quests.Q10387_SoullessOne.Q10387_SoullessOne; import quests.Q10387_SoullessOne.Q10387_SoullessOne;
import quests.Q10388_ConspiracyBehindDoor.Q10388_ConspiracyBehindDoor; import quests.Q10388_ConspiracyBehindDoor.Q10388_ConspiracyBehindDoor;
import quests.Q10389_TheVoiceOfAuthority.Q10389_TheVoiceOfAuthority; import quests.Q10389_TheVoiceOfAuthority.Q10389_TheVoiceOfAuthority;
import quests.Q10418_TheImmortalPirateKing.Q10418_TheImmortalPirateKing;
import quests.Q10423_EmbryoStrongholdRaid.Q10423_EmbryoStrongholdRaid; import quests.Q10423_EmbryoStrongholdRaid.Q10423_EmbryoStrongholdRaid;
import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat; import quests.Q10445_AnImpendingThreat.Q10445_AnImpendingThreat;
import quests.Q10446_HitAndRun.Q10446_HitAndRun; 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.Q10355_BlacksmithsSoul1;
import quests.not_done.Q10356_BlacksmithsSoul2; import quests.not_done.Q10356_BlacksmithsSoul2;
import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension; import quests.not_done.Q10373_ExploringTheDimensionSealingTheDimension;
import quests.not_done.Q10418_TheImmortalPirateKing;
import quests.not_done.Q10457_KefensisIllusion; import quests.not_done.Q10457_KefensisIllusion;
import quests.not_done.Q10514_NewPathToGlory; import quests.not_done.Q10514_NewPathToGlory;
import quests.not_done.Q10515_NewWayForPride; import quests.not_done.Q10515_NewWayForPride;
@@ -506,7 +506,7 @@ public class QuestMasterHandler
Q10387_SoullessOne.class, Q10387_SoullessOne.class,
Q10388_ConspiracyBehindDoor.class, Q10388_ConspiracyBehindDoor.class,
Q10389_TheVoiceOfAuthority.class, Q10389_TheVoiceOfAuthority.class,
Q10418_TheImmortalPirateKing.class, // TODO: Not done. Q10418_TheImmortalPirateKing.class,
Q10423_EmbryoStrongholdRaid.class, Q10423_EmbryoStrongholdRaid.class,
Q10445_AnImpendingThreat.class, Q10445_AnImpendingThreat.class,
Q10446_HitAndRun.class, Q10446_HitAndRun.class,

View File

@@ -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 <http://www.gnu.org/licenses/>.
*/
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));
}
}