Addition of quest Operation Rescue (10456).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev 2018-10-09 12:29:14 +00:00
parent 3ea77198bb
commit adc5bbc219
48 changed files with 772 additions and 4 deletions

View File

@ -66,7 +66,6 @@
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 10418 The Immortal Pirate King
10456 Operation: Rescue
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request
10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81 10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
You haven't met Leona yet? She is in there.<br>
(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-02.htm">"What mission?"</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
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!<br>
In <font color="LEVEL">Beleth's Magic Circle</font>, Chimeras are raised free-range, probably to be used as building materials for Core Naia.<br>
And these Chimeras, they're...
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-03.htm">"They are...?"</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
But not all is lost. There seems to be a way to turn them back into human form! but this requires help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-04.htm">"I will help you then!"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.<br>
When the <font color="LEVEL">magic Circle turns yellow</font>, kill off the nearby <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters</font>. Then you'll be able to rescue those who haven't completely mutated yet!<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
In order to take on this mission, you must first build more trust with us.<br>
<font color="LEVEL">(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Still not done? Well, we still have time. But hurry!<br>
Go to <font color="LEVEL">Beleth's Magic Circle</font> immediately and wait for <font color="LEVEL">the magic circle to turn yellow</font>. That's when you kill <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters</font>. Then you can rescue those who haven't completely mutated yet!
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Scholar Devianne:<br>
Did your mission succeed? Did you rescue them?<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-08.html">"I have no idea what you're saying, but sure."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Well done! I will now ask those you saved for information about Beleth's magic.<br>
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.
</body></html>

View File

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

View File

@ -328,6 +328,7 @@ import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
import quests.Q10452_IsItEdible.Q10452_IsItEdible; import quests.Q10452_IsItEdible.Q10452_IsItEdible;
import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon;
import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter;
import quests.Q10456_OperationRescue.Q10456_OperationRescue;
import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition;
import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter;
import quests.Q10461_TappingThePowerWithin.Q10461_TappingThePowerWithin; import quests.Q10461_TappingThePowerWithin.Q10461_TappingThePowerWithin;
@ -766,6 +767,7 @@ public class QuestMasterHandler
Q10452_IsItEdible.class, Q10452_IsItEdible.class,
Q10453_StoppingTheWindDragon.class, Q10453_StoppingTheWindDragon.class,
Q10455_ElikiasLetter.class, Q10455_ElikiasLetter.class,
Q10456_OperationRescue.class,
Q10459_ASickAmbition.class, Q10459_ASickAmbition.class,
Q10460_ReturnOfTheAlligatorHunter.class, Q10460_ReturnOfTheAlligatorHunter.class,
Q10461_TappingThePowerWithin.class, Q10461_TappingThePowerWithin.class,

View File

@ -134,7 +134,6 @@
10418 The Immortal Pirate King 10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush 10423 Embryo Stronghold Ambush
10454 Final Embryo Apostle 10454 Final Embryo Apostle
10456 Operation: Rescue
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request
10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81 10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
You haven't met Leona yet? She is in there.<br>
(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-02.htm">"What mission?"</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
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!<br>
In <font color="LEVEL">Beleth's Magic Circle</font>, Chimeras are raised free-range, probably to be used as building materials for Core Naia.<br>
And these Chimeras, they're...
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-03.htm">"They are...?"</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
But not all is lost. There seems to be a way to turn them back into human form! but this requires help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-04.htm">"I will help you then!"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.<br>
When the <font color="LEVEL">magic Circle turns yellow</font>, kill off the nearby <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters</font>. Then you'll be able to rescue those who haven't completely mutated yet!<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
In order to take on this mission, you must first build more trust with us.<br>
<font color="LEVEL">(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Still not done? Well, we still have time. But hurry!<br>
Go to <font color="LEVEL">Beleth's Magic Circle</font> immediately and wait for <font color="LEVEL">the magic circle to turn yellow</font>. That's when you kill <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters</font>. Then you can rescue those who haven't completely mutated yet!
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Scholar Devianne:<br>
Did your mission succeed? Did you rescue them?<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-08.html">"I have no idea what you're saying, but sure."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Well done! I will now ask those you saved for information about Beleth's magic.<br>
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.
</body></html>

View File

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

View File

@ -327,6 +327,7 @@ import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
import quests.Q10452_IsItEdible.Q10452_IsItEdible; import quests.Q10452_IsItEdible.Q10452_IsItEdible;
import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon;
import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter;
import quests.Q10456_OperationRescue.Q10456_OperationRescue;
import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition;
import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter;
import quests.Q10462_TemperARustingBlade.Q10462_TemperARustingBlade; import quests.Q10462_TemperARustingBlade.Q10462_TemperARustingBlade;
@ -763,6 +764,7 @@ public class QuestMasterHandler
Q10452_IsItEdible.class, Q10452_IsItEdible.class,
Q10453_StoppingTheWindDragon.class, Q10453_StoppingTheWindDragon.class,
Q10455_ElikiasLetter.class, Q10455_ElikiasLetter.class,
Q10456_OperationRescue.class,
Q10459_ASickAmbition.class, Q10459_ASickAmbition.class,
Q10460_ReturnOfTheAlligatorHunter.class, Q10460_ReturnOfTheAlligatorHunter.class,
Q10462_TemperARustingBlade.class, Q10462_TemperARustingBlade.class,

View File

@ -168,7 +168,6 @@
10418 The Immortal Pirate King 10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush 10423 Embryo Stronghold Ambush
10454 Final Embryo Apostle 10454 Final Embryo Apostle
10456 Operation: Rescue
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request
10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81 10530 Kekropus' Letter, The Dragon's Transition Achieve Level 81

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
You haven't met Leona yet? She is in there.<br>
(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-02.htm">"What mission?"</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
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!<br>
In <font color="LEVEL">Beleth's Magic Circle</font>, Chimeras are raised free-range, probably to be used as building materials for Core Naia.<br>
And these Chimeras, they're...
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-03.htm">"They are...?"</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
But not all is lost. There seems to be a way to turn them back into human form! but this requires help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-04.htm">"I will help you then!"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.<br>
When the <font color="LEVEL">magic Circle turns yellow</font>, kill off the nearby <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters</font>. Then you'll be able to rescue those who haven't completely mutated yet!<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
In order to take on this mission, you must first build more trust with us.<br>
<font color="LEVEL">(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Still not done? Well, we still have time. But hurry!<br>
Go to <font color="LEVEL">Beleth's Magic Circle</font> immediately and wait for <font color="LEVEL">the magic circle to turn yellow</font>. That's when you kill <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters</font>. Then you can rescue those who haven't completely mutated yet!
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Scholar Devianne:<br>
Did your mission succeed? Did you rescue them?<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-08.html">"I have no idea what you're saying, but sure."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Well done! I will now ask those you saved for information about Beleth's magic.<br>
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.
</body></html>

View File

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

View File

@ -317,6 +317,7 @@ import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
import quests.Q10452_IsItEdible.Q10452_IsItEdible; import quests.Q10452_IsItEdible.Q10452_IsItEdible;
import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon;
import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter;
import quests.Q10456_OperationRescue.Q10456_OperationRescue;
import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition;
import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter;
import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows;
@ -741,6 +742,7 @@ public class QuestMasterHandler
Q10452_IsItEdible.class, Q10452_IsItEdible.class,
Q10453_StoppingTheWindDragon.class, Q10453_StoppingTheWindDragon.class,
Q10455_ElikiasLetter.class, Q10455_ElikiasLetter.class,
Q10456_OperationRescue.class,
Q10459_ASickAmbition.class, Q10459_ASickAmbition.class,
Q10460_ReturnOfTheAlligatorHunter.class, Q10460_ReturnOfTheAlligatorHunter.class,
Q10472_WindsOfFateEncroachingShadows.class, Q10472_WindsOfFateEncroachingShadows.class,

View File

@ -181,7 +181,6 @@
10418 The Immortal Pirate King 10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush 10423 Embryo Stronghold Ambush
10454 Final Embryo Apostle 10454 Final Embryo Apostle
10456 Operation: Rescue
10457 Kefensis' Illusion 10457 Kefensis' Illusion
10506 Diana's Request 10506 Diana's Request
10529 Ivory Tower's Research - Sea of Spores Journal 10529 Ivory Tower's Research - Sea of Spores Journal

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
You haven't met Leona yet? She is in there.<br>
(This quest is only available for characters Lv. 99 or above who have completed the "Elikia's Letter" quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-02.htm">"What mission?"</button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
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!<br>
In <font color="LEVEL">Beleth's Magic Circle</font>, Chimeras are raised free-range, probably to be used as building materials for Core Naia.<br>
And these Chimeras, they're...
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-03.htm">"They are...?"</button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Truth Seeker Devianne:<br>
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.<br>
But not all is lost. There seems to be a way to turn them back into human form! but this requires help.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-04.htm">"I will help you then!"</button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
All right, go to Beleth's Magic Circle now. Take down as many monsters as you can, and the Circle will become unstable.<br>
When the <font color="LEVEL">magic Circle turns yellow</font>, kill off the nearby <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flys, Amos Soldiers, Amos Officers, Amos Master, and Ailith Hunters</font>. Then you'll be able to rescue those who haven't completely mutated yet!<br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
In order to take on this mission, you must first build more trust with us.<br>
<font color="LEVEL">(Only characters with faction level 2 or above with the Blackbird Clan may undertake this quest.)</font><br>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Still not done? Well, we still have time. But hurry!<br>
Go to <font color="LEVEL">Beleth's Magic Circle</font> immediately and wait for <font color="LEVEL">the magic circle to turn yellow</font>. That's when you kill <font color="LEVEL">Decay Hannibals, Armor Beasts, Klein Soldiers, Disorder Warriors, Disorder Avatars, Blow Archers, Bizuards, Mutated Flies, Amos Soldiers, Amos Officers, Amos Masters, and Ailith Hunters</font>. Then you can rescue those who haven't completely mutated yet!
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Scholar Devianne:<br>
Did your mission succeed? Did you rescue them?<br>
<Button ALIGN="LEFT" ICON="NORMAL" action="bypass -h Quest Q10456_OperationRescue 31590-08.html">"I have no idea what you're saying, but sure."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Well done! I will now ask those you saved for information about Beleth's magic.<br>
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.
</body></html>

View File

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

View File

@ -270,6 +270,7 @@ import quests.Q10447_TimingIsEverything.Q10447_TimingIsEverything;
import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition; import quests.Q10450_ADarkAmbition.Q10450_ADarkAmbition;
import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon; import quests.Q10453_StoppingTheWindDragon.Q10453_StoppingTheWindDragon;
import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter; import quests.Q10455_ElikiasLetter.Q10455_ElikiasLetter;
import quests.Q10456_OperationRescue.Q10456_OperationRescue;
import quests.Q10459_ASickAmbition.Q10459_ASickAmbition; import quests.Q10459_ASickAmbition.Q10459_ASickAmbition;
import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter; import quests.Q10460_ReturnOfTheAlligatorHunter.Q10460_ReturnOfTheAlligatorHunter;
import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows; import quests.Q10472_WindsOfFateEncroachingShadows.Q10472_WindsOfFateEncroachingShadows;
@ -643,6 +644,7 @@ public class QuestMasterHandler
Q10450_ADarkAmbition.class, Q10450_ADarkAmbition.class,
Q10453_StoppingTheWindDragon.class, Q10453_StoppingTheWindDragon.class,
Q10455_ElikiasLetter.class, Q10455_ElikiasLetter.class,
Q10456_OperationRescue.class,
Q10459_ASickAmbition.class, Q10459_ASickAmbition.class,
Q10460_ReturnOfTheAlligatorHunter.class, Q10460_ReturnOfTheAlligatorHunter.class,
Q10472_WindsOfFateEncroachingShadows.class, Q10472_WindsOfFateEncroachingShadows.class,