Quest The Quiet Killer (784).

Contributed by gigilo1968.
This commit is contained in:
MobiusDev
2016-06-25 12:30:46 +00:00
parent 2d382fad91
commit 040b3ca493
14 changed files with 317 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
<html><body>Mercenary Kahman:<br>
I'm in charge of finding skilled soldiers to become brothers in our Golden Ram Mercenary Force! Do you know what that means?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-02.htm">"No idea."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Mercenary Kahman:<br>
What do I mean? It means that I, Kahman, have keen eyes for spotting brave warriors. My eyes have picked the right kind for years. They are never wrong.<br>
You're an Ertheia, right? I heard that your people are powerful warriors. I have something to tell you. Are you interested?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-03.htm">"Sure."</Button>
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Mercenary Kahman:<br>
As you can see there are many useless maggots in this Swampland. Will you help us and defeat them?<br>
Just kill <font color="LEVEL">all Stakatos</font> in the <font color="LEVEL">Swamp of Screams</font> and bring back evidence for your work.<br>
I assure you. I can only ask brave warriors for this.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-04.htm">"I will try."</Button>
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mercenary Kahman:<br>
Good. As your proof bring back <font color="LEVEL">Stakato Shells</font>.<br>
One more thing! Bring <font color="LEVEL">Quality Stakato Shell</font> too.<br>I'm sure that by the time you <font color="LEVEL">collect all the Stakato Shells</font>, you'll figure out how to get Quality Stakato Shells. I'm offering an additional reward for them.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mercenary Kahman:<br>
Oh it's you! What's going on? I cannot reward you for the amount of Quality Stakato Shells you have. I thought I told you?<br>
If you want to receive the minimum, <font color="LEVEL">kill all the Stakatos in the Swamp of Screams</font> and bring <font color="LEVEL">50 Stakato Shells</font>. Additionally I will give you more reward depending on the number of <font color="LEVEL">Quality Stakato Shells</font> you bring.
</body></html>

View File

@@ -0,0 +1,6 @@
<html><body>Mercenary Kahman:<br>
Oh it's you. What's going on? The amount of Quality Stakato Shell is only enough for the smallest reward. <br>
Are you going to be satisfied with just that?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-07.html">"That's it for today."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-08.html">"I want to hunt a bit longer."</Button>
</body></html>

View File

@@ -0,0 +1,5 @@
<html><body>Mercenary Kahman:<br>
Really? If you end here, I cannot give you anymore quests today. Will you be satisfied with that?<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-09.html">"Yes."</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00784_TheQuietKiller 31554-08.html">"I will hunt a bit more."</Button>
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mercenary Kahman:<br>
Good! Now go kill those Stakatos! I will pay you back for your bravery.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>Mercenary Kahman:<br>
Thanks for your efforts!, get your honorary prize.
</body></html>

View File

@@ -0,0 +1,3 @@
<html><body>
This is a daily quest which resets at 6:30am every day.
</body></html>

View File

