Quest Divided Sakum, Poslof (10358).
Contributed by spider.
This commit is contained in:
parent
800d1ee500
commit
b43e2596a2
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-01.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-01.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Where you able to find a decent sketch of Sakum? What? Oh, yes I'm glad to see you are okay. Now, did you find a decent sketch of Sakum?<br>
|
||||
<button align="LEFT" icon=NORMAL action="bypass -h Quest Q10358_DividedSakumPoslof 31795-02.html">"Fine, defeated Poslof, here is the sketch."</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-02.html
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-02.html
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Poslof? Really?<br>
|
||||
Awesome. Let me see the sketch of Sakum. I hear that Guard Lef is quite the artist.<br>
|
||||
<button align="LEFT" icon=NORMAL action="bypass -h Quest Q10358_DividedSakumPoslof 31795-03.html">Here</button>
|
||||
</body></html>
|
5
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-01.htm
vendored
Normal file
5
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-01.htm
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
Again, I apologize for Silvan's severe lack of judgment and promising you something that he does not have the right to promise... so save the angry stare.<br>
|
||||
I am willing to give you the sketch but you need to do something for me first. There is creature called Poslof that has been causing the creatures in the area to become... agitated. I need you to eliminate this problem.<br>
|
||||
<button align="LEFT" icon=NORMAL action="bypass -h Quest Q10358_DividedSakumPoslof 33510-02.htm">"What is Poslof?"</button>
|
||||
</body></html>
|
6
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-02.htm
vendored
Normal file
6
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-02.htm
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
The best way to describe it is <font color="LEVEL">Poslof</font> is <font color="LEVEL">a portion</font> of <font color="LEVEL">Sakum</font> that is able to exist on its own. Bad news is that it sin't just one of them... we are receiving reports from guards in other locations of multiple Poslof sightings.<br>
|
||||
Kind of bad day to find out that your only problem just turned into several problems.<br>
|
||||
I would send you out to defeat Poslof, but I'm not sure where it is at the moment. I don't suppose you would be interested in de-raging the rampaging creatures in the area until I can find out where Poslof is?<br>
|
||||
<button align="LEFT" icon=NORMAL action="bypass -h Quest Q10358_DividedSakumPoslof 33510-03.htm">"It sounds like fun."</button>
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-03.htm
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
Fantastic! the <font color="LEVEL">Veelan Bugbears and Zombie warriors</font> have been particularly unruly as of late. Defeat 20 Zombie Warriors and 23 Veelan Bugbears.<br>
|
||||
By the time you are done I should have more information on where to locate Poslof.
|
||||
</body></html>
|
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-04.html
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-04.html
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
Excellent timing! Another guard has informed me that Poslof has been sighted near the ruined house just below that hill over here.<br>
|
||||
You know what you have to do. Poslof posses just as great a threat to this area as Sakum does. I know you will be in a hurry, so I'm going to go ahead and give you Sakum Sketch. It isn't my best work but it is probably the best out of all the others. Once you have finished your business with Poslof you may <font color="LEVEL">deliver the sketch to the Adventure Guildsman in the Town of Gludio</font>.
|
||||
</body></html>
|
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-05.html
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-05.html
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
If you defeat Poslof, please deliver the sketch of Sakum to and <font color="LEVEL">Adventure Guildsman</font> in the <font color="LEVEL">Town of Gludio</font>.
|
||||
</body></html>
|
233
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/Q10358_DividedSakumPoslof.java
vendored
Normal file
233
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/Q10358_DividedSakumPoslof.java
vendored
Normal file
@ -0,0 +1,233 @@
|
||||
/*
|
||||
* 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.Q10358_DividedSakumPoslof;
|
||||
|
||||
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;
|
||||
import com.l2jserver.gameserver.model.quest.State;
|
||||
import com.l2jserver.gameserver.network.serverpackets.ExQuestNpcLogList;
|
||||
import com.l2jserver.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* Divided Sakum, Poslof (10358)
|
||||
* @author spider
|
||||
*/
|
||||
public class Q10358_DividedSakumPoslof extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int LEF = 33510;
|
||||
private static final int ADV_GUILDSMAN = 31795;
|
||||
// Monsters
|
||||
private static final int POSLOF = 27452;
|
||||
private static final int ZOMBIE_WARRIOR = 20458;
|
||||
private static final int VEELAN_BUGBEAR_WARRIOR = 20402;
|
||||
private static final Map<Integer, Integer> MOBS_REQUIRED = new HashMap<>();
|
||||
{
|
||||
MOBS_REQUIRED.put(ZOMBIE_WARRIOR, 20);
|
||||
MOBS_REQUIRED.put(VEELAN_BUGBEAR_WARRIOR, 23);
|
||||
MOBS_REQUIRED.put(POSLOF, 0);
|
||||
}
|
||||
// Item
|
||||
private static final int SAKUMS_SKETCH_B = 17585;
|
||||
// Rewards
|
||||
private static final int ADENA_REWARD = 105000;
|
||||
private static final int EXP_REWARD = 750000;
|
||||
private static final int SP_REWARD = 180;
|
||||
// Others
|
||||
private static final int MIN_LEVEL = 33;
|
||||
private static final int MAX_LEVEL = 40;
|
||||
|
||||
public Q10358_DividedSakumPoslof()
|
||||
{
|
||||
super(10358, Q10358_DividedSakumPoslof.class.getSimpleName(), "Divided Sakum, Poslof");
|
||||
addStartNpc(LEF);
|
||||
addTalkId(LEF, ADV_GUILDSMAN);
|
||||
addKillId(ZOMBIE_WARRIOR, VEELAN_BUGBEAR_WARRIOR, POSLOF);
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "no_level.htm");
|
||||
registerQuestItems(SAKUMS_SKETCH_B);
|
||||
}
|
||||
|
||||
@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 "31795-02.html":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31795-03.html":
|
||||
{
|
||||
if (qs.isCond(4))
|
||||
{
|
||||
giveAdena(player, ADENA_REWARD, true);
|
||||
addExpAndSp(player, EXP_REWARD, SP_REWARD);
|
||||
qs.exitQuest(false, true);
|
||||
qs.unset(Integer.toString(ZOMBIE_WARRIOR));
|
||||
qs.unset(Integer.toString(VEELAN_BUGBEAR_WARRIOR));
|
||||
qs.unset(Integer.toString(POSLOF));
|
||||
// htmltext = null; // got nothing on retail, retail-like bug? :D
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "33510-02.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33510-03.htm":
|
||||
{
|
||||
qs.startQuest();
|
||||
qs.set(Integer.toString(ZOMBIE_WARRIOR), 0);
|
||||
qs.set(Integer.toString(VEELAN_BUGBEAR_WARRIOR), 0);
|
||||
|
||||
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() == LEF ? "33510-01.htm" : getNoQuestMsg(player);
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (npc.getId())
|
||||
{
|
||||
case LEF:
|
||||
{
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
htmltext = "33510-03.htm";
|
||||
}
|
||||
else if (qs.isCond(2)) // mobs killed
|
||||
{
|
||||
qs.setCond(3);
|
||||
giveItems(player, SAKUMS_SKETCH_B, 1);
|
||||
qs.set(Integer.toString(POSLOF), 0);
|
||||
htmltext = "33510-04.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "33510-05.html";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ADV_GUILDSMAN:
|
||||
{
|
||||
if (qs.isCond(4)) // poslof defeated
|
||||
{
|
||||
htmltext = "31795-01.html";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getNoQuestMsg(player);
|
||||
}
|
||||
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() && (Util.checkIfInRange(1500, npc, qs.getPlayer(), false)))
|
||||
{
|
||||
int kills = 0;
|
||||
switch (npc.getId())
|
||||
{
|
||||
case ZOMBIE_WARRIOR:
|
||||
{
|
||||
kills = qs.getInt(Integer.toString(ZOMBIE_WARRIOR));
|
||||
kills++;
|
||||
qs.set(Integer.toString(ZOMBIE_WARRIOR), kills);
|
||||
break;
|
||||
}
|
||||
case VEELAN_BUGBEAR_WARRIOR:
|
||||
{
|
||||
kills = qs.getInt(Integer.toString(VEELAN_BUGBEAR_WARRIOR));
|
||||
kills++;
|
||||
qs.set(Integer.toString(VEELAN_BUGBEAR_WARRIOR), kills);
|
||||
break;
|
||||
}
|
||||
case POSLOF:
|
||||
{
|
||||
if (qs.isCond(3))
|
||||
{
|
||||
qs.setCond(4);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
if (qs.isCond(1))
|
||||
{
|
||||
ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
|
||||
log.addNpc(ZOMBIE_WARRIOR, qs.getInt(Integer.toString(ZOMBIE_WARRIOR)));
|
||||
log.addNpc(VEELAN_BUGBEAR_WARRIOR, qs.getInt(Integer.toString(VEELAN_BUGBEAR_WARRIOR)));
|
||||
killer.sendPacket(log);
|
||||
|
||||
if ((qs.getInt(Integer.toString(ZOMBIE_WARRIOR)) >= MOBS_REQUIRED.get(ZOMBIE_WARRIOR)) && (qs.getInt(Integer.toString(VEELAN_BUGBEAR_WARRIOR)) >= MOBS_REQUIRED.get(VEELAN_BUGBEAR_WARRIOR)))
|
||||
{
|
||||
qs.setCond(2); // mobs killed
|
||||
}
|
||||
}
|
||||
else if (qs.isCond(3))
|
||||
{
|
||||
ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
|
||||
log.addNpc(POSLOF, qs.getInt(Integer.toString(POSLOF)));
|
||||
killer.sendPacket(log);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/no_level.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/no_level.htm
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 33 to level 40)
|
||||
</body></html>
|
@ -202,6 +202,7 @@ import quests.Q10335_RequestToFindSakum.Q10335_RequestToFindSakum;
|
||||
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.Q10365_SeekerEscort.Q10365_SeekerEscort;
|
||||
import quests.Q10390_KekropusLetter.Q10390_KekropusLetter;
|
||||
import quests.Q10393_KekropusLetter_AClueCompleted.Q10393_KekropusLetter_AClueCompleted;
|
||||
@ -423,6 +424,7 @@ public class QuestMasterHandler
|
||||
Q10336_DividedSakumKanilov.class,
|
||||
Q10337_SakumsInfluence.class,
|
||||
Q10338_SeizeYourDestiny.class,
|
||||
Q10358_DividedSakumPoslof.class,
|
||||
Q10365_SeekerEscort.class,
|
||||
Q10390_KekropusLetter.class,
|
||||
Q10393_KekropusLetter_AClueCompleted.class,
|
||||
|
Loading…
Reference in New Issue
Block a user