Quest Blade Under foot (512).

This commit is contained in:
MobiusDev 2016-08-21 10:37:43 +00:00
parent a58f85dd47
commit 85a9aff1aa
15 changed files with 227 additions and 1 deletions

View File

@ -17,7 +17,6 @@
483 Intended Tactic 483 Intended Tactic
491 In Nomine Patris 491 In Nomine Patris
504 Competition for the Bandit Stronghold 504 Competition for the Bandit Stronghold
512 Blade Under Foot
655 A Grand Plan for Taming Wild Beasts 655 A Grand Plan for Taming Wild Beasts
665 Great Pirate Zaken's Treasure 665 Great Pirate Zaken's Treasure
666 Leona Blackbird's Treasure 666 Leona Blackbird's Treasure

View File

@ -0,0 +1,129 @@
/*
* 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.Q00512_BladeUnderFoot;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.model.L2Clan;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.entity.Castle;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
/**
* Blade Under Foot (512)
* @author Mobius
*/
public final class Q00512_BladeUnderFoot extends Quest
{
// NPCs
private static final int[] NPCS =
{
36403, // Gludio
36404, // Dion
36405, // Giran
36406, // Oren
36407, // Aden
36408, // Innadril
36409, // Goddard
36410, // Rune
36411, // Schuttgart
};
// Items
private static final int MARK = 9798;
private static final int KNIGHT_EPALUETTE = 9912;
// Misc
private static final int MIN_LEVEL = 90;
public Q00512_BladeUnderFoot()
{
super(512);
addStartNpc(NPCS);
addTalkId(NPCS);
addCondMinLevel(MIN_LEVEL, "Warden-00a.htm");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return null;
}
String htmltext = event;
switch (event)
{
case "Warden-03.html":
case "Warden-04.html":
case "Warden-05.html":
case "Warden-06.html":
case "Warden-09.html":
{
break;
}
case "Warden-02.htm":
{
qs.startQuest();
break;
}
case "Warden-10.html":
{
qs.exitQuest(QuestType.REPEATABLE);
break;
}
default:
{
htmltext = null;
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player, boolean isSimulated)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs.isCreated())
{
final Castle castle = npc.getCastle();
final L2Clan clan = player.getClan();
htmltext = ((castle != null) && (clan != null) && (clan.getCastleId() == castle.getResidenceId())) ? "Warden-01.htm" : "Warden-00b.htm";
}
else
{
final long itemCount = getQuestItemsCount(player, MARK);
if (itemCount == 0)
{
htmltext = "Warden-07.html";
}
else
{
if (!isSimulated)
{
takeItems(player, MARK, itemCount);
giveItems(player, KNIGHT_EPALUETTE, itemCount * 2);
}
htmltext = "Warden-08.html";
}
}
return htmltext;
}
}

View File

@ -0,0 +1,6 @@
<html><body>Prison Warden:<br>
Thank you for your willingness to help, adventurer; however, I can't put you in danger.<br>
I handle all of the bookkeeping for the castle and the sheer amount of paperwork that I would have to fill out to get permission to put you on our payroll. Oi! Makes me shudder just thinking about it.<br>
Get some more training, learn mores skills, get some more missions under your belt and then I'll see what I can do to get you certified for a destruction mission.<br>
(This quest is for characters level 90 or above.)
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Prison Warden:<br>
Who are you? I don't see your name on the list of clan members...<br>
(This quest is reserved for members of the clan that currently owns this castle.)
</body></html>

View File

@ -0,0 +1,9 @@
<html><body>Prison Warden:<br>
I am the warden of this castle prison. This monster dungeon was discovered only recently.<br>
I suspect that other castles also have such dungeons. My duty is to keep this basement prison area safe.<br>
Having monsters appear and disappear at will here would hardly let the castle inhabitants sleep soundly at night, eh?<br>
Unfortunately, we don't have the numbers to handle this task alone.<br>
We need help from the clan members.<br>
We'll compensate you for your assistance, naturally.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-02.htm">"Of course."</Button>
</body></html>

View File

@ -0,0 +1,10 @@
<html><body>Prison Warden:<br>
Excellent! I appreciate your offer, friend.<br>
This dungeon prison was only recently discovered, and no one knows its true purpose.<br>
Some legends say that long, long ago, some emperor created this dungeon as a place to secretly breed monsters for magical experiments.<br>
Others say that it was built during the empire's golden age to contain monsters that were pitted against prisoners in gladiatorial fights.<br>
Whatever its purpose, it was sealed and hidden for centuries -- we only recently uncovered the entrance.<br><br>
Well, let's get down to brass tacks. Please defeat the leaders of the <font color="LEVEL">three prisoner gangs</font> that roam the dungeon - <font color="LEVEL">Beautiful Atrielle, Nagen the Tomboy and Jax the Destroyer</font> - and bring me the <font color="LEVEL">monsters' rank badges</font>.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-04.html">"I'll leave now."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-03.html">"I would like to know about the current status of the Fortress Camp."</Button>
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Prison Warden:<br>
Hmm...<br>
Since the dungeon was abandoned for so long, the prisoners -- monsters all -- eventually formed an independent society.<br>
This basement camp features a very complicated network of secret passageways, which the monsters now use to move at will throughout this dungeon and even to areas of the surface world they inhabit.<br>
And those paths are connected to the areas controlled by the monsters on the surface.<br>
They rule the underground world, which even has its own twisted class structure. Apparently higher-level monsters inhabit the dungeons beneath castles while relatively low-level creatures live beneath fortresses.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-05.html">"That certainly explains the endless stream of monsters in the basement prison despite years of bloody suppression..."</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Prison Warden:<br>
I can grant you access to the castle dungeon prison right here.<br>
Thank you for your help!
</body></html>