@@ -0,0 +1,266 @@
/*
* 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.Q00784_TheQuietKiller;
import com.l2jmobius.gameserver.enums.QuestType;
import com.l2jmobius.gameserver.enums.Race;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.base.ClassId;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
* The Quiet Killer (00784)
* @URL https://l2wiki.com/The_Quiet_Killer
* @author Gigi
*/
public class Q00784_TheQuietKiller extends Quest
{
private static final int KAHMAN = 31554;
// Monsters
private static final int[] MONSTERS =
{
21508, // Splinter Stakato
21509, // Splinter Stakato Worker
21510, // Splinter Stakato Soldier
21511, // Splinter Stakato Drone
21512, // Splinter Stakato Drone
21513, // Needle Stakato
21514, // Needle Stakato Worker
21515, // Needle Stakato Soldier
21516, // Needle Stakato Drone
21517, // Needle Stakato Drone
20518, // Frenzied Stakato Soldier
20919 // Frenzied Stakato Drone
};
// Items
private static final int STAKATO_CHITIN = 39730;
private static final int QUALITY_STAKATO_CHITIN = 39731;
private static final int EMISSARYS_REWARD_BOX = 39726;
// Misc
private static final int MIN_LEVEL = 65;
private static final int MAX_LEVEL = 70;
public Q00784_TheQuietKiller()
{
super(784);
addStartNpc(KAHMAN);
addTalkId(KAHMAN);
addKillId(MONSTERS);
registerQuestItems(STAKATO_CHITIN, QUALITY_STAKATO_CHITIN);
addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.html");
addCondRace(Race.ERTHEIA, "noErtheia.html");
addCondClassId(ClassId.MARAUDER, "no_quest.html");
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
String htmltext = null;
final QuestState qs = getQuestState(player, false);
if (qs == null)
{
return getNoQuestMsg(player);
}
switch (event)
{
case "31554-02.htm":
case "31554-03.htm":
case "31554-07.html":
case "31554-08.html":
{
htmltext = event;
break;
}
case "31554-04.htm":
{
qs.startQuest();
qs.set(Integer.toString(STAKATO_CHITIN), 0);
qs.set(Integer.toString(QUALITY_STAKATO_CHITIN), 0);
break;
}
case "31554-09.html":
{
if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) < 100))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 14140350, 3393);
giveItems(player, EMISSARYS_REWARD_BOX, 1);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 100) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 199)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 28280700, 6786);
giveItems(player, EMISSARYS_REWARD_BOX, 2);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 200) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 299)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 42421050, 10179);
giveItems(player, EMISSARYS_REWARD_BOX, 3);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 300) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 399)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 56561400, 13572);
giveItems(player, EMISSARYS_REWARD_BOX, 4);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 400) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 499)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 70701750, 16965);
giveItems(player, EMISSARYS_REWARD_BOX, 5);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 500) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 599)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 84842100, 20358);
giveItems(player, EMISSARYS_REWARD_BOX, 6);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 600) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 699)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 98982450, 23751);
giveItems(player, EMISSARYS_REWARD_BOX, 7);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 700) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 799)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 113122800, 27144);
giveItems(player, EMISSARYS_REWARD_BOX, 8);
qs.exitQuest(QuestType.DAILY, true);
break;
}
else if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && ((getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 800) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) <= 899)))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 127263150, 30537);
giveItems(player, EMISSARYS_REWARD_BOX, 9);
qs.exitQuest(QuestType.DAILY, true);
break;
}
if ((getQuestItemsCount(player, STAKATO_CHITIN) >= 50) && (getQuestItemsCount(player, QUALITY_STAKATO_CHITIN) >= 900))
{
takeItems(player, STAKATO_CHITIN, -1);
takeItems(player, QUALITY_STAKATO_CHITIN, -1);
addExpAndSp(player, 141403500, 33930);
giveItems(player, EMISSARYS_REWARD_BOX, 10);
qs.exitQuest(QuestType.DAILY, true);
break;
}
}
}
return htmltext;
}
@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
final QuestState qs = getQuestState(player, true);
String htmltext = getNoQuestMsg(player);
if (npc.getId() == KAHMAN)
{
switch (qs.getState())
{
case State.COMPLETED:
{
if (!qs.isNowAvailable())
{
htmltext = "31554-10.html";
break;
}
qs.setState(State.CREATED);
break;
}
case State.CREATED:
{
htmltext = "31554-01.htm";
break;
}
case State.STARTED:
{
if (qs.isCond(1))
{
htmltext = "31554-05.html";
}
else if (qs.isStarted() && qs.isCond(2))
{
htmltext = "31554-06.html";
}
break;
}
}
}
else
{
if (qs.isCompleted() && !qs.isNowAvailable())
{
htmltext = "31554-10.html";
}
}
return htmltext;
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
final QuestState qs = getQuestState(killer, false);
if ((qs != null) && (qs.isCond(1)))
{
if (giveItemRandomly(killer, npc, STAKATO_CHITIN, 1, 50, 0.15, true))
{
qs.setCond(2, true);
}
}
if ((qs != null) && (qs.isCond(2)))
{
if (giveItemRandomly(killer, npc, QUALITY_STAKATO_CHITIN, 1, 900, 0.25, true))
{
qs.setCond(2, true);
}
}
return super.onKill(npc, killer, isSummon);
}
}

View File

@@ -0,0 +1,3 @@
<html><body>Mercenary Kahman:<br>
You are not Ertheia, this quest is not for you.
</body></html>

View File

@@ -0,0 +1,4 @@
<html><body>Mercenary Kahman:<br>
You don't meet level requirements<br>
(Quest available from level 65 - 70)
</body></html>

View File

@@ -0,0 +1 @@
<html><body>You are not Marauder class, this quest is not for you.</body></html>