Merged with released L2J-Unity files.
This commit is contained in:
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-01.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-01.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Guard Lef thinks the world of you. Goodbye.
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<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>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-02.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-02.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Sakum has been causing such mayhem.<br>
|
||||
(Quest only available to those who are on Hatched Sakum and Poslof.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-03.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-03.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Were 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-04.htm">"Fine, defeated Poslof, here is the sketch."</Button>
|
||||
</body></html>
|
||||
@@ -1,5 +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>
|
||||
<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-05.htm">Here</Button>
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-05.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-05.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
Hmmm<EFBFBD> yes. This sketch is much better than the other images we have received about Sakum. It appears to have changed since your encounter with it on Talking Island.<br>
|
||||
I will let Baron Lewin Walder know about this<69> it is only a matter of time before we deal the killing blow to Sakum.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-06.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/31795-06.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Adventure Guildsman:<br>
|
||||
I hope the guards at the Ruins of Despair can go back to their family.<br>
|
||||
(Quest is already complete.)
|
||||
</body></html>
|
||||
@@ -1,5 +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>
|
||||
<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 a 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>
|
||||
@@ -1,6 +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>
|
||||
<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 isn<EFBFBD>t just one of them<EFBFBD> we are receiving reports from guards in other locations of multiple Poslof sightings.<br>
|
||||
Kind of a 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<EFBFBD>m not sure where it is at the moment. I don<EFBFBD>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>
|
||||
@@ -1,4 +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.
|
||||
<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>
|
||||
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-04.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-04.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
We are still trying to locate Poslof. Meanwhile, if you could go defeat the enraged <font color="LEVEL">Veelan Bugbears and Zombie Warriors</font>, that would be most helpful.
|
||||
</body></html>
|
||||
@@ -1,4 +0,0 @@
|
||||
<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>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-05.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-05.htm
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 there.<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 the Sakum Sketch. It isn<73>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>
|
||||
@@ -1,3 +0,0 @@
|
||||
<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>
|
||||
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-06.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-06.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
If you defeat Poslof, please deliver the sketch of Sakum to an <font color="LEVEL">Adventure Guildsman</font> in the <font color="LEVEL">Town of Gludio</font>.
|
||||
</body></html>
|
||||
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-07.htm
vendored
Normal file
3
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-07.htm
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
I just knew you could defeat Poslof! Now, deliver that sketch of Sakumto an <font color="LEVEL">Adventure Guildsman</font> in the <font color="LEVEL">Town of Gludio</font>.
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-08.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-08.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
Even though Poslof has been defeated, some of the creatures stirred up by Sakum are still on the rampage.<br>
|
||||
(You have already completed this quest.)
|
||||
</body></html>
|
||||
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-09.htm
vendored
Normal file
4
trunk/dist/game/data/scripts/quests/Q10358_DividedSakumPoslof/33510-09.htm
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
<html><body>Guard Lef:<br>
|
||||
What are you doing around here? Don't you know it's dangerous? For your safety, please return to the village.<br>
|
||||
(Only characters between Level 32 and 40, who have completed Sakum's Influence can take on this quest.)
|
||||
</body></html>
|
||||
@@ -1,230 +1,229 @@
|
||||
/*
|
||||
* 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.Q10358_DividedSakumPoslof;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ExQuestNpcLogList;
|
||||
import com.l2jmobius.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))
|
||||
{
|
||||
final 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))
|
||||
{
|
||||
final ExQuestNpcLogList log = new ExQuestNpcLogList(getId());
|
||||
log.addNpc(POSLOF, qs.getInt(Integer.toString(POSLOF)));
|
||||
killer.sendPacket(log);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* 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.Q10358_DividedSakumPoslof;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestSound;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.NpcLogListHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
import quests.Q10337_SakumsImpact.Q10337_SakumsImpact;
|
||||
|
||||
/**
|
||||
* Divided Sakum, Poslof (10358)
|
||||
* @author St3eT
|
||||
*/
|
||||
public final class Q10358_DividedSakumPoslof extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int LEF = 33510;
|
||||
private static final int ADVENTURER_GUIDE = 31795;
|
||||
private static final int ZOMBIE_WARRIOR = 20458;
|
||||
private static final int VEELEAN = 20402; // Veelan Bugbear Warrior
|
||||
private static final int POSLOF = 27452;
|
||||
// Items
|
||||
private static final int SAKUM_SKETCH = 17585;
|
||||
// Misc
|
||||
private static final int MIN_LEVEL = 33;
|
||||
private static final int MAX_LEVEL = 40;
|
||||
|
||||
public Q10358_DividedSakumPoslof()
|
||||
{
|
||||
super(10358);
|
||||
addStartNpc(LEF);
|
||||
addTalkId(LEF, ADVENTURER_GUIDE);
|
||||
addKillId(ZOMBIE_WARRIOR, VEELEAN, POSLOF);
|
||||
registerQuestItems(SAKUM_SKETCH);
|
||||
addCondCompletedQuest(Q10337_SakumsImpact.class.getSimpleName(), "33510-09.htm");
|
||||
addCondLevel(MIN_LEVEL, MAX_LEVEL, "33510-09.htm");
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
final QuestState st = getQuestState(player, false);
|
||||
if (st == null)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
String htmltext = null;
|
||||
switch (event)
|
||||
{
|
||||
case "33510-02.htm":
|
||||
case "31795-04.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "33510-03.htm":
|
||||
{
|
||||
st.startQuest();
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
case "31795-05.htm":
|
||||
{
|
||||
if (st.isCond(4))
|
||||
{
|
||||
giveAdena(player, 1050, true);
|
||||
addExpAndSp(player, 750000, 180);
|
||||
st.exitQuest(false, true);
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance player, boolean isSimulated)
|
||||
{
|
||||
String htmltext = getNoQuestMsg(player);
|
||||
final QuestState st = getQuestState(player, true);
|
||||
|
||||
switch (st.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = npc.getId() == LEF ? "33510-01.htm" : "31795-02.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
switch (st.getCond())
|
||||
{
|
||||
case 1:
|
||||
{
|
||||
htmltext = npc.getId() == LEF ? "33510-04.htm" : "31795-01.htm";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
if (npc.getId() == LEF)
|
||||
{
|
||||
if (!isSimulated)
|
||||
{
|
||||
st.setCond(3);
|
||||
giveItems(player, SAKUM_SKETCH, 1);
|
||||
}
|
||||
htmltext = "33510-05.htm";
|
||||
}
|
||||
else if (npc.getId() == ADVENTURER_GUIDE)
|
||||
{
|
||||
htmltext = "31795-01.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
htmltext = npc.getId() == LEF ? "33510-06.htm" : "31795-01.htm";
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
htmltext = npc.getId() == LEF ? "33510-07.htm" : "31795-03.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
htmltext = npc.getId() == LEF ? "33510-08.htm" : "31795-06.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState st = getQuestState(killer, false);
|
||||
|
||||
if ((st != null) && st.isStarted())
|
||||
{
|
||||
if (st.isCond(1))
|
||||
{
|
||||
int killedZombies = st.getInt("killed_" + ZOMBIE_WARRIOR);
|
||||
int killedVeelans = st.getInt("killed_" + VEELEAN);
|
||||
|
||||
if (npc.getId() == ZOMBIE_WARRIOR)
|
||||
{
|
||||
if (killedZombies < 20)
|
||||
{
|
||||
killedZombies++;
|
||||
st.set("killed_" + ZOMBIE_WARRIOR, killedZombies);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (killedVeelans < 23)
|
||||
{
|
||||
killedVeelans++;
|
||||
st.set("killed_" + VEELEAN, killedVeelans);
|
||||
playSound(killer, QuestSound.ITEMSOUND_QUEST_ITEMGET);
|
||||
}
|
||||
}
|
||||
|
||||
if ((killedZombies == 20) && (killedVeelans == 23))
|
||||
{
|
||||
st.setCond(2, true);
|
||||
}
|
||||
sendNpcLogList(killer);
|
||||
}
|
||||
else if (st.isCond(3))
|
||||
{
|
||||
st.set("killed_" + POSLOF, 1);
|
||||
st.setCond(4);
|
||||
}
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<NpcLogListHolder> getNpcLogList(L2PcInstance activeChar)
|
||||
{
|
||||
final QuestState st = getQuestState(activeChar, false);
|
||||
if ((st != null) && st.isStarted())
|
||||
{
|
||||
if (st.isCond(1))
|
||||
{
|
||||
final Set<NpcLogListHolder> npcLogList = new HashSet<>(2);
|
||||
npcLogList.add(new NpcLogListHolder(ZOMBIE_WARRIOR, false, st.getInt("killed_" + ZOMBIE_WARRIOR)));
|
||||
npcLogList.add(new NpcLogListHolder(VEELEAN, false, st.getInt("killed_" + VEELEAN)));
|
||||
return npcLogList;
|
||||
}
|
||||
else if (st.isCond(3))
|
||||
{
|
||||
final Set<NpcLogListHolder> npcLogList = new HashSet<>(1);
|
||||
npcLogList.add(new NpcLogListHolder(POSLOF, false, st.getInt("killed_" + POSLOF)));
|
||||
return npcLogList;
|
||||
}
|
||||
}
|
||||
return super.getNpcLogList(activeChar);
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
<html><body>You don't meet level requirements<br>
|
||||
(Quest available from level 33 to level 40)
|
||||
</body></html>
|
||||
Reference in New Issue
Block a user