This commit is contained in:
mobius
2015-01-01 20:02:50 +00:00
parent eeae660458
commit a6a3718849
17894 changed files with 2818932 additions and 0 deletions

View File

@@ -0,0 +1,5 @@
<html><body>Mercenary Captain Pierce:<br>
Do you know why this is called the Swamp of Screams? Because of the haunting screams of those caught off guard! It's our rule to finish any job we take, no matter how difficult.<br>
Are you ready to help empty the swamp of the stakatos?<br>
<a action="bypass -h Quest Q00629_CleanUpTheSwampOfScreams 31553-03.htm">Accept quest.</a>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Mercenary Captain Pierce:<br>
Do you know why this is called the Swamp of Screams? Because of the haunting screams of those caught off guard. It's our rule to finish any job we start, no matter how difficult.<br>
You're not up to it yet.<br>
(Quest may only be undertaken by characters level 66 or above.)
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Mercenary Captain Pierce:<br>
You'll find two types of stakatos in the Swamp of Screams, Splinter Stakatos around the edges and Needle Stakatos at the center. There are many poisonous pools that they hang around, so beware.<br>
When you kill one, pull out its claws. Collect 100 on each outing, they serve as proof of your deeds.<br>
Your life is most important, so don't get in over your head.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mercenary Captain Pierce:<br>
Thank god you came back alright. So, how's the situation?<br>
<a action="bypass -h Quest Q00629_CleanUpTheSwampOfScreams 31553-07.html">I've brought 100 claws of Stakatos.</a>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mercenary Captain Pierce:<br>
Do you want to get demoted for delinquency? Get out there and slay some stakatos!
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mercenary Captain Pierce:<br>
It is impossible for us to clear the whole swamp. We don't have the strength to strike a fatal blow, we'd have to tackle the incubator and kill the queen. Our resources are too few, but we must continue until given the withdrawal order.
</body></html>

View File

@@ -0,0 +1,7 @@
<html><body>Mercenary Captain Pierce:<br>
Great fighting. Take a rest for the moment. <br>
Ah, take this with you. This is a reward for bringing 100 Stakato claws. It is paid to mercenaries as an allowance. Take it to the Mercenary Supplier and exchange it with various things. If you need anything, go see Abercrombie anytime!<br>
<a action="bypass -h Quest Q00629_CleanUpTheSwampOfScreams 31553-06.html">I'll go back to the battleground again.</a><br>
<a action="bypass -h Quest Q00629_CleanUpTheSwampOfScreams 31553-07.html">I have more claws of Stakatos.</a><br>
<a action="bypass -h Quest Q00629_CleanUpTheSwampOfScreams 31553-09.html">I want to quit.</a>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mercenary Captain Pierce:<br>
Don't rest until you've brought back 100 stakato claws.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mercenary Captain Pierce:<br>
Quitting, huh?<br>
The Golden Ram will always welcome skilled soldiers like you! You must have your own reasons, and I thank you for helping us. Come back whenever you want a good fight!
</body></html>

View File

@@ -0,0 +1,157 @@
/*
* Copyright (C) 2004-2014 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack 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.
*
* L2J DataPack 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.Q00629_CleanUpTheSwampOfScreams;
import java.util.HashMap;
import java.util.Map;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;
import com.l2jserver.gameserver.model.quest.QuestState;
/**
* Clean Up The Swamp Of Screams (629)
* @author netvirus
*/
public final class Q00629_CleanUpTheSwampOfScreams extends Quest
{
// NPC
private static final int PIERCE = 31553;
// Items
private static final int TALON_OF_STAKATO = 7250;
private static final int GOLDEN_RAM_COIN = 7251;
// Misc
private static final int REQUIRED_TALON_COUNT = 100;
private static final int MIN_LVL = 66;
// Mobs
private static final Map<Integer, Double> MOBS_DROP_CHANCES = new HashMap<>();
static
{
MOBS_DROP_CHANCES.put(21508, 0.599); // splinter_stakato
MOBS_DROP_CHANCES.put(21509, 0.524); // splinter_stakato_worker
MOBS_DROP_CHANCES.put(21510, 0.640); // splinter_stakato_soldier
MOBS_DROP_CHANCES.put(21511, 0.830); // splinter_stakato_drone
MOBS_DROP_CHANCES.put(21512, 0.970); // splinter_stakato_drone_a
MOBS_DROP_CHANCES.put(21513, 0.682); // needle_stakato
MOBS_DROP_CHANCES.put(21514, 0.595); // needle_stakato_worker
MOBS_DROP_CHANCES.put(21515, 0.727); // needle_stakato_soldier
MOBS_DROP_CHANCES.put(21516, 0.879); // needle_stakato_drone
MOBS_DROP_CHANCES.put(21517, 0.999); // needle_stakato_drone_a
}
public Q00629_CleanUpTheSwampOfScreams()
{
super(629, Q00629_CleanUpTheSwampOfScreams.class.getSimpleName(), "Clean Up The Swamp Of Screams");
addStartNpc(PIERCE);
addTalkId(PIERCE);
addKillId(MOBS_DROP_CHANCES.keySet());
registerQuestItems(TALON_OF_STAKATO, GOLDEN_RAM_COIN);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, false);
String htmltext = null;
if (qs == null)
{
return htmltext;
}
switch (event)
{
case "31553-03.htm":
{
if (qs.isCreated())
{
qs.startQuest();
htmltext = event;
}
break;
}
case "31553-04.html":
case "31553-06.html":
{
if (qs.isStarted())
{
htmltext = event;
}
break;
}
case "31553-07.html":
{
if (qs.isStarted() && (getQuestItemsCount(player, TALON_OF_STAKATO) >= REQUIRED_TALON_COUNT))
{
rewardItems(player, GOLDEN_RAM_COIN, 20);
takeItems(player, TALON_OF_STAKATO, 100);
htmltext = event;
}
else
{
htmltext = "31553-08.html";
}
break;
}
case "31553-09.html":
{
if (qs.isStarted())
{
qs.exitQuest(true, true);
htmltext = event;
}
break;
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getRandomPartyMemberState(killer, -1, 2, npc);
if (qs != null)
{
giveItemRandomly(qs.getPlayer(), npc, TALON_OF_STAKATO, 1, 0, MOBS_DROP_CHANCES.get(npc.getId()), true);
}
return super.onKill(npc, killer, isSummon);
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (qs == null)
{
return htmltext;
}
if (qs.isCreated())
{
htmltext = ((player.getLevel() >= MIN_LVL) ? "31553-01.htm" : "31553-02.htm");
}
else if (qs.isStarted())
{
htmltext = ((getQuestItemsCount(player, TALON_OF_STAKATO) >= REQUIRED_TALON_COUNT) ? "31553-04.html" : "31553-05.html");
}
return htmltext;
}
}