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

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