Quests Sakums Trace (10359) and Rebellion of Monsters (10368).
Contributed by spider.
This commit is contained in:
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/30297-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/30297-01.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master:<br>
|
||||
Young one! I was looking for you! I heard you did so many good things for the village, and wanted to thank you on behalf of the lord. You have... wait... is something wrong?<br>
|
||||
<button ALIGN=LEFT icon=NORMAL action="bypass -h Quest Q10359_SakumsTrace 30297-02.html">"Sakum's Scale was found in the Wasteland."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/30297-02.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/30297-02.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master:<br>
|
||||
So then Sakum is in Wasteland!<br>
|
||||
Well! Did Guard Fred say anything else?<br>
|
||||
<button ALIGN=LEFT icon=NORMAL action="bypass -h Quest Q10359_SakumsTrace 30297-03.html">"He wanted someone to fight Sakum."</button>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/30297-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/30297-03.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Grand Master:<br>
|
||||
As there isn't much we can do at the moment witch all the skilled soldiers gone. We must hold a race meeting to consider all possible measures.<br>
|
||||
I think we will soon have a job for you to show what you can do, so please come back later.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/31795-01.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/31795-01.htm
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
When will Sakum be caught?! We can't just keep chasing it around...<br>
|
||||
When they said that ferocious monster were appearing in the Wasteland, we wondered whether Sakum had appeared.<br>
|
||||
But we couldn't send all our powerful warriors to the outlands. You know Sakum, right?<br>
|
||||
<button ALIGN=LEFT icon=NORMAL action="bypass -h Quest Q10359_SakumsTrace 31795-02.htm">"Yes, I do."</button>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/31795-02.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/31795-02.htm
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Of course. There is no way that someone of your caliber wouldn't know about Sakum!<br>
|
||||
The fact that ferocious monsters have appeared at the <font color="LEVEL">Wasteland </font> might indicate Sakum's presence.<br>
|
||||
Now is the time for us adventurers to step up to the plate! Care to join?<br>
|
||||
<button ALIGN=LEFT icon=NORMAL action="bypass -h Quest Q10359_SakumsTrace 31795-03.htm">"I will join you!"</button>
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/31795-03.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/31795-03.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
I knew it! You're an amazing adventurer. Find <font color="LEVEL">Guard Fred</font> at the <font color="LEVEL">Entrance to the Wastelands</font>, and help him and determine where Sakum appears.
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-01.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-01.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
I've heard that an Adventure Guildsman from Gludio sent a great adventurer here. Was that person you?<br>
|
||||
I know that you were sent by the Adventure Guildsman, but I don't know if I can trust...<br>
|
||||
Don't feel top bad about that - I'm looking out for your back as well as mine.<br>
|
||||
<button align=left icon=NORMAL action="bypass -h Quest Q10359_SakumsTrace 33179-02.html">"What's going on with the monsters?"</button>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-02.html
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-02.html
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
I wouldn't say monster in the Wasteland were ever very docile, but the look different now. They have became more powerful than before, too.<br>
|
||||
And recently I was investigating this area and found suspicious looking fragment from the carcass of a monster. Maybe it's because the monster has been dead for a long, but the fragment was too small for me to identify.<br>
|
||||
Could you help to discover what it might be?<br>
|
||||
<button align=left icon=NORMAL action="bypass -h Quest Q10359_SakumsTrace 33179-03.html">"Sure."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-03.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-03.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
Thank you. I believe that you find these Suspicious Fragments from monsters such as <font color="LEVEL">Monster Eye Watchers, Lesser Basilisks, Basilisks, Skeleton Marauders, Granite Golems, Saharas, and Tyrants</font><br>
|
||||
Okay then, good luck and please stay safe...
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-04.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
Maybe you were rooted to the spot in fear, hmm?<br>
|
||||
You need to collect the <font color="LEVEL">Suspicious Fragments</font> from the monsters in the Wasteland.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-05a.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-05a.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">High Priest Raymond </font> in the <font color="LEVEL">Einhasad Temple</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-05b.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-05b.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">Grand Master Rains</font> in the <font color="LEVEL">Warrior Guild</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-06a.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-06a.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">Grand Magister Esrandell</font> in the <font color="LEVEL">Einhasad Temple</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-06b.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-06b.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">Grand Master Ellenia</font> in the <font color="LEVEL">Warrior Guild</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-07.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-07.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">Grand Master Tobias</font> in the <font color="LEVEL">Dark Elf Guild</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-08.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-08.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">High Prefect Drikus</font> in the <font color="LEVEL">Orc Guild</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-09.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-09.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">Head Blacksmith Mendio</font> in the <font color="LEVEL">Blacksmith Workshop</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-10.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/33179-10.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
You've done it! Show me the Suspicious Fragments.<br>
|
||||
Oh no, this... this... Sakum's scale! So, the monsters have become ferocious because of Sakum?! There is no time waste - sprint back to Gludio, inform <font color="LEVEL">Grand Master Gershwin</font> in the <font color="LEVEL">Kamael Guild</font> of our findings, and ask him to send the strongest he's got here. I will remain behind and uncover the beast's location!
|
||||
</body></html>
|
265
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/Q10359_SakumsTrace.java
vendored
Normal file
265
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/Q10359_SakumsTrace.java
vendored
Normal file
@ -0,0 +1,265 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J Server
|
||||
*
|
||||
* This file is part of L2J Server.
|
||||
*
|
||||
* L2J Server 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 Server 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.Q10359_SakumsTrace;
|
||||
|
||||
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;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Sakum's Trace (10359)
|
||||
* @author spider
|
||||
*/
|
||||
public class Q10359_SakumsTrace extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int ADV_GUILDSMAN = 31795;
|
||||
private static final int FRED = 33179;
|
||||
private static final int TOBIAS = 30297;
|
||||
private static final int RAYMOND = 30289;
|
||||
private static final int RAINS = 30288;
|
||||
private static final int DRIKUS = 30505;
|
||||
private static final int MENDIO = 30504;
|
||||
private static final int GERSHWIN = 32196;
|
||||
private static final int ELLENIA = 30155;
|
||||
private static final int ESRANDELL = 30158;
|
||||
// Monsters
|
||||
private static final int MONSTER_EYE_WATCHER = 20067;
|
||||
private static final int LESSER_BASILISK = 20070;
|
||||
private static final int BASILISK = 20072;
|
||||
private static final int SKELETON_MARAUDER = 20190;
|
||||
private static final int GRANITE_GOLEM = 23098;
|
||||
private static final int SAHARA = 23026;
|
||||
private static final int TYRANT = 20192;
|
||||
// Items
|
||||
private static final int SUSPICIOUS_FRAGMENT = 17586;
|
||||
private static final int SUSPICIOUS_FRAGMENT_REQUIRED = 20;
|
||||
// Rewards
|
||||
private static final int ADENA_REWARD = 108000;
|
||||
private static final int EXP_REWARD = 900000;
|
||||
private static final int SP_REWARD = 216;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 34;
|
||||
private static final int MAX_LEVEL = 40;
|
||||
|
||||
public Q10359_SakumsTrace()
|
||||
{
|
||||
super(10359, Q10359_SakumsTrace.class.getSimpleName(), "Sakum's Trace");
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.htm");
|
||||
addTalkId(ADV_GUILDSMAN, FRED, TOBIAS, RAYMOND, RAINS, DRIKUS, MENDIO, GERSHWIN, ELLENIA, ESRANDELL);
|
||||
addKillId(MONSTER_EYE_WATCHER, LESSER_BASILISK, BASILISK, SKELETON_MARAUDER, GRANITE_GOLEM, SAHARA, TYRANT);
|
||||
registerQuestItems(SUSPICIOUS_FRAGMENT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "30297-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "30297-03.html": // end quest
|
||||
{
|
||||
if (qs.getCond() > 3)
|
||||
{
|
||||
giveAdena(player, ADENA_REWARD, true);
|
||||
addExpAndSp(player, EXP_REWARD, SP_REWARD);
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
}
|
||||
case "31795-02.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31795-03.htm": // start quest
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33179-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33179-03.html": // go kill mobs
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
qs.setCond(2);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = null;
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = npc.getId() == ADV_GUILDSMAN ? "31795-01.htm" : getNoQuestMsg(player);
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ADV_GUILDSMAN:
|
||||
{
|
||||
htmltext = "31795-03.htm";
|
||||
break;
|
||||
}
|
||||
case FRED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33179-01.html";
|
||||
}
|
||||
else if (qs.isCond(2))
|
||||
{
|
||||
htmltext = "33179-04.html";
|
||||
}
|
||||
else if (qs.isCond(3)) // go to race master
|
||||
{
|
||||
switch (player.getRace())
|
||||
{
|
||||
case HUMAN:
|
||||
{
|
||||
if (player.isMageClass())
|
||||
{
|
||||
qs.setCond(4); // go to High Priest Raymond Einhasad Temple
|
||||
htmltext = "33179-05a.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setCond(5); // go to Grand Master Rains
|
||||
htmltext = "33179-05b.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ELF:
|
||||
{
|
||||
if (player.isMageClass())
|
||||
{
|
||||
qs.setCond(11); // Grand Magister Esrandell in Einhasad Temple
|
||||
htmltext = "33179-06a.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setCond(10); // Grand Master Ellenia in Warrior Guild
|
||||
htmltext = "33179-06b.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case DARK_ELF:
|
||||
{
|
||||
qs.setCond(6); // go to Tobias DE guild
|
||||
htmltext = "33179-07.html";
|
||||
break;
|
||||
}
|
||||
case ORC:
|
||||
{
|
||||
qs.setCond(7); // High Prefect Drikus in Orc Guild
|
||||
htmltext = "33179-08.html";
|
||||
break;
|
||||
}
|
||||
case DWARF:
|
||||
{
|
||||
qs.setCond(8); // Head Blacksmith Mendio in the Blacksmith Workshop
|
||||
htmltext = "33179-09.html";
|
||||
break;
|
||||
}
|
||||
case KAMAEL:
|
||||
{
|
||||
qs.setCond(9); // Grand Master Gershwin in Kamael Guild
|
||||
htmltext = "33179-10.html";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case RAYMOND: // TODO: get all race-specific texts
|
||||
case RAINS:
|
||||
case DRIKUS:
|
||||
case MENDIO:
|
||||
case GERSHWIN:
|
||||
case ELLENIA:
|
||||
case ESRANDELL:
|
||||
case TOBIAS:
|
||||
{
|
||||
if (qs.getCond() > 3)
|
||||
{
|
||||
htmltext = "30297-01.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||
if ((qs != null) && qs.isStarted() && qs.isCond(2) && (Util.checkIfInRange(1500, npc, qs.getPlayer(), false)))
|
||||
{
|
||||
if (getQuestItemsCount(qs.getPlayer(), SUSPICIOUS_FRAGMENT) < SUSPICIOUS_FRAGMENT_REQUIRED)
|
||||
{
|
||||
giveItemRandomly(qs.getPlayer(), npc, SUSPICIOUS_FRAGMENT, 1, SUSPICIOUS_FRAGMENT_REQUIRED, 0.25, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
qs.setCond(3);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/no_level.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10359_SakumsTrace/no_level.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 34 to level 40)
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-01.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-01.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
The biggest problem is the appearance of the Ancient Monster Sakum. The native monsters have become agitated by his arrival, and many have become much stronger, while others have come from the depths of the world itself!<br>
|
||||
Sigh... There are too many monsters, and not enough arriors. We need help.<br>
|
||||
<button align=left icon=NORMAl action="bypass -h Quest Q10368_RebellionOfMonsters 33179-02.htm" >"Tell me what's going on."</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-02.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-02.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
The monsters that have recently been running rampant are the Weary Jaguars and Ant Soldiers. They are not that ferocious, but their numbers are growing faster than we can control them.<br>
|
||||
Can you help?<br>
|
||||
<button align=left icon=NORMAl action="bypass -h Quest Q10368_RebellionOfMonsters 33179-03.htm" >"Of course."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-03.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
Excellent! please defeat the <font color="LEVEL">Weary Jaguars, Weary Jaguar Scouts, Ant Soldiers, and Ant Warrior Captains</font> here in the Wasteland.<br>
|
||||
I'm sorry that I've assigned you several things. But timing is delicate thing...
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-04.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-04.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
Please defeat the <font color="LEVEL">Weary Jaguars, Weary Jaguar Scouts, Ant Soldiers, and Ant Warrior Captains</font> here in the Wasteland. Go!
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-05.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/33179-05.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Fred:<br>
|
||||
Ah, excellent - I thought they'd piped down a bit since you left!<br>
|
||||
Thanks to you, the wasteland search will be much easier now. Thank you!
|
||||
</body></html>
|
167
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/Q10368_RebellionOfMonsters.java
vendored
Normal file
167
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/Q10368_RebellionOfMonsters.java
vendored
Normal file
@ -0,0 +1,167 @@
|
||||
/*
|
||||
* Copyright (C) 2004-2015 L2J Server
|
||||
*
|
||||
* This file is part of L2J Server.
|
||||
*
|
||||
* L2J Server 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 Server 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.Q10368_RebellionOfMonsters;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
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;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExQuestNpcLogList;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Rebellion of Monsters (10368)
|
||||
* @author spider
|
||||
*/
|
||||
public class Q10368_RebellionOfMonsters extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int FRED = 33179;
|
||||
// Monsters
|
||||
private static final int WEARY_JAGUAR = 23024;
|
||||
private static final int WEARY_JAGUAR_SCOUT = 23025;
|
||||
private static final int ANT_SOLDIER = 23099;
|
||||
private static final int ANT_WARRIOR_CAPTAIN = 23100;
|
||||
private static final HashMap<Integer, Integer> MOBS_REQUIRED = new HashMap<>();
|
||||
{
|
||||
MOBS_REQUIRED.put(WEARY_JAGUAR, 10);
|
||||
MOBS_REQUIRED.put(WEARY_JAGUAR_SCOUT, 15);
|
||||
MOBS_REQUIRED.put(ANT_SOLDIER, 15);
|
||||
MOBS_REQUIRED.put(ANT_WARRIOR_CAPTAIN, 20);
|
||||
}
|
||||
|
||||
// Rewards
|
||||
private static final int ADENA_REWARD = 99000;
|
||||
private static final int EXP_REWARD = 750000;
|
||||
private static final int SP_REWARD = 180;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 34;
|
||||
private static final int MAX_LEVEL = 40;
|
||||
|
||||
public Q10368_RebellionOfMonsters()
|
||||
{
|
||||
super(10368, Q10368_RebellionOfMonsters.class.getSimpleName(), "Rebellion of Monsters");
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.htm");
|
||||
addStartNpc(FRED);
|
||||
addTalkId(FRED);
|
||||
addKillId(MOBS_REQUIRED.keySet());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, false);
|
||||
if (qs == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "33179-02.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33179-03.htm": // start quest
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.set(Integer.toString(WEARY_JAGUAR), 0);
|
||||
qs.set(Integer.toString(WEARY_JAGUAR_SCOUT), 0);
|
||||
qs.set(Integer.toString(ANT_SOLDIER), 0);
|
||||
qs.set(Integer.toString(ANT_WARRIOR_CAPTAIN), 0);
|
||||
qs.setCond(2);
|
||||
qs.setCond(1); // arrow hack
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState qs = getQuestState(player, true);
|
||||
String htmltext = null;
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = "33179-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33179-04.html";
|
||||
}
|
||||
else if (qs.isCond(2)) // end quest
|
||||
{
|
||||
giveAdena(player, ADENA_REWARD, true);
|
||||
addExpAndSp(player, EXP_REWARD, SP_REWARD);
|
||||
qs.unset(Integer.toString(WEARY_JAGUAR));
|
||||
qs.unset(Integer.toString(WEARY_JAGUAR_SCOUT));
|
||||
qs.unset(Integer.toString(ANT_SOLDIER));
|
||||
qs.unset(Integer.toString(ANT_WARRIOR_CAPTAIN));
|
||||
qs.exitQuest(false, true);
|
||||
htmltext = "33179-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getRandomPartyMemberState(killer, -1, 3, npc);
|
||||
if ((qs != null) && qs.isStarted() && qs.isCond(1) && (Util.checkIfInRange(1500, npc, qs.getPlayer(), false)))
|
||||
{
|
||||
if (qs.getInt(Integer.toString(npc.getId())) < MOBS_REQUIRED.get(npc.getId()))
|
||||
{
|
||||
int kills = qs.getInt(Integer.toString(npc.getId()));
|
||||
kills++;
|
||||
qs.set(Integer.toString(npc.getId()), kills);
|
||||
}
|
||||
|
||||
ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
|
||||
log.addNpc(WEARY_JAGUAR, qs.getInt(Integer.toString(WEARY_JAGUAR)));
|
||||
log.addNpc(WEARY_JAGUAR_SCOUT, qs.getInt(Integer.toString(WEARY_JAGUAR_SCOUT)));
|
||||
log.addNpc(ANT_SOLDIER, qs.getInt(Integer.toString(ANT_SOLDIER)));
|
||||
log.addNpc(ANT_WARRIOR_CAPTAIN, qs.getInt(Integer.toString(ANT_WARRIOR_CAPTAIN)));
|
||||
killer.sendPacket(log);
|
||||
|
||||
if ((qs.getInt(Integer.toString(WEARY_JAGUAR)) >= MOBS_REQUIRED.get(WEARY_JAGUAR)) && (qs.getInt(Integer.toString(WEARY_JAGUAR_SCOUT)) >= MOBS_REQUIRED.get(WEARY_JAGUAR_SCOUT)) && (qs.getInt(Integer.toString(ANT_SOLDIER)) >= MOBS_REQUIRED.get(ANT_SOLDIER)) && (qs.getInt(Integer.toString(ANT_WARRIOR_CAPTAIN)) >= MOBS_REQUIRED.get(ANT_WARRIOR_CAPTAIN)))
|
||||
{
|
||||
qs.setCond(2);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/no_level.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10368_RebellionOfMonsters/no_level.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 34 to level 40)
|
||||
</body></html>
|
@ -203,7 +203,9 @@ import quests.Q10336_DividedSakumKanilov.Q10336_DividedSakumKanilov;
|
||||
import quests.Q10337_SakumsInfluence.Q10337_SakumsInfluence;
|
||||
import quests.Q10338_SeizeYourDestiny.Q10338_SeizeYourDestiny;
|
||||
import quests.Q10358_DividedSakumPoslof.Q10358_DividedSakumPoslof;
|
||||
import quests.Q10359_SakumsTrace.Q10359_SakumsTrace;
|
||||
import quests.Q10365_SeekerEscort.Q10365_SeekerEscort;
|
||||
import quests.Q10368_RebellionOfMonsters.Q10368_RebellionOfMonsters;
|
||||
import quests.Q10390_KekropusLetter.Q10390_KekropusLetter;
|
||||
import quests.Q10393_KekropusLetter_AClueCompleted.Q10393_KekropusLetter_AClueCompleted;
|
||||
import quests.Q10397_KekropusLetter_ASuspiciousBadge.Q10397_KekropusLetter_ASuspiciousBadge;
|
||||
@ -425,7 +427,9 @@ public class QuestMasterHandler
|
||||
Q10337_SakumsInfluence.class,
|
||||
Q10338_SeizeYourDestiny.class,
|
||||
Q10358_DividedSakumPoslof.class,
|
||||
Q10359_SakumsTrace.class,
|
||||
Q10365_SeekerEscort.class,
|
||||
Q10368_RebellionOfMonsters.class,
|
||||
Q10390_KekropusLetter.class,
|
||||
Q10393_KekropusLetter_AClueCompleted.class,
|
||||
Q10397_KekropusLetter_ASuspiciousBadge.class,
|
||||
|
Reference in New Issue
Block a user