View File

@ -0,0 +1,8 @@
<html><body>Prison Warden:<br>
Correct.<br>
That is why we seek assistance from the clan's adventurers.<br>
Undoubtedly, a permanent solution is being studied by high class strategists, scholars and mystics.<br>
But those efforts are hampered by the disharmony among the various castles.<br>
Unless there is some sort of ultimate resolution, the fighting will undoubtedly continue...<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-06.html">"What do you want me to do?"</Button>
</body></html>

View File

@ -0,0 +1,14 @@
<html><body>Prison Warden:<br>
Long ago, there was a great battle between monsters and a large punitive force.<br>
What a fight that was...<br>
Both sides suffered enormous casualties.<br>
In its aftermath, however, the monsters became more cautious in their movements.<br>
But recently we have observed 3 powerful gangs of monster ex-prisoners.<br>
They are up to something, that's for sure.<br>
Your task is to slay all <font color="LEVEL">3 gangs</font> and destroy the monsters' organization in the dungeon.<br>
When you defeat the leader of the last gang, bring me a <font color="LEVEL">piece of the monster's rank badge</font> and I will repay you with the Knight's Epaulette, which you can exchange with the palace's magician for the castle's clan supply.<br>
Ah, one last thing...<br>
The rumored leaders of the monsters are <font color="LEVEL">Beautiful Atrielle, Nagen the Tomboy and Jax the Destroyer</font>.<br>
I can grant you access to the dungeon right now.<br>
Good luck!
</body></html>

View File

@ -0,0 +1,11 @@
<html><body>Prison Warden:<br>
Enter the dungeon prison and slay the prisoners.<br><br>
Wipe out all <font color="LEVEL">3 gangs</font> to eradicate the monsters' entire organization in the dungeon.<br>
When you defeat the leader of the last gang, bring me a Fragment of the Dungeon Leader Mark and I will pay you with a Knight's Epaulette.<br>
If you take it to a Court Wizard, he will exchange it for the castle's clan supply for you.<br>
Ah, one last thing...<br>
The leaders of the monsters are <font color="LEVEL">Beautiful Atrielle, Nagen the Tomboy and Jax the Destroyer</font>.<br>
I can grant you access to the dungeon right now.<br>
Good luck!<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-03.html">"What are the monsters in the dungeon like?"</Button>
</body></html>

View File

@ -0,0 +1,12 @@
<html><body>Prison Warden:<br>
So you eradicated the leader of the monster prisoners in the dungeon? Well done!<br>
Thank you for your help in eliminating this threat to our safety.<br>
Here is the Knight's Epaulette as promised.<br>
If you take it to a Court Wizard, he will exchange it for the castle's clan supply for you.<br>
...<br>
"Here they are."<br>
Would you like to continue your efforts down here?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-09.html">"Sure."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-10.html">"No, I want to stop now."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00512_BladeUnderFoot Warden-03.html">"What are the monsters in the dungeon like?"</Button>
</body></html>

View File

@ -0,0 +1,4 @@
<html><body>Prison Warden:<br>
Continue to seek out and defeat <font color="LEVEL">Beautiful Atrielle, Nagen the Tomboy and Jax the Destroyer</font>, who are the <font color="LEVEL">leaders of the 3 underground prison gangs that roam this prison</font>. Bring me the rank badges of the monsters you defeat there and I will exchange them for a Knight's Epaulette.<br>
Good luck -- and good hunting!
</body></html>

View File

@ -0,0 +1,6 @@
<html><body>Prison Warden:<br>
Ah, I understand -- no doubt another adventure calls you...<br>
Thank you for all you've done here.<br>
If you'd like to lend a hand again, we'd be very grateful.<br>
Good luck on your journeys!
</body></html>

View File

@ -146,6 +146,7 @@ import quests.Q00508_AClansReputation.Q00508_AClansReputation;
import quests.Q00509_AClansFame.Q00509_AClansFame; import quests.Q00509_AClansFame.Q00509_AClansFame;
import quests.Q00510_AClansPrestige.Q00510_AClansPrestige; import quests.Q00510_AClansPrestige.Q00510_AClansPrestige;
import quests.Q00511_AwlUnderFoot.Q00511_AwlUnderFoot; import quests.Q00511_AwlUnderFoot.Q00511_AwlUnderFoot;
import quests.Q00512_BladeUnderFoot.Q00512_BladeUnderFoot;
import quests.Q00551_OlympiadStarter.Q00551_OlympiadStarter; import quests.Q00551_OlympiadStarter.Q00551_OlympiadStarter;
import quests.Q00553_OlympiadUndefeated.Q00553_OlympiadUndefeated; import quests.Q00553_OlympiadUndefeated.Q00553_OlympiadUndefeated;
import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames; import quests.Q00617_GatherTheFlames.Q00617_GatherTheFlames;
@ -521,6 +522,7 @@ public class QuestMasterHandler
Q00509_AClansFame.class, Q00509_AClansFame.class,
Q00510_AClansPrestige.class, Q00510_AClansPrestige.class,
Q00511_AwlUnderFoot.class, Q00511_AwlUnderFoot.class,
Q00512_BladeUnderFoot.class,
Q00551_OlympiadStarter.class, Q00551_OlympiadStarter.class,
Q00553_OlympiadUndefeated.class, Q00553_OlympiadUndefeated.class,
Q00617_GatherTheFlames.class, Q00617_GatherTheFlames.class,