Addition of quests 665, 666, 668, 10454 and 10846.

Contributed by Dmitri.
This commit is contained in:
MobiusDevelopment 2020-02-05 14:46:33 +00:00
parent 1437711898
commit 02b8b1403f
540 changed files with 9475 additions and 1269 deletions

View File

@ -49,5 +49,4 @@
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
10809 The Hero's Journey: Blazing Swamp
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
10845 Bloody Battle - Rescue the Smiths

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
I do not believe our paths are meant to cross here. Perhaps later down the road.<br>
(This quest can only be undertaken by characters with Lv. 101 or higher whose faction level with the Kingdom's Royal Guard is 4 or higher and Complete quest: Bloody Battle - Rescue the Smiths.)
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hurak:<br>
It's been a while since we've found the Atelia Fortress.<br>
In that time though, the fortress has become more structured, which worries me.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-02.htm">"What's the problem?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
We have to make sure no issues arise here until Leona comes back from Hellbound. We aren't doing so well, though.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-03.htm">"What happened?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hurak:<br>
The Atelia Fortress is more structured now.<br>
Until recently, they didn't have the means to get supplies or train soldiers when they isolated themselves, but now they can do all that within.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-04.htm">"How is that possible?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hurak:<br>
According to the information we got from the clan members inside the fortress, they are building different facilities on each floor.<br>
I've asked Leona for reinforcements, but they are not doing so great either. We need people who can help us. Do you think you can do it?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-05.htm">"Sure, I'll help."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
Glad to hear you'll be helping us. Devianne has already infiltrated the fortress and is in contact with our clan members.<br>
First, go find <font color="LEVEL">Glenkinchie</font> in the first stronghold. Anyone inside the fortress should be able to help you more than me.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
Devianne has already infiltrated the fortress, but you'll need to find out where she is from the people who are inside.<br>
First, go find <font color="LEVEL">Glenkinchie</font> in the first stronghold. Anyone inside the fortress should be able to help you more than me.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Devianne:<br>
Elikia said someone would come find me. I guess that was you? The fortress is becoming more systemized by the way, which worries me.<br>
We are not ready yet, and the Embryo are already expanding their forces.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34323-02.html">"Did you find out anything?"</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Devianne:<br>
I found just a while ago that the fortress is becoming more systemized.<br>
They've built a supply base, and I saw that they are distributing supplies to the soldiers within the fortress. I would love to go and destroy their supply base...<br>
Recently, I met Devianne, and she told me about the commander of the fortress.<br>
She said to create uproars around the fortress to stop the flow of their work inside... Do you think you can help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34323-03.html">"How can I help?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Devianne:<br>
It's not that difficult. You must have seen the <font color="LEVEL">supply boxes</font> laying around. They started getting supplies regularly, but they are still not organized.<br>
Please open those <font color="LEVEL">supply boxes</font> and get me the <font color="LEVEL">supplies</font>. Don't just open any box though. There are some <font color="LEVEL">traps</font> that could make it very dangerous.<br>
Oh, and one more thing! If you <font color="LEVEL">defeat</font> the <font color="LEVEL">Quartermasters</font>, the <font color="LEVEL">soldiers will be affected</font>, making it easier to steal their supplies.
</body></html>

View File

@ -0,0 +1,159 @@
/*
* 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.Q10846_BloodyBattleMeetingTheCommander;
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;
/**
* Bloody Battle - Meeting the Commander (10846)
* @URL https://l2wiki.com/Bloody_Battle_-_Meeting_the_Commander
* @author Dmitri
*/
public class Q10846_BloodyBattleMeetingTheCommander extends Quest
{
// NPCs
private static final int HURAK = 34064;
private static final int DEVIANNE = 34323;
// MiniBoss
private static final int BURNSTEIN = 26136; // Burnstein
// Item
private static final int RUNE_STONE = 39738;
private static final int SCROLL_OF_ESCAPE_BLACKBIRD_CAMPSITE = 46158;
// Misc
private static final int MIN_LEVEL = 101;
public Q10846_BloodyBattleMeetingTheCommander()
{
super(10846);
addStartNpc(HURAK);
addTalkId(HURAK, DEVIANNE);
addKillId(BURNSTEIN);
addCondMinLevel(MIN_LEVEL, "34064-00.htm");
// addCondCompletedQuest(Q10845_BloodyBattleRescueTheSmiths.class.getSimpleName(), "34064-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 "34064-04.htm":
case "34064-03.htm":
case "34064-02.htm":
case "34323-02.html":
{
htmltext = event;
break;
}
case "34064-05.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34323-03.html":
{
if (qs.isCond(2))
{
giveItems(player, RUNE_STONE, 1);
giveItems(player, SCROLL_OF_ESCAPE_BLACKBIRD_CAMPSITE, 1);
addExpAndSp(player, 7262301690L, 17429400);
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:
{
if (npc.getId() == HURAK)
{
htmltext = "34064-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case HURAK:
{
if (qs.isCond(1))
{
htmltext = "34064-06.html";
}
break;
}
case DEVIANNE:
{
if (qs.isCond(2))
{
htmltext = "34323-01.html";
}
break;
}
}
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))
{
qs.setCond(2, true);
}
}
}

View File

@ -494,6 +494,7 @@ import quests.Q10840_TimeToRecover.Q10840_TimeToRecover;
import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress;
import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley;
import quests.Q10844_BloodyBattleSeizingSupplies.Q10844_BloodyBattleSeizingSupplies;
import quests.Q10846_BloodyBattleMeetingTheCommander.Q10846_BloodyBattleMeetingTheCommander;
import quests.not_done.Q00480_AnotherLegacyOfCrumaTower;
import quests.not_done.Q00504_CompetitionForTheBanditStronghold;
import quests.not_done.Q00655_AGrandPlanForTamingWildBeasts;
@ -533,7 +534,6 @@ import quests.not_done.Q10748_MysteriousSuggestion1;
import quests.not_done.Q10749_MysteriousSuggestion2;
import quests.not_done.Q10809_TheHerosJourneyBlazingSwamp;
import quests.not_done.Q10845_BloodyBattleRescueTheSmiths;
import quests.not_done.Q10846_BloodyBattleMeetingTheCommander;
/**
* @author NosBit
@ -1058,7 +1058,7 @@ public class QuestMasterHandler
Q10843_AnomalyInTheEnchantedValley.class,
Q10844_BloodyBattleSeizingSupplies.class,
Q10845_BloodyBattleRescueTheSmiths.class, // TODO: Not done.
Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done.
Q10846_BloodyBattleMeetingTheCommander.class,
};
public static void main(String[] args)

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 Q10846_BloodyBattleMeetingTheCommander extends Quest
{
private static final int START_NPC = 34064;
public Q10846_BloodyBattleMeetingTheCommander()
{
super(10846);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@ -66,7 +66,6 @@
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
10848 Trials before the Battle
10853 To Weaken the Giants
10854 To Seize the Fortress

View File

@ -0,0 +1,5 @@
<html><body>Logart van Dyke:<br>
The Enchanted Valley has changed, so it's very dangerous.<br>
I don't think you are supposed to be here yet. Come back when you get stronger.<br>
(Only characters above Lv. 101, quest Complete Bloody Battle - Seizing Supplies and fraction KingdomΞ<6D>οΏ½ΞΏΞ<CE8F>Β½Ξ<C2BD>’ΞΒ²Ξ<C2B2>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½Ξ<C2BD>’ΞΒ¬Ξ<C2AC>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½Ξ<C2BD>οΏ½Ξ²β¬Β s Royal Guard amity level 2 or above.)
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Logart van Dyke:<br>
Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.<br>
What do you say? if you don't remember what to do, I can tell you again.
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-02.htm">"Please tell me again."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies select_mission">"I know what I should do."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Logart van Dyke:<br>
We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-03.htm">"What is it you need to do?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Logart van Dyke:<br>
We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.<br>
Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.<br>
That's about it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies select_mission">"Yes, sure."</Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Logart van Dyke:<br>
Good. Let me tell you what to do. Just choose the mission that you are capable of doing.<br>
Basic Mission - Collect <font color="LEVEL">40</font> Mutated Spirit's Souls.<br1>
Intermediate Mission - Collect <font color="LEVEL">80</font> Mutated Spirit's Souls.<br1>
Advanced Mission - Collect <font color="LEVEL">120</font> Mutated Spirit's Souls.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-06.html">"I'll take the basic mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-05.html"><font color="A62F31">"I'll take the intermediate mission."</font></Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-05a.html"><font color="A62F31">"I'll take the advanced mission."</font></Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Logart van Dyke:<br>
Good. Let me tell you what to do. Just choose the mission that you are capable of doing.<br>
Basic Mission - Collect <font color="LEVEL">40</font> Mutated Spirit's Souls.<br1>
Intermediate Mission - Collect <font color="LEVEL">80</font> Mutated Spirit's Souls.<br1>
Advanced Mission - Collect <font color="LEVEL">120</font> Mutated Spirit's Souls.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-06.html">"I'll take the basic mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-06a.html">"I'll take the intermediate mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-05a.html"><font color="A62F31">"I'll take the advanced mission."</font></Button>
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Logart van Dyke:<br>
Good. Let me tell you what to do. Just choose the mission that you are capable of doing.<br>
Basic Mission - Collect <font color="LEVEL">40</font> Mutated Spirit's Souls.<br1>
Intermediate Mission - Collect <font color="LEVEL">80</font> Mutated Spirit's Souls.<br1>
Advanced Mission - Collect <font color="LEVEL">120</font> Mutated Spirit's Souls.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-06.html">"I'll take the basic mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-06a.html">"I'll take the intermediate mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-06b.html">"I'll take the advanced mission."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Logart van Dyke:<br>
Your Unworldly Visitors Faction Level Must be 5 or above may undertake this mission.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Logart van Dyke:<br>
Your Unworldly Visitors Faction Level Must be 8 or above may undertake this mission.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Logart van Dyke:<br>
You have chosen the basic mission to collect 40 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.<br>
Are you sure you want to proceed with this mission?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-07.html">"Yes, I've made my decision."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies return">"Let me reconsider."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Logart van Dyke:<br>
You have chosen the intermediate mission to collect 80 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.<br>
Are you sure you want to proceed with this mission?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Q00845_SabotageTheEmbryoSupplies 34235-07a.html">"Yes, I've made my decision."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Q00845_SabotageTheEmbryoSupplies return">"Let me reconsider."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Logart van Dyke:<br>
You have chosen the advanced mission to collect 120 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.<br>
Are you sure you want to proceed with this mission?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-07b.html">"Yes, I've made my decision."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies return">"Let me reconsider."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Fairy Mimyu:<br>
Good. Left me explain the details. Go to the <font color="LEVEL">Garden of Spirits</font>, defeat the <font color="LEVEL">Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero</font>, and put them to rest.<br>
As evidence, please bring back <font color="LEVEL">40 Mutated Spirit's Souls</font>. It should be manageable.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Logart van Dyke:<br>
Good. Left me explain the details. Go to the <font color="LEVEL">Garden of Spirits</font>, defeat the <font color="LEVEL">Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero</font>, and put them to rest.<br>
As evidence, please bring back <font color="LEVEL">80 Mutated Spirit's Souls</font>. It should be manageable.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Logart van Dyke:<br>
Good. Left me explain the details. Go to the <font color="LEVEL">Garden of Spirits</font>, defeat the <font color="LEVEL">Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero</font>, and put them to rest.<br>
As evidence, please bring back <font color="LEVEL">120 Mutated Spirit's Souls</font>. It should be manageable.
</body></html>y></html>

View File

@ -0,0 +1,3 @@
<html><body>Logart van Dyke:<br>
Go to the <font color="LEVEL">Garden of Spirits</font> and defeat all type monsters until you collect <font color="LEVEL">40 Mutated Spirit's Souls</font>.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Logart van Dyke:<br>
Go to the <font color="LEVEL">Garden of Spirits</font> and defeat all type monsters until you collect <font color="LEVEL">80 Mutated Spirit's Souls</font>.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Logart van Dyke:<br>
Go to the <font color="LEVEL">Garden of Spirits</font> and defeat all type monsters until you collect <font color="LEVEL">120 Mutated Spirit's Souls</font>.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Logart van Dyke:<br>
Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.<br>
I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00845_SabotageTheEmbryoSupplies 34235-10.html">"I did my best to earn your trust."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Logart van Dyke:<br>
Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.<br>
As long as you don't forget us, that is. We thank you for your hard work.
</body></html>

View File

@ -0,0 +1,356 @@
/*
* 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.Q00845_SabotageTheEmbryoSupplies;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.Faction;
import org.l2jmobius.gameserver.enums.QuestType;
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;
import quests.Q10844_BloodyBattleSeizingSupplies.Q10844_BloodyBattleSeizingSupplies;
/**
* Sabotage the Embryo Supplies (845)
* @URL https://l2wiki.com/Sabotage_the_Embryo_Supplies
* @author Dmitri
*/
public class Q00845_SabotageTheEmbryoSupplies extends Quest
{
// NPCs
private static final int LOGART_VAN_DYKE = 34235;
// Monsters
private static final int[] MONSTERS =
{
23589, //
23507, //
23506, //
23505, //
23508, //
23537, //
23538, //
23509, //
23512, //
23511 //
};
// Items
private static final int EMBRYO_SUPPLIES = 47197;
// Rewards
private static final int BASIC_SUPPLY_BOX = 47175; // Kingdom's Royal Guard Basic Supply Box Atelia Fortress
private static final int INTERMEDIATE_SUPPLY_BOX = 47176; // Kingdom's Royal Guard Intermediate Supply Box Atelia Fortress
private static final int ADVANCED_SUPPLY_BOX = 47177; // Kingdom's Royal Guard Advanced Supply Box Atelia Fortress
// Misc
private static final int MIN_LEVEL = 101;
public Q00845_SabotageTheEmbryoSupplies()
{
super(845);
addStartNpc(LOGART_VAN_DYKE);
addTalkId(LOGART_VAN_DYKE);
addKillId(MONSTERS);
registerQuestItems(EMBRYO_SUPPLIES);
addCondMinLevel(MIN_LEVEL, "34235-00.htm");
addCondCompletedQuest(Q10844_BloodyBattleSeizingSupplies.class.getSimpleName(), "34235-00.htm");
addFactionLevel(Faction.KINGDOM_ROYAL_GUARDS, 2, "34235-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 "34235-02.htm":
case "34235-03.htm":
case "34235-04.htm":
case "34235-04a.htm":
case "34235-04b.htm":
case "34235-06.html":
case "34235-06a.html":
case "34235-06b.html":
{
htmltext = event;
break;
}
case "select_mission":
{
qs.startQuest();
if ((player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) >= 5) && (player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) < 8))
{
htmltext = "34235-04a.htm";
break;
}
else if (player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) >= 8)
{
htmltext = "34235-04b.htm";
break;
}
htmltext = "34235-04.htm";
break;
}
case "return":
{
if ((player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) >= 5) && (player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) < 8))
{
htmltext = "34235-04a.htm";
break;
}
else if (player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) >= 8)
{
htmltext = "34235-04b.htm";
break;
}
htmltext = "34235-04.htm";
break;
}
case "34235-07.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34235-07a.html":
{
qs.setCond(3, true);
htmltext = event;
break;
}
case "34235-07b.html":
{
qs.setCond(4, true);
htmltext = event;
break;
}
case "34235-10.html":
{
final int chance = getRandom(100);
switch (qs.getCond())
{
case 5:
{
if ((getQuestItemsCount(player, EMBRYO_SUPPLIES) == 40) && (player.getLevel() >= MIN_LEVEL))
{
if (chance < 2)
{
giveItems(player, ADVANCED_SUPPLY_BOX, 1);
}
else if (chance < 20)
{
giveItems(player, INTERMEDIATE_SUPPLY_BOX, 1);
}
else if (chance < 100)
{
giveItems(player, BASIC_SUPPLY_BOX, 1);
}
addExpAndSp(player, 18155754360L, 18155700);
addFactionPoints(player, Faction.KINGDOM_ROYAL_GUARDS, 100);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
break;
}
case 6:
{
if ((getQuestItemsCount(player, EMBRYO_SUPPLIES) == 80) && (player.getLevel() >= MIN_LEVEL))
{
if (chance < 2)
{
giveItems(player, ADVANCED_SUPPLY_BOX, 1);
}
else if (chance < 20)
{
giveItems(player, BASIC_SUPPLY_BOX, 1);
}
else if (chance < 100)
{
giveItems(player, INTERMEDIATE_SUPPLY_BOX, 1);
}
addExpAndSp(player, 36311508720L, 36311400);
addFactionPoints(player, Faction.KINGDOM_ROYAL_GUARDS, 200);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
break;
}
case 7:
{
if ((getQuestItemsCount(player, EMBRYO_SUPPLIES) == 120) && (player.getLevel() >= MIN_LEVEL))
{
if (chance < 2)
{
giveItems(player, BASIC_SUPPLY_BOX, 1);
}
else if (chance < 20)
{
giveItems(player, INTERMEDIATE_SUPPLY_BOX, 1);
}
else if (chance < 100)
{
giveItems(player, ADVANCED_SUPPLY_BOX, 1);
}
addExpAndSp(player, 54467263080L, 54467100);
addFactionPoints(player, Faction.KINGDOM_ROYAL_GUARDS, 300);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
break;
}
}
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 = "34235-01.htm";
// fallthrough?
}
case State.STARTED:
{
switch (qs.getCond())
{
case 1:
{
if ((player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) >= 5) && (player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) < 8))
{
htmltext = "34235-04a.htm";
break;
}
else if (player.getFactionLevel(Faction.KINGDOM_ROYAL_GUARDS) >= 8)
{
htmltext = "34235-04b.htm";
break;
}
htmltext = "34235-04.htm";
break;
}
case 2:
{
htmltext = "34235-08.html";
break;
}
case 3:
{
htmltext = "34235-08a.html";
break;
}
case 4:
{
htmltext = "34235-08b.html";
break;
}
case 5:
case 6:
case 7:
{
htmltext = "34235-09.html";
break;
}
}
break;
}
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
}
else
{
qs.setState(State.CREATED);
htmltext = "34235-01.htm";
}
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.getCond() > 1) && player.isInsideRadius3D(npc, Config.ALT_PARTY_RANGE))
{
switch (qs.getCond())
{
case 2:
{
if (giveItemRandomly(player, npc, EMBRYO_SUPPLIES, 1, 40, 0.5, true))
{
qs.setCond(5, true);
}
break;
}
case 3:
{
if (giveItemRandomly(player, npc, EMBRYO_SUPPLIES, 1, 80, 0.5, true))
{
qs.setCond(6, true);
}
break;
}
case 4:
{
if (giveItemRandomly(player, npc, EMBRYO_SUPPLIES, 1, 120, 0.5, true))
{
qs.setCond(7, true);
}
break;
}
}
}
}
}

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
I do not believe our paths are meant to cross here. Perhaps later down the road.<br>
(This quest can only be undertaken by characters with Lv. 101 or higher whose faction level with the Kingdom's Royal Guard is 4 or higher and Complete quest: Bloody Battle - Rescue the Smiths.)
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hurak:<br>
It's been a while since we've found the Atelia Fortress.<br>
In that time though, the fortress has become more structured, which worries me.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-02.htm">"What's the problem?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
We have to make sure no issues arise here until Leona comes back from Hellbound. We aren't doing so well, though.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-03.htm">"What happened?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hurak:<br>
The Atelia Fortress is more structured now.<br>
Until recently, they didn't have the means to get supplies or train soldiers when they isolated themselves, but now they can do all that within.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-04.htm">"How is that possible?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Hurak:<br>
According to the information we got from the clan members inside the fortress, they are building different facilities on each floor.<br>
I've asked Leona for reinforcements, but they are not doing so great either. We need people who can help us. Do you think you can do it?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34064-05.htm">"Sure, I'll help."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
Glad to hear you'll be helping us. Devianne has already infiltrated the fortress and is in contact with our clan members.<br>
First, go find <font color="LEVEL">Glenkinchie</font> in the first stronghold. Anyone inside the fortress should be able to help you more than me.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hurak:<br>
Devianne has already infiltrated the fortress, but you'll need to find out where she is from the people who are inside.<br>
First, go find <font color="LEVEL">Glenkinchie</font> in the first stronghold. Anyone inside the fortress should be able to help you more than me.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Devianne:<br>
Elikia said someone would come find me. I guess that was you? The fortress is becoming more systemized by the way, which worries me.<br>
We are not ready yet, and the Embryo are already expanding their forces.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34323-02.html">"Did you find out anything?"</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Devianne:<br>
I found just a while ago that the fortress is becoming more systemized.<br>
They've built a supply base, and I saw that they are distributing supplies to the soldiers within the fortress. I would love to go and destroy their supply base...<br>
Recently, I met Devianne, and she told me about the commander of the fortress.<br>
She said to create uproars around the fortress to stop the flow of their work inside... Do you think you can help me?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q10846_BloodyBattleMeetingTheCommander 34323-03.html">"How can I help?"</Button>
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Devianne:<br>
It's not that difficult. You must have seen the <font color="LEVEL">supply boxes</font> laying around. They started getting supplies regularly, but they are still not organized.<br>
Please open those <font color="LEVEL">supply boxes</font> and get me the <font color="LEVEL">supplies</font>. Don't just open any box though. There are some <font color="LEVEL">traps</font> that could make it very dangerous.<br>
Oh, and one more thing! If you <font color="LEVEL">defeat</font> the <font color="LEVEL">Quartermasters</font>, the <font color="LEVEL">soldiers will be affected</font>, making it easier to steal their supplies.
</body></html>

View File

@ -0,0 +1,161 @@
/*
* 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.Q10846_BloodyBattleMeetingTheCommander;
import org.l2jmobius.gameserver.enums.Faction;
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;
/**
* Bloody Battle - Meeting the Commander (10846)
* @URL https://l2wiki.com/Bloody_Battle_-_Meeting_the_Commander
* @author Dmitri
*/
public class Q10846_BloodyBattleMeetingTheCommander extends Quest
{
// NPCs
private static final int HURAK = 34064;
private static final int DEVIANNE = 34323;
// MiniBoss
private static final int BURNSTEIN = 26136; // Burnstein
// Item
private static final int RUNE_STONE = 39738;
private static final int SCROLL_OF_ESCAPE_BLACKBIRD_CAMPSITE = 46158;
// Misc
private static final int MIN_LEVEL = 101;
public Q10846_BloodyBattleMeetingTheCommander()
{
super(10846);
addStartNpc(HURAK);
addTalkId(HURAK, DEVIANNE);
addKillId(BURNSTEIN);
addCondMinLevel(MIN_LEVEL, "34064-00.htm");
// addCondCompletedQuest(Q10845_BloodyBattleRescueTheSmiths.class.getSimpleName(), "34064-00.htm");
addFactionLevel(Faction.KINGDOM_ROYAL_GUARDS, 4, "34064-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 "34064-04.htm":
case "34064-03.htm":
case "34064-02.htm":
case "34323-02.html":
{
htmltext = event;
break;
}
case "34064-05.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "34323-03.html":
{
if (qs.isCond(2))
{
giveItems(player, RUNE_STONE, 1);
giveItems(player, SCROLL_OF_ESCAPE_BLACKBIRD_CAMPSITE, 1);
addExpAndSp(player, 7262301690L, 17429400);
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:
{
if (npc.getId() == HURAK)
{
htmltext = "34064-01.htm";
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case HURAK:
{
if (qs.isCond(1))
{
htmltext = "34064-06.html";
}
break;
}
case DEVIANNE:
{
if (qs.isCond(2))
{
htmltext = "34323-01.html";
}
break;
}
}
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))
{
qs.setCond(2, true);
}
}
}

View File

@ -199,6 +199,7 @@ import quests.Q00833_DevilsTreasureTauti.Q00833_DevilsTreasureTauti;
import quests.Q00835_PitiableMelisa.Q00835_PitiableMelisa;
import quests.Q00842_CaptiveDemons.Q00842_CaptiveDemons;
import quests.Q00844_GiantsTreasure.Q00844_GiantsTreasure;
import quests.Q00845_SabotageTheEmbryoSupplies.Q00845_SabotageTheEmbryoSupplies;
import quests.Q00901_HowLavasaurusesAreMade.Q00901_HowLavasaurusesAreMade;
import quests.Q00902_ReclaimOurEra.Q00902_ReclaimOurEra;
import quests.Q00903_TheCallOfAntharas.Q00903_TheCallOfAntharas;
@ -474,6 +475,7 @@ import quests.Q10840_TimeToRecover.Q10840_TimeToRecover;
import quests.Q10841_DeepInsideAteliaFortress.Q10841_DeepInsideAteliaFortress;
import quests.Q10843_AnomalyInTheEnchantedValley.Q10843_AnomalyInTheEnchantedValley;
import quests.Q10844_BloodyBattleSeizingSupplies.Q10844_BloodyBattleSeizingSupplies;
import quests.Q10846_BloodyBattleMeetingTheCommander.Q10846_BloodyBattleMeetingTheCommander;
import quests.Q10849_TrialsForAdaptation.Q10849_TrialsForAdaptation;
import quests.Q10851_ElvenBotany.Q10851_ElvenBotany;
import quests.Q10852_TheMotherTreeRevivalProject.Q10852_TheMotherTreeRevivalProject;
@ -503,7 +505,6 @@ import quests.not_done.Q00839_RequestFromTheUnworldlyVisitors;
import quests.not_done.Q00840_RequestFromTheKingdomsRoyalGuard;
import quests.not_done.Q00841_ContaminationContainment;
import quests.not_done.Q00843_GiantEvolutionControl;
import quests.not_done.Q00845_SabotageTheEmbryoSupplies;
import quests.not_done.Q00846_BuildingUpStrength;
import quests.not_done.Q00910_RedLibraRequestLv1;
import quests.not_done.Q00911_RedLibraRequestLv2;
@ -523,7 +524,6 @@ import quests.not_done.Q10506_DianasRequest;
import quests.not_done.Q10748_MysteriousSuggestion1;
import quests.not_done.Q10749_MysteriousSuggestion2;
import quests.not_done.Q10845_BloodyBattleRescueTheSmiths;
import quests.not_done.Q10846_BloodyBattleMeetingTheCommander;
import quests.not_done.Q10848_TrialsBeforeTheBattle;
import quests.not_done.Q10853_ToWeakenTheGiants;
import quests.not_done.Q10854_ToSeizeTheFortress;
@ -743,7 +743,7 @@ public class QuestMasterHandler
Q00842_CaptiveDemons.class,
Q00843_GiantEvolutionControl.class, // TODO: Not done.
Q00844_GiantsTreasure.class,
Q00845_SabotageTheEmbryoSupplies.class, // TODO: Not done.
Q00845_SabotageTheEmbryoSupplies.class,
Q00846_BuildingUpStrength.class, // TODO: Not done.
Q00901_HowLavasaurusesAreMade.class,
Q00902_ReclaimOurEra.class,
@ -1038,7 +1038,7 @@ public class QuestMasterHandler
Q10843_AnomalyInTheEnchantedValley.class,
Q10844_BloodyBattleSeizingSupplies.class,
Q10845_BloodyBattleRescueTheSmiths.class, // TODO: Not done.
Q10846_BloodyBattleMeetingTheCommander.class, // TODO: Not done.
Q10846_BloodyBattleMeetingTheCommander.class,
Q10848_TrialsBeforeTheBattle.class, // TODO: Not done.
Q10849_TrialsForAdaptation.class,
Q10851_ElvenBotany.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 Q00845_SabotageTheEmbryoSupplies extends Quest
{
private static final int START_NPC = 34235;
public Q00845_SabotageTheEmbryoSupplies()
{
super(845);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

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 Q10846_BloodyBattleMeetingTheCommander extends Quest
{
private static final int START_NPC = 34064;
public Q10846_BloodyBattleMeetingTheCommander()
{
super(10846);
addStartNpc(START_NPC);
addTalkId(START_NPC);
addCondMinLevel(Config.PLAYER_MAXIMUM_LEVEL, getNoQuestMsg(null));
}
}

View File

@ -1,9 +1,6 @@
504 Competition for the Bandit Stronghold
655 A Grand Plan for Taming Wild Beasts
665 Basic Training for Hunter Guild Member
666 Knowledgeable Hunter Guild Member
667 How to Cover Shilen's Eyes
668 Fight with Giants
669 Intense Fight against Dragon
671 Path to Finding the Past
672 Embryo the Archenemy
@ -91,7 +88,6 @@
840 Request from the Kingdom's Royal Guard
841 Contamination Containment
843 Giant Evolution Control
845 Sabotage the Embryo Supplies
846 Building up Strength
861 Kain's Choice
910 Red Libra Request - Isle of Souls
@ -122,7 +118,6 @@
10396 Witch of Spores
10418 The Immortal Pirate King
10423 Embryo Stronghold Ambush
10454 Final Embryo Apostle
10457 Kefensis' Illusion
10506 Diana's Request
10535 Blacksmith's Soul-awakening Weapon - 3
@ -135,7 +130,6 @@
10748 Mysterious Suggestion - 1
10749 Mysterious Suggestion - 2
10845 Bloody Battle - Rescue the Smiths
10846 Bloody Battle - Meeting the Commander
10848 Trials before the Battle
10853 To Weaken the Giants
10854 To Seize the Fortress

View File

@ -0,0 +1,5 @@
<html><body>Truth Seeker Devianne:<br>
The Enchanted Valley has changed, so it's very dangerous.<br>
I don't think you are supposed to be here yet. Come back when you get stronger.<br>
(Only characters above Lv. 85 and above.)
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
Ah, adventurer! There you are again. How about helping us some more? if you do, you can deepen the mutual trust with us and Ferin.<br>
What do you say? if you don't remember what to do, I can tell you again.
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-02.htm">"Please tell me again."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember select_mission">"I know what I should do."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
We've begun an investigation in the Garden of Spirits starting from here. However, we are being threatened by the spirits there, so something must be done.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-03.htm">"What is it you need to do?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
We know of a way to defeat those spirits, at least temporarily. This way, we'll be able to put the spirits at rest, even if it's just for a little while.<br>
Of course, we will give you a reward for your help. And there is one more thing. While you are helping us, you'll build trust with us. The more we trust you, the more rewards we will give you, and there are some secret missions that we only give to those we trust.<br>
That's about it.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember select_mission">"Yes, sure."</Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Truth Seeker Devianne:<br>
Good. Let me tell you what to do. Just choose the mission that you are capable of doing.<br>
Basic Mission - Collect <font color="LEVEL">1</font> Mutated Spirit's Souls.<br1>
Intermediate Mission - Collect <font color="LEVEL">2</font> Mutated Spirit's Souls.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-06.html">"I'll take the basic mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-05.html"><font color="A62F31">"I'll take the intermediate mission."</font></Button>
</body></html>

View File

@ -0,0 +1,7 @@
<html><body>Truth Seeker Devianne:<br>
Good. Let me tell you what to do. Just choose the mission that you are capable of doing.<br>
Basic Mission - Collect <font color="LEVEL">1</font> Mutated Spirit's Souls.<br1>
Intermediate Mission - Collect <font color="LEVEL">2</font> Mutated Spirit's Souls.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-06.html">"I'll take the basic mission."</Button>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-06a.html">"I'll take the intermediate mission."</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Truth Seeker Devianne:<br>
Your Unworldly Visitors Faction Level Must be 4 or above may undertake this mission.
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
You have chosen the basic mission to collect 1 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.<br>
Are you sure you want to proceed with this mission?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-07.html">"Yes, I've made my decision."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember return">"Let me reconsider."</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Truth Seeker Devianne:<br>
You have chosen the intermediate mission to collect 2 Mutated Spirit's Souls. Once you have selected the difficulty of the mission, you must meet the requirements in order to complete it. Choose wisely.<br>
Are you sure you want to proceed with this mission?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Q00665_BasicTrainingForHunterGuildMember 34267-07a.html">"Yes, I've made my decision."</Button>
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h Q00665_BasicTrainingForHunterGuildMember return">"Let me reconsider."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Good. Left me explain the details. Go to the <font color="LEVEL">Garden of Spirits</font>, defeat the <font color="LEVEL">Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero</font>, and put them to rest.<br>
As evidence, please bring back <font color="LEVEL">1 Mutated Spirit's Souls</font>. It should be manageable.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Good. Left me explain the details. Go to the <font color="LEVEL">Garden of Spirits</font>, defeat the <font color="LEVEL">Kerberos Lager, Kerberos Fort, Kerberos Nero, Fury Sylph Barrena, Fury Sylph Labido, Fury Sylph Purka, Fury Kerberos Leger, and Fury Kerberos Nero</font>, and put them to rest.<br>
As evidence, please bring back <font color="LEVEL">2 Mutated Spirit's Souls</font>. It should be manageable.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Truth Seeker Devianne:<br>
Go to the <font color="LEVEL">Garden of Spirits</font> and defeat all type monsters until you collect <font color="LEVEL">1 Mutated Spirit's Souls</font>.
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Truth Seeker Devianne:<br>
Go to the <font color="LEVEL">Garden of Spirits</font> and defeat all type monsters until you collect <font color="LEVEL">2 Mutated Spirit's Souls</font>.
</body></html>

View File

@ -0,0 +1,5 @@
<html><body>Truth Seeker Devianne:<br>
Toy have collected all of the Mutated Spirit's Souls. You have completed the mission successfully.<br>
I would like to congratulate you on completing the mission. Here's your reward. If you have a Faction Amity Token, I can give You more rewards.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00665_BasicTrainingForHunterGuildMember 34267-10.html">"I did my best to earn your trust."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Truth Seeker Devianne:<br>
Here is your reward. This will also help to improve the trust between you and us at the Unworldly Visitors.<br>
As long as you don't forget us, that is. We thank you for your hard work.
</body></html>

View File

@ -0,0 +1,271 @@
/*
* 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.Q00665_BasicTrainingForHunterGuildMember;
import java.util.HashSet;
import java.util.Set;
import org.l2jmobius.gameserver.enums.Faction;
import org.l2jmobius.gameserver.enums.QuestSound;
import org.l2jmobius.gameserver.enums.QuestType;
import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.NpcLogListHolder;
import org.l2jmobius.gameserver.model.quest.Quest;
import org.l2jmobius.gameserver.model.quest.QuestState;
import org.l2jmobius.gameserver.model.quest.State;
import org.l2jmobius.gameserver.network.NpcStringId;
/**
* Basic Training for Hunter Guild Member (665)
* @URL https://l2wiki.com/Basic_Training_for_Hunter_Guild_Member
* @author Dmitri
*/
public class Q00665_BasicTrainingForHunterGuildMember extends Quest
{
// NPCs
private static final int ARCTURUS = 34267;
// BOSS
private static final int[] BOSS =
{
19253, // Zellaka
19254, // Pelline
19255, // Kalios
26102, // Dark Rider
26136, // Burnstein
25876, // Maliss
25877 // Isadora
};
// Misc
private static final boolean PARTY_QUEST = true;
private static final int MIN_LEVEL = 85;
public Q00665_BasicTrainingForHunterGuildMember()
{
super(665);
addStartNpc(ARCTURUS);
addTalkId(ARCTURUS);
addKillId(BOSS);
addCondMinLevel(MIN_LEVEL, "34267-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 "34267-02.htm":
case "34267-03.htm":
case "34267-04.htm":
case "34267-04a.htm":
case "34267-06.html":
case "34267-06a.html":
{
htmltext = event;
break;
}
case "select_mission":
{
qs.startQuest();
if (player.getFactionLevel(Faction.HUNTERS_GUILD) < 4)
{
htmltext = "34267-04a.htm";
break;
}
htmltext = "34267-04.htm";
break;
}
case "return":
{
if (player.getFactionLevel(Faction.HUNTERS_GUILD) < 4)
{
htmltext = "34267-04a.htm";
break;
}
htmltext = "34267-04.htm";
break;
}
case "34267-07.html":
{
qs.setCond(2, true);
htmltext = event;
break;
}
case "34267-07a.html":
{
qs.setCond(3, true);
htmltext = event;
break;
}
case "34267-10.html":
{
switch (qs.getCond())
{
case 4:
{
if (player.getLevel() >= MIN_LEVEL)
{
addFactionPoints(player, Faction.HUNTERS_GUILD, 100);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
break;
}
case 5:
{
if (player.getLevel() >= MIN_LEVEL)
{
addFactionPoints(player, Faction.HUNTERS_GUILD, 150);
qs.exitQuest(QuestType.DAILY, true);
htmltext = event;
}
else
{
htmltext = getNoQuestLevelRewardMsg(player);
}
break;
}
}
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 = "34267-01.htm";
}
case State.STARTED:
{
switch (qs.getCond())
{
case 1:
{
if (player.getFactionLevel(Faction.HUNTERS_GUILD) < 4)
{
htmltext = "34267-04a.htm";
break;
}
htmltext = "34267-04.htm";
break;
}
case 2:
{
htmltext = "34267-08.html";
break;
}
case 3:
{
htmltext = "34267-08a.html";
break;
}
case 4:
case 5:
{
htmltext = "34267-09.html";
break;
}
}
break;
}
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
}
else
{
qs.setState(State.CREATED);
htmltext = "34267-01.htm";
}
break;
}
}
return htmltext;
}
@Override
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
{
final QuestState qs = PARTY_QUEST ? getRandomPartyMemberState(killer, -1, 3, npc) : getQuestState(killer, false);
if ((qs != null) && (qs.getCond() > 1))
{
switch (qs.getCond())
{
case 2:
{
final int killedGhosts = qs.getInt("AncientGhosts") + 1;
qs.set("AncientGhosts", killedGhosts);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (killedGhosts >= 1)
{
qs.setCond(4, true);
}
break;
}
case 3:
{
final int killedGhosts = qs.getInt("AncientGhosts") + 1;
qs.set("AncientGhosts", killedGhosts);
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (killedGhosts >= 2)
{
qs.setCond(5, true);
}
break;
}
}
}
return super.onKill(npc, killer, isSummon);
}
@Override
public Set<NpcLogListHolder> getNpcLogList(PlayerInstance player)
{
final QuestState qs = getQuestState(player, false);
if ((qs != null) && (qs.getCond() > 1))
{
final Set<NpcLogListHolder> holder = new HashSet<>();
holder.add(new NpcLogListHolder(NpcStringId.COMPLETE_BASIC_TRAINING.getId(), true, qs.getInt("AncientGhosts")));
return holder;
}
return super.getNpcLogList(player);
}
}

View File

@ -0,0 +1,5 @@
<html><body>Hunters Guild Member Colin:<br>
What is it? Do you want to check new missions of the Hunter Guild?<br>
Come on. We are always in high demand.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 30703-02.htm">Ask about the mission</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Hunters Guild Member Colin:<br>
You know that there are areas called Seeds in Gracia, don't you?<br>
There are four Seeds, Destruction, Infinity, Annihilation, and Hellfire. Each Seed is guarded by a Seed Lord.<br>
The Seed Lords are not ordinary people... Shilen herself appointed them. In fact, their roles are similar to those of Anakim and Lilith. All of them work to strengthen Shilen's power.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 30703-03.htm">"Really?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Hunters Guild Member Colin:<br>
Are you belittling the Hunter Guild's intelligence? It's all true!<br>
What matters is that the activities of these Seed Lords affect Shilen in some way. So, we have agreed to eliminate the Seed Lords.<br>
With whom? With both Aden and Gracia, of course.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 30703-04.htm">Ask about the agreement</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild Member Colin:<br>
The Hunter Guild has kept close ties with the Aden Court. According to the mutual defense agreement between Aden and Gracia, we have been assigned to defeat <font color="LEVEL">Tiat, Tauti, Istina, and Ekimus</font>. Some of them are already in the Extreme state. We have to eliminate them. Can you handle it?
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild Member Colin:<br>
You haven't left yet. The Gracia Continent is far from the Aden Continent, but it's not impossible to get there. Go to Gracia and defeat Tiat, Tauti, Istina, and Ekimus. Make sure to defeat Tauti and Istina, which are in the Extreme state.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Member Colin:<br>
Did you give a good lesson to the Lord of Seeds?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 30703-07.html">"I complete it all"</Button>
</body></htm>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild Member Colin:<br>
Good job. It will help the Hunter Guild take a lead in the Gracia Continent.
</body></htm>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Member<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. 85 or above and Faction level 1 or above with the Hunters Guild may undertake this quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
What's your business? I'm busy with dealing with the Seed Lords that control the seeds in Gracia. Come back later. Ah, no, wait. If you have time, could you help me?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 34267-02.htm">Continue to listen</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
There are areas called Ξ<>οΏ½Ξ²β¬οΏ½Ξ<C2BD>οΏ½Ξ²β¬Β Ξ<C2A0>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½Ξ<C2BD>’ΞΒ¬Ξ<C2AC>οΏ½Ξ²β¬Ξ†Ξ<E280A0>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½SeedsΞ<73>οΏ½Ξ²β¬οΏ½Ξ<C2BD>οΏ½Ξ²β¬Β Ξ<C2A0>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½Ξ<C2BD>’ΞΒ¬Ξ<C2AC>οΏ½Ξ²β¬β„ΆΞ<CE86>Ξ<EFBFBD>Ξ<EFBFBD>οΏ½ΞΒ½ in Gracia. They include the Seed of Destruction, the Seed of Hellfire, the Seed of Annihilation, and the Seed of Infinity. Goddess Shilen has appointed four lords to rule them. Did you know this?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 34267-03.htm">No</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
Well, only a few do. What matters is that the more active these lords become, the more easily Shilen can use her power. So, we're focusing on nullifying the Seed Lords.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 34267-04.htm">Ask if your mission is to defeat the Seed Lords</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild President Arcturus:<br>
Yes. Our goal is to eliminate the Seed Lords and weaken their forces. It's useless to provoke weak ones. Your targets are the Seed Lords in the Extreme state. Defeat <font color="LEVEL">Tiat, Tauti, Istina, and Ekimus</font> and return to me.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
You haven't left yet? I told you which Seed Lords you have to deal with.<br>
They are Tiat, Tauti, Istina, and Ekimus. Make sure to eliminate them in the Extreme state.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
Did you give a good lesson to the Lord of Seeds?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00666_HunterGuildMembersKnowledge 34267-07.html">"I complete it all"</Button>
</body></htm>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild President Arcturus:<br>
Good job. It will help the Hunter Guild take a lead in the Gracia Continent.
</body></htm>

View File

@ -0,0 +1,210 @@
/*
* 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.Q00666_HunterGuildMembersKnowledge;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.Faction;
import org.l2jmobius.gameserver.enums.QuestType;
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;
/**
* Knowledgeable Hunter Guild Member (666)
* @URL https://l2wiki.com/Knowledgeable_Hunter_Guild_Member
* @author Dmitri
*/
public class Q00666_HunterGuildMembersKnowledge extends Quest
{
// NPCs
private static final int ARCTURUS = 34267;
private static final int COLIN = 30703;
// BOSS
private static final int[] BOSES =
{
3477, // Reinforced Super Kat the Cat
3479, // Darkened Super Feline Queen
25933, // Garden Patrol Captain
3481, // Control-crazed Mew the Cat
25937, // Spicula Negative
3473, // Omega Golem
29163, // Tiat (attack type)
25886, // Houpon the Warden Overseer
25902, // Gigantic Golem (96 lvl)
25887, // Crook the Mad
26348, // Summoned Garp
26347, // Summoned Harpas
26349, // Summoned Moricks
26431, // Avenger Alusion
26432, // Avenger Graff
26312, // Lithra
26436, // Watcher Setheth
26435, // Watcher Tristan
25946, // Antharas' Herald Komabor
25949, // Lindvior's Herald Numa
26442, // Mad Cullan
25922, // Nerva Chief Turakan
26005, // Nerva Orc Nergatt
26001, // Amden Orc Turation
25929, // Tegaffe
25931, // Theor
25948, // Valakas' Herald Potigia
25983, // Varkaron
25982, // Varmonia
25957, // Vengeful Agarez
25961, // Vengeful Agonia
25960, // Vengeful Edaire
25956, // Vengeful Eligos
25958, // Vengeful Lerazia
25959, // Vengeful Oretross
26441, // Witch Moira
26440, // Arrogant Lebruum
26439, // Ferocious Valac
26438, // Berserker Tabris
26437, // Berserker Zetahl
29374, // Cyrax
26433, // Demon Venoma
26434, // Fiend Sarboth
26443, // Akrikhin Charon
26444, // Scorpion King Votan
25876, //
25877 //
};
// Misc
private static final int MIN_LEVEL = 85;
public Q00666_HunterGuildMembersKnowledge()
{
super(666);
addStartNpc(ARCTURUS, COLIN);
addTalkId(ARCTURUS, COLIN);
addKillId(BOSES);
addCondMinLevel(MIN_LEVEL, "34267-00.htm");
addFactionLevel(Faction.HUNTERS_GUILD, 1, "34267-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 "30703-02.htm":
case "30703-03.htm":
case "34267-02.htm":
case "34267-03.htm":
{
htmltext = event;
break;
}
case "30703-04.htm":
case "34267-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30703-07.html":
case "34267-07.html":
{
addFactionPoints(player, Faction.HUNTERS_GUILD, 150);
qs.exitQuest(QuestType.DAILY, 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:
{
switch (npc.getId())
{
case COLIN:
{
htmltext = "30703-01.htm";
break;
}
case ARCTURUS:
{
htmltext = "34267-01.htm";
break;
}
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case COLIN:
{
htmltext = (qs.isCond(1)) ? "30703-05.html" : "30703-06.html";
break;
}
case ARCTURUS:
{
htmltext = (qs.isCond(1)) ? "34267-05.html" : "34267-06.html";
break;
}
}
}
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
break;
}
qs.setState(State.CREATED);
}
}
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

@ -0,0 +1,5 @@
<html><body>Hunters Guild Member Colin:<br>
What is it? Do you want to check new missions of the Hunter Guild?<br>
Come on. We are always in high demand.<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00668_ABattleWithTheGiants 30703-02.htm">Ask about the mission</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Hunters Guild Member Colin:<br>
You know that there are areas called Seeds in Gracia, don't you?<br>
There are four Seeds, Destruction, Infinity, Annihilation, and Hellfire. Each Seed is guarded by a Seed Lord.<br>
The Seed Lords are not ordinary people... Shilen herself appointed them. In fact, their roles are similar to those of Anakim and Lilith. All of them work to strengthen Shilen's power.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00668_ABattleWithTheGiants 30703-03.htm">"Really?"</Button>
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Hunters Guild Member Colin:<br>
Are you belittling the Hunter Guild's intelligence? It's all true!<br>
What matters is that the activities of these Seed Lords affect Shilen in some way. So, we have agreed to eliminate the Seed Lords.<br>
With whom? With both Aden and Gracia, of course.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00668_ABattleWithTheGiants 30703-04.htm">Ask about the agreement</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild Member Colin:<br>
The Hunter Guild has kept close ties with the Aden Court. According to the mutual defense agreement between Aden and Gracia, we have been assigned to defeat <font color="LEVEL">Tiat, Tauti, Istina, and Ekimus</font>. Some of them are already in the Extreme state. We have to eliminate them. Can you handle it?
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild Member Colin:<br>
You haven't left yet. The Gracia Continent is far from the Aden Continent, but it's not impossible to get there. Go to Gracia and defeat Tiat, Tauti, Istina, and Ekimus. Make sure to defeat Tauti and Istina, which are in the Extreme state.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Member Colin:<br>
Did you give a good lesson to the Lord of Seeds?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00668_ABattleWithTheGiants 30703-07.html">"I complete it all"</Button>
</body></htm>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild Member Colin:<br>
Good job. It will help the Hunter Guild take a lead in the Gracia Continent.
</body></htm>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild Member<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. 85 or above and Faction level 1 or above with the Hunters Guild may undertake this quest.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
What's your business? I'm busy with dealing with the Seed Lords that control the seeds in Gracia. Come back later. Ah, no, wait. If you have time, could you help me?<br>
<Button ALIGN=LEFT ICON="Normal" action="bypass -h Quest Q00668_ABattleWithTheGiants 34267-02.htm">Continue to listen</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
There are areas called Ξ<>οΏ½Ξ²β¬οΏ½Ξ<C2BD>οΏ½Ξ²β¬Β Ξ<C2A0>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½Ξ<C2BD>’ΞΒ¬Ξ<C2AC>οΏ½Ξ²β¬Ξ†Ξ<E280A0>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½SeedsΞ<73>οΏ½Ξ²β¬οΏ½Ξ<C2BD>οΏ½Ξ²β¬Β Ξ<C2A0>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β€<CEB2>¬οΞ<CE8F>Β½Ξ<C2BD>’ΞΒ¬Ξ<C2AC>οΏ½Ξ²β¬β„ΆΞ<CE86>Ξ<EFBFBD>Ξ<EFBFBD>οΏ½ΞΒ½ in Gracia. They include the Seed of Destruction, the Seed of Hellfire, the Seed of Annihilation, and the Seed of Infinity. Goddess Shilen has appointed four lords to rule them. Did you know this?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00668_ABattleWithTheGiants 34267-03.htm">No</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
Well, only a few do. What matters is that the more active these lords become, the more easily Shilen can use her power. So, we're focusing on nullifying the Seed Lords.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00668_ABattleWithTheGiants 34267-04.htm">Ask if your mission is to defeat the Seed Lords</Button>
</body></html>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild President Arcturus:<br>
Yes. Our goal is to eliminate the Seed Lords and weaken their forces. It's useless to provoke weak ones. Your targets are the Seed Lords in the Extreme state. Defeat <font color="LEVEL">Tiat, Tauti, Istina, and Ekimus</font> and return to me.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
You haven't left yet? I told you which Seed Lords you have to deal with.<br>
They are Tiat, Tauti, Istina, and Ekimus. Make sure to eliminate them in the Extreme state.
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Hunters Guild President Arcturus:<br>
Did you give a good lesson to the Lord of Seeds?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00668_ABattleWithTheGiants 34267-07.html">"I complete it all"</Button>
</body></htm>

View File

@ -0,0 +1,3 @@
<html><body>Hunters Guild President Arcturus:<br>
Good job. It will help the Hunter Guild take a lead in the Gracia Continent.
</body></htm>

View File

@ -0,0 +1,168 @@
/*
* 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.Q00668_ABattleWithTheGiants;
import org.l2jmobius.Config;
import org.l2jmobius.gameserver.enums.Faction;
import org.l2jmobius.gameserver.enums.QuestType;
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;
/**
* Fight with the Giants (668)
* @URL https://l2wiki.com/Fight_with_the_Giants
* @author Dmitri
*/
public class Q00668_ABattleWithTheGiants extends Quest
{
// NPCs
private static final int ARCTURUS = 34267;
private static final int COLIN = 30703;
// BOSS
private static final int[] BOSES =
{
29305, // Helios
26143, // Ramona
26148, // Enhanced Mimir
26157, // Enhanced Harnak's Wraith
26152 // Enhanced Core
};
// Misc
private static final int MIN_LEVEL = 85;
public Q00668_ABattleWithTheGiants()
{
super(668);
addStartNpc(ARCTURUS, COLIN);
addTalkId(ARCTURUS, COLIN);
addKillId(BOSES);
addCondMinLevel(MIN_LEVEL, "34267-00.htm");
addFactionLevel(Faction.HUNTERS_GUILD, 1, "34267-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 "30703-02.htm":
case "30703-03.htm":
case "34267-02.htm":
case "34267-03.htm":
{
htmltext = event;
break;
}
case "30703-04.htm":
case "34267-04.htm":
{
qs.startQuest();
htmltext = event;
break;
}
case "30703-07.html":
case "34267-07.html":
{
addFactionPoints(player, Faction.HUNTERS_GUILD, 150);
qs.exitQuest(QuestType.DAILY, 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:
{
switch (npc.getId())
{
case COLIN:
{
htmltext = "30703-01.htm";
break;
}
case ARCTURUS:
{
htmltext = "34267-01.htm";
break;
}
}
break;
}
case State.STARTED:
{
switch (npc.getId())
{
case COLIN:
{
htmltext = (qs.isCond(1)) ? "30703-05.html" : "30703-06.html";
break;
}
case ARCTURUS:
{
htmltext = (qs.isCond(1)) ? "34267-05.html" : "34267-06.html";
break;
}
}
}
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = getAlreadyCompletedMsg(player, QuestType.DAILY);
break;
}
qs.setState(State.CREATED);
}
}
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

@ -0,0 +1,5 @@
<html><body>Logart van Dyke:<br>
The Enchanted Valley has changed, so it's very dangerous.<br>
I don't think you are supposed to be here yet. Come back when you get stronger.<br>
(Only characters above Lv. 101, quest Complete Bloody Battle - Seizing Supplies and fraction KingdomΞ<6D>οΏ½ΞΒ²Ξ<C2B2>Β²Ξ²β¬οΏ½ΞΒ¬Ξ<C2AC>Β²Ξ²β¬οΏ½Ξ<C2BD>†s Royal Guard amity level 2 or above.)
</body></html>

Some files were not shown because too many files have changed in this diff Show More