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 d5668a0ef0..a39c03af28 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 @@ -66,7 +66,6 @@ 10373 Exploring the Dimension - Sealing the Dimension 10396 Witch of Spores 10418 The Immortal Pirate King -10456 Operation: Rescue 10457 Kefensis' Illusion 10506 Diana's Request 10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81 diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm new file mode 100644 index 0000000000..68b21b14f8 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You haven't met Leona yet? She is in there.
+(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.) + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm new file mode 100644 index 0000000000..2e0b3e7e22 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You have talked to Leona? I assume that you are still here because her cause has echoed in your heart. As such, I'd like to ask you to carry out an important mission for us.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm new file mode 100644 index 0000000000..c2e32e7944 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm @@ -0,0 +1,6 @@ +Truth Seeker Devianne:
+I had guessed that Beleth was plotting something in Hellbound, but things are much worse than I thought. He isn't just powerfull -- he is evil!
+In Beleth's Magic Circle, Chimeras are raised free-range, probably to be used as building materials for Core Naia.
+And these Chimeras, they're... + + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm new file mode 100644 index 0000000000..a304bdc09a --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm @@ -0,0 +1,5 @@ +Truth Seeker Devianne:
+They were slaves! They had lost their humanity, turned into monsters... killing other creatures until they were slaughter to be used in creating Core Naia.
+But not all is lost. There seems to be a way to turn them back into human form! but this requires help.
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm new file mode 100644 index 0000000000..8da9cd745e --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.
+When the magic Circle turns yellow, kill off the nearby Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters. Then you'll be able to rescue those who haven't completely mutated yet!
+ \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html new file mode 100644 index 0000000000..5b0bdc527c --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html new file mode 100644 index 0000000000..5627f980ff --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Still not done? Well, we still have time. But hurry!
+Go to Beleth's Magic Circle immediately and wait for the magic circle to turn yellow. That's when you kill Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters. Then you can rescue those who haven't completely mutated yet! + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html new file mode 100644 index 0000000000..4b75fd48e1 --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html @@ -0,0 +1,4 @@ +Truth Scholar Devianne:
+Did your mission succeed? Did you rescue them?
+ + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html new file mode 100644 index 0000000000..f7447767fe --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Well done! I will now ask those you saved for information about Beleth's magic.
+This is what true courage is -- saving one life at a time. Soon the lives you touched will go on to touch others' lives. Thank you for your valor. + \ No newline at end of file diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java new file mode 100644 index 0000000000..b9c53b290e --- /dev/null +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java @@ -0,0 +1,152 @@ +/* + * 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.Q10456_OperationRescue; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.Faction; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; + +/** + * Operation: Rescue (10456) + * @URL https://l2wiki.com/Operation:_Rescue + * @author Gigi + */ +public class Q10456_OperationRescue extends Quest +{ + // NPCs + private static final int DEVIANNE = 31590; + private static final int[] MONSTERS = + { + 23354, // Decay Hannibal + 23355, // Armor Beast + 23356, // Klein Soldier + 23357, // Disorder Warrior + 23358, // Blow Archer + 23360, // Bizuard + 23361, // Mutated Fly + 23362, // Amos Soldier + 23363, // Amos Officer + 23364, // Amos Master + 23365 // Ailith Hunter + }; + // Misc + private static final int MIN_LEVEL = 99; + + public Q10456_OperationRescue() + { + super(10456); + addStartNpc(DEVIANNE); + addTalkId(DEVIANNE); + addKillId(MONSTERS); + addCondMinLevel(MIN_LEVEL, "31590-00.htm"); + addFactionLevel(Faction.BLACKBIRD_CLAN, 2, "31590-05.html"); + addCondCompletedQuest(Q10455_ElikiasLetter.class.getSimpleName(), "31590-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + switch (event) + { + case "31590-02.htm": + case "31590-03.htm": + { + htmltext = event; + break; + } + case "31590-04.htm": + { + qs.startQuest(); + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_HOPE_THEY_ARE_SAFE); + htmltext = event; + break; + } + case "31590-08.html": + { + if (qs.isCond(2) && (player.getLevel() >= MIN_LEVEL)) + { + addExpAndSp(player, 1_507_456_500, 3_617_880); + giveAdena(player, 659_250, false); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + } + else + { + htmltext = getNoQuestLevelRewardMsg(player); + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + String htmltext = getNoQuestMsg(player); + final QuestState qs = getQuestState(player, true); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31590-01.htm"; + break; + } + case State.STARTED: + { + htmltext = (qs.isCond(1)) ? "31590-06.html" : "31590-07.html"; + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, false); + if ((qs != null) && qs.isCond(1) && (npc.getTitleString() == NpcStringId.ABNORMAL_MAGIC_CIRCLE)) + { + if (getRandom(100) < 5) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, killer, isSummon); + } +} 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 b974b07492..0a490222a6 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 @@ -328,6 +328,7 @@ import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10452_IsItEdible.Q10452_IsItEdible; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; +import quests.Q10456_OperationRescue.Q10456_OperationRescue; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10461_TappingThePowerWithin.Q10461_TappingThePowerWithin; @@ -766,6 +767,7 @@ public class QuestMasterHandler Q10452_IsItEdible.class, Q10453_StoppingTheWindDragon.class, Q10455_ElikiasLetter.class, + Q10456_OperationRescue.class, Q10459_ASickAmbition.class, Q10460_ReturnOfTheAlligatorHunter.class, Q10461_TappingThePowerWithin.class, diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/MissingQuests.txt index f828ef9e91..df1ee20c9c 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 @@ -134,7 +134,6 @@ 10418 The Immortal Pirate King 10423 Embryo Stronghold Ambush 10454 Final Embryo Apostle -10456 Operation: Rescue 10457 Kefensis' Illusion 10506 Diana's Request 10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81 diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm new file mode 100644 index 0000000000..68b21b14f8 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You haven't met Leona yet? She is in there.
+(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.) + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm new file mode 100644 index 0000000000..2e0b3e7e22 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You have talked to Leona? I assume that you are still here because her cause has echoed in your heart. As such, I'd like to ask you to carry out an important mission for us.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm new file mode 100644 index 0000000000..c2e32e7944 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm @@ -0,0 +1,6 @@ +Truth Seeker Devianne:
+I had guessed that Beleth was plotting something in Hellbound, but things are much worse than I thought. He isn't just powerfull -- he is evil!
+In Beleth's Magic Circle, Chimeras are raised free-range, probably to be used as building materials for Core Naia.
+And these Chimeras, they're... + + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm new file mode 100644 index 0000000000..a304bdc09a --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm @@ -0,0 +1,5 @@ +Truth Seeker Devianne:
+They were slaves! They had lost their humanity, turned into monsters... killing other creatures until they were slaughter to be used in creating Core Naia.
+But not all is lost. There seems to be a way to turn them back into human form! but this requires help.
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm new file mode 100644 index 0000000000..8da9cd745e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.
+When the magic Circle turns yellow, kill off the nearby Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters. Then you'll be able to rescue those who haven't completely mutated yet!
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html new file mode 100644 index 0000000000..5b0bdc527c --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html new file mode 100644 index 0000000000..5627f980ff --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Still not done? Well, we still have time. But hurry!
+Go to Beleth's Magic Circle immediately and wait for the magic circle to turn yellow. That's when you kill Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters. Then you can rescue those who haven't completely mutated yet! + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html new file mode 100644 index 0000000000..4b75fd48e1 --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html @@ -0,0 +1,4 @@ +Truth Scholar Devianne:
+Did your mission succeed? Did you rescue them?
+ + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html new file mode 100644 index 0000000000..f7447767fe --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Well done! I will now ask those you saved for information about Beleth's magic.
+This is what true courage is -- saving one life at a time. Soon the lives you touched will go on to touch others' lives. Thank you for your valor. + \ No newline at end of file diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java new file mode 100644 index 0000000000..b9c53b290e --- /dev/null +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java @@ -0,0 +1,152 @@ +/* + * 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.Q10456_OperationRescue; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.Faction; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; + +/** + * Operation: Rescue (10456) + * @URL https://l2wiki.com/Operation:_Rescue + * @author Gigi + */ +public class Q10456_OperationRescue extends Quest +{ + // NPCs + private static final int DEVIANNE = 31590; + private static final int[] MONSTERS = + { + 23354, // Decay Hannibal + 23355, // Armor Beast + 23356, // Klein Soldier + 23357, // Disorder Warrior + 23358, // Blow Archer + 23360, // Bizuard + 23361, // Mutated Fly + 23362, // Amos Soldier + 23363, // Amos Officer + 23364, // Amos Master + 23365 // Ailith Hunter + }; + // Misc + private static final int MIN_LEVEL = 99; + + public Q10456_OperationRescue() + { + super(10456); + addStartNpc(DEVIANNE); + addTalkId(DEVIANNE); + addKillId(MONSTERS); + addCondMinLevel(MIN_LEVEL, "31590-00.htm"); + addFactionLevel(Faction.BLACKBIRD_CLAN, 2, "31590-05.html"); + addCondCompletedQuest(Q10455_ElikiasLetter.class.getSimpleName(), "31590-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + switch (event) + { + case "31590-02.htm": + case "31590-03.htm": + { + htmltext = event; + break; + } + case "31590-04.htm": + { + qs.startQuest(); + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_HOPE_THEY_ARE_SAFE); + htmltext = event; + break; + } + case "31590-08.html": + { + if (qs.isCond(2) && (player.getLevel() >= MIN_LEVEL)) + { + addExpAndSp(player, 1_507_456_500, 3_617_880); + giveAdena(player, 659_250, false); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + } + else + { + htmltext = getNoQuestLevelRewardMsg(player); + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + String htmltext = getNoQuestMsg(player); + final QuestState qs = getQuestState(player, true); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31590-01.htm"; + break; + } + case State.STARTED: + { + htmltext = (qs.isCond(1)) ? "31590-06.html" : "31590-07.html"; + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, false); + if ((qs != null) && qs.isCond(1) && (npc.getTitleString() == NpcStringId.ABNORMAL_MAGIC_CIRCLE)) + { + if (getRandom(100) < 5) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, killer, isSummon); + } +} 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 a41b1a3d0c..fc788b5bc7 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 @@ -327,6 +327,7 @@ import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10452_IsItEdible.Q10452_IsItEdible; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; +import quests.Q10456_OperationRescue.Q10456_OperationRescue; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10462_TemperARustingBlade.Q10462_TemperARustingBlade; @@ -763,6 +764,7 @@ public class QuestMasterHandler Q10452_IsItEdible.class, Q10453_StoppingTheWindDragon.class, Q10455_ElikiasLetter.class, + Q10456_OperationRescue.class, Q10459_ASickAmbition.class, Q10460_ReturnOfTheAlligatorHunter.class, Q10462_TemperARustingBlade.class, diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/MissingQuests.txt index 6dc89c3c2f..667d392abb 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 @@ -168,7 +168,6 @@ 10418 The Immortal Pirate King 10423 Embryo Stronghold Ambush 10454 Final Embryo Apostle -10456 Operation: Rescue 10457 Kefensis' Illusion 10506 Diana's Request 10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81 diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm new file mode 100644 index 0000000000..68b21b14f8 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You haven't met Leona yet? She is in there.
+(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm new file mode 100644 index 0000000000..2e0b3e7e22 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You have talked to Leona? I assume that you are still here because her cause has echoed in your heart. As such, I'd like to ask you to carry out an important mission for us.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm new file mode 100644 index 0000000000..c2e32e7944 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm @@ -0,0 +1,6 @@ +Truth Seeker Devianne:
+I had guessed that Beleth was plotting something in Hellbound, but things are much worse than I thought. He isn't just powerfull -- he is evil!
+In Beleth's Magic Circle, Chimeras are raised free-range, probably to be used as building materials for Core Naia.
+And these Chimeras, they're... + + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm new file mode 100644 index 0000000000..a304bdc09a --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm @@ -0,0 +1,5 @@ +Truth Seeker Devianne:
+They were slaves! They had lost their humanity, turned into monsters... killing other creatures until they were slaughter to be used in creating Core Naia.
+But not all is lost. There seems to be a way to turn them back into human form! but this requires help.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm new file mode 100644 index 0000000000..8da9cd745e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.
+When the magic Circle turns yellow, kill off the nearby Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters. Then you'll be able to rescue those who haven't completely mutated yet!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html new file mode 100644 index 0000000000..5b0bdc527c --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html new file mode 100644 index 0000000000..5627f980ff --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Still not done? Well, we still have time. But hurry!
+Go to Beleth's Magic Circle immediately and wait for the magic circle to turn yellow. That's when you kill Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters. Then you can rescue those who haven't completely mutated yet! + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html new file mode 100644 index 0000000000..4b75fd48e1 --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html @@ -0,0 +1,4 @@ +Truth Scholar Devianne:
+Did your mission succeed? Did you rescue them?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html new file mode 100644 index 0000000000..f7447767fe --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Well done! I will now ask those you saved for information about Beleth's magic.
+This is what true courage is -- saving one life at a time. Soon the lives you touched will go on to touch others' lives. Thank you for your valor. + \ No newline at end of file diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java new file mode 100644 index 0000000000..b9c53b290e --- /dev/null +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java @@ -0,0 +1,152 @@ +/* + * 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.Q10456_OperationRescue; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.Faction; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; + +/** + * Operation: Rescue (10456) + * @URL https://l2wiki.com/Operation:_Rescue + * @author Gigi + */ +public class Q10456_OperationRescue extends Quest +{ + // NPCs + private static final int DEVIANNE = 31590; + private static final int[] MONSTERS = + { + 23354, // Decay Hannibal + 23355, // Armor Beast + 23356, // Klein Soldier + 23357, // Disorder Warrior + 23358, // Blow Archer + 23360, // Bizuard + 23361, // Mutated Fly + 23362, // Amos Soldier + 23363, // Amos Officer + 23364, // Amos Master + 23365 // Ailith Hunter + }; + // Misc + private static final int MIN_LEVEL = 99; + + public Q10456_OperationRescue() + { + super(10456); + addStartNpc(DEVIANNE); + addTalkId(DEVIANNE); + addKillId(MONSTERS); + addCondMinLevel(MIN_LEVEL, "31590-00.htm"); + addFactionLevel(Faction.BLACKBIRD_CLAN, 2, "31590-05.html"); + addCondCompletedQuest(Q10455_ElikiasLetter.class.getSimpleName(), "31590-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + switch (event) + { + case "31590-02.htm": + case "31590-03.htm": + { + htmltext = event; + break; + } + case "31590-04.htm": + { + qs.startQuest(); + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_HOPE_THEY_ARE_SAFE); + htmltext = event; + break; + } + case "31590-08.html": + { + if (qs.isCond(2) && (player.getLevel() >= MIN_LEVEL)) + { + addExpAndSp(player, 1_507_456_500, 3_617_880); + giveAdena(player, 659_250, false); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + } + else + { + htmltext = getNoQuestLevelRewardMsg(player); + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + String htmltext = getNoQuestMsg(player); + final QuestState qs = getQuestState(player, true); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31590-01.htm"; + break; + } + case State.STARTED: + { + htmltext = (qs.isCond(1)) ? "31590-06.html" : "31590-07.html"; + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, false); + if ((qs != null) && qs.isCond(1) && (npc.getTitleString() == NpcStringId.ABNORMAL_MAGIC_CIRCLE)) + { + if (getRandom(100) < 5) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, killer, isSummon); + } +} 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 36a25fa9a7..e6681093d3 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 @@ -317,6 +317,7 @@ import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10452_IsItEdible.Q10452_IsItEdible; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; +import quests.Q10456_OperationRescue.Q10456_OperationRescue; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; @@ -741,6 +742,7 @@ public class QuestMasterHandler Q10452_IsItEdible.class, Q10453_StoppingTheWindDragon.class, Q10455_ElikiasLetter.class, + Q10456_OperationRescue.class, Q10459_ASickAmbition.class, Q10460_ReturnOfTheAlligatorHunter.class, Q10472_WindsOfFateEncroachingShadows.class, diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/MissingQuests.txt index f5d56a5b6a..3ee0415a46 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 @@ -181,7 +181,6 @@ 10418 The Immortal Pirate King 10423 Embryo Stronghold Ambush 10454 Final Embryo Apostle -10456 Operation: Rescue 10457 Kefensis' Illusion 10506 Diana's Request 10529 Ivory Tower's Research - Sea of Spores Journal diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm new file mode 100644 index 0000000000..68b21b14f8 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-00.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You haven't met Leona yet? She is in there.
+(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.) + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm new file mode 100644 index 0000000000..2e0b3e7e22 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-01.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+You have talked to Leona? I assume that you are still here because her cause has echoed in your heart. As such, I'd like to ask you to carry out an important mission for us.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm new file mode 100644 index 0000000000..c2e32e7944 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-02.htm @@ -0,0 +1,6 @@ +Truth Seeker Devianne:
+I had guessed that Beleth was plotting something in Hellbound, but things are much worse than I thought. He isn't just powerfull -- he is evil!
+In Beleth's Magic Circle, Chimeras are raised free-range, probably to be used as building materials for Core Naia.
+And these Chimeras, they're... + + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm new file mode 100644 index 0000000000..a304bdc09a --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-03.htm @@ -0,0 +1,5 @@ +Truth Seeker Devianne:
+They were slaves! They had lost their humanity, turned into monsters... killing other creatures until they were slaughter to be used in creating Core Naia.
+But not all is lost. There seems to be a way to turn them back into human form! but this requires help.
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm new file mode 100644 index 0000000000..8da9cd745e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-04.htm @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.
+When the magic Circle turns yellow, kill off the nearby Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters. Then you'll be able to rescue those who haven't completely mutated yet!
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html new file mode 100644 index 0000000000..5b0bdc527c --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-05.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+In order to take on this mission, you must first build more trust with us.
+(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)
+ \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html new file mode 100644 index 0000000000..5627f980ff --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-06.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Still not done? Well, we still have time. But hurry!
+Go to Beleth's Magic Circle immediately and wait for the magic circle to turn yellow. That's when you kill Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters. Then you can rescue those who haven't completely mutated yet! + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html new file mode 100644 index 0000000000..4b75fd48e1 --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-07.html @@ -0,0 +1,4 @@ +Truth Scholar Devianne:
+Did your mission succeed? Did you rescue them?
+ + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html new file mode 100644 index 0000000000..f7447767fe --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/31590-08.html @@ -0,0 +1,4 @@ +Truth Seeker Devianne:
+Well done! I will now ask those you saved for information about Beleth's magic.
+This is what true courage is -- saving one life at a time. Soon the lives you touched will go on to touch others' lives. Thank you for your valor. + \ No newline at end of file diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java new file mode 100644 index 0000000000..b9c53b290e --- /dev/null +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/quests/Q10456_OperationRescue/Q10456_OperationRescue.java @@ -0,0 +1,152 @@ +/* + * 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.Q10456_OperationRescue; + +import com.l2jmobius.gameserver.enums.ChatType; +import com.l2jmobius.gameserver.enums.Faction; +import com.l2jmobius.gameserver.enums.QuestType; +import com.l2jmobius.gameserver.model.actor.L2Npc; +import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance; +import com.l2jmobius.gameserver.model.quest.Quest; +import com.l2jmobius.gameserver.model.quest.QuestState; +import com.l2jmobius.gameserver.model.quest.State; +import com.l2jmobius.gameserver.network.NpcStringId; + +import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; + +/** + * Operation: Rescue (10456) + * @URL https://l2wiki.com/Operation:_Rescue + * @author Gigi + */ +public class Q10456_OperationRescue extends Quest +{ + // NPCs + private static final int DEVIANNE = 31590; + private static final int[] MONSTERS = + { + 23354, // Decay Hannibal + 23355, // Armor Beast + 23356, // Klein Soldier + 23357, // Disorder Warrior + 23358, // Blow Archer + 23360, // Bizuard + 23361, // Mutated Fly + 23362, // Amos Soldier + 23363, // Amos Officer + 23364, // Amos Master + 23365 // Ailith Hunter + }; + // Misc + private static final int MIN_LEVEL = 99; + + public Q10456_OperationRescue() + { + super(10456); + addStartNpc(DEVIANNE); + addTalkId(DEVIANNE); + addKillId(MONSTERS); + addCondMinLevel(MIN_LEVEL, "31590-00.htm"); + addFactionLevel(Faction.BLACKBIRD_CLAN, 2, "31590-05.html"); + addCondCompletedQuest(Q10455_ElikiasLetter.class.getSimpleName(), "31590-00.htm"); + } + + @Override + public String onAdvEvent(String event, L2Npc npc, L2PcInstance player) + { + String htmltext = null; + final QuestState qs = getQuestState(player, false); + if (qs == null) + { + return null; + } + switch (event) + { + case "31590-02.htm": + case "31590-03.htm": + { + htmltext = event; + break; + } + case "31590-04.htm": + { + qs.startQuest(); + npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_HOPE_THEY_ARE_SAFE); + htmltext = event; + break; + } + case "31590-08.html": + { + if (qs.isCond(2) && (player.getLevel() >= MIN_LEVEL)) + { + addExpAndSp(player, 1_507_456_500, 3_617_880); + giveAdena(player, 659_250, false); + qs.exitQuest(QuestType.ONE_TIME, true); + htmltext = event; + } + else + { + htmltext = getNoQuestLevelRewardMsg(player); + } + break; + } + } + return htmltext; + } + + @Override + public String onTalk(L2Npc npc, L2PcInstance player) + { + String htmltext = getNoQuestMsg(player); + final QuestState qs = getQuestState(player, true); + + switch (qs.getState()) + { + case State.CREATED: + { + htmltext = "31590-01.htm"; + break; + } + case State.STARTED: + { + htmltext = (qs.isCond(1)) ? "31590-06.html" : "31590-07.html"; + break; + } + case State.COMPLETED: + { + htmltext = getAlreadyCompletedMsg(player); + break; + } + + } + return htmltext; + } + + @Override + public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon) + { + final QuestState qs = getQuestState(killer, false); + if ((qs != null) && qs.isCond(1) && (npc.getTitleString() == NpcStringId.ABNORMAL_MAGIC_CIRCLE)) + { + if (getRandom(100) < 5) + { + qs.setCond(2, true); + } + } + return super.onKill(npc, killer, isSummon); + } +} 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 73dad184f8..aeaf4de158 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 @@ -270,6 +270,7 @@ import quests.Q10447_TimingIsEverything.Q10447_TimingIsEverything; import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; +import quests.Q10456_OperationRescue.Q10456_OperationRescue; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; @@ -643,6 +644,7 @@ public class QuestMasterHandler Q10450_ADarkAmbition.class, Q10453_StoppingTheWindDragon.class, Q10455_ElikiasLetter.class, + Q10456_OperationRescue.class, Q10459_ASickAmbition.class, Q10460_ReturnOfTheAlligatorHunter.class, Q10472_WindsOfFateEncroachingShadows.class,