Dungeon of Abyss AIs.
Contributed by quangnguyen.
This commit is contained in:
parent
7dc26ac585
commit
5d64cdc505
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Magrit:<br>
|
||||
The Death Eater is the most powerful and dangerous creature in this prison.<br1>
|
||||
If you have the <font color="LEVEL">Key from the Central Part of the Western Wing of the Dungeon of Abyss</font>, You can get to the Death Eater.<br1>
|
||||
However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have <font color="LEVEL">30 minutes</font> to destroy it.<br>
|
||||
If you decide to retreat or fail and want to try your luck some other time, you will need a new key.<br>
|
||||
And more: if <font color="LEVEL">the quantity and weight of items in your inventory will exceed 80%</font>, You can not get a reward, so take care of an empty seat before the battle begins.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Magrit 3">Go to the Condemned of Abyss Prison</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Magrit:<br>
|
||||
An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Magrit 1">Go to the West Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Magrit 2">Go to the 2nd entrance to the West Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">Go to the Condemned of Abyss Prison</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Magrit 4">Return to Aden</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Ingrit:<br>
|
||||
The Death Eater is the most powerful and dangerous creature in this prison.<br1>
|
||||
If you have the <font color="LEVEL">Key from the Central Part of the Western Wing of the Dungeon of Abyss</font>, You can get to the Death Eater.<br1>
|
||||
However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have <font color="LEVEL">30 minutes</font> to destroy it.<br>
|
||||
If you decide to retreat or fail and want to try your luck some other time, you will need a new key.<br>
|
||||
And more: if <font color="LEVEL">the quantity and weight of items in your inventory will exceed 80%</font>, You can not get a reward, so take care of an empty seat before the battle begins.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Ingrit 3">Go to the Condemned of Abyss Prison</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Ingrit:<br>
|
||||
An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Ingrit 1">Go to the West Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Ingrit 2">Go to the 1nd entrance to the West Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">Go to the Condemned of Abyss Prison</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Ingrit 4">Return to Aden</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Iris:<br>
|
||||
The Death Eater is the most powerful and dangerous creature in this prison.<br1>
|
||||
If you have the <font color="LEVEL">Key from the Central Part of the Western Wing of the Dungeon of Abyss</font>, You can get to the Death Eater.<br1>
|
||||
However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have <font color="LEVEL">30 minutes</font> to destroy it.<br>
|
||||
If you decide to retreat or fail and want to try your luck some other time, you will need a new key.<br>
|
||||
And more: if <font color="LEVEL">the quantity and weight of items in your inventory will exceed 80%</font>, You can not get a reward, so take care of an empty seat before the battle begins.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Iris 3">Go to the Condemned of Abyss Prison</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Iris:<br>
|
||||
An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Iris 1">Go to the East Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Iris 2">Go to the 2nd entrance to the East Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">Go to the Condemned of Abyss Prison</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Iris 4">Return to Aden</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Rosammy:<br>
|
||||
The Death Eater is the most powerful and dangerous creature in this prison.<br1>
|
||||
If you have the <font color="LEVEL">Key from the Central Part of the Western Wing of the Dungeon of Abyss</font>, You can get to the Death Eater.<br1>
|
||||
However, remember: you will be alone with him. No one will come to your rescue. In addition, you will only have <font color="LEVEL">30 minutes</font> to destroy it.<br>
|
||||
If you decide to retreat or fail and want to try your luck some other time, you will need a new key.<br>
|
||||
And more: if <font color="LEVEL">the quantity and weight of items in your inventory will exceed 80%</font>, You can not get a reward, so take care of an empty seat before the battle begins.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Rosammy 3">Go to the Condemned of Abyss Prison</Button>
|
||||
</body></html>
|
@ -0,0 +1,9 @@
|
||||
<html><head><body>
|
||||
Rosammy:<br>
|
||||
An incident occurred in this terrifying prison and put the whole Kingdom of Aden at risk..<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Rosammy 1">Go to the East Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Rosammy 2">Go to the 1nd entrance to the East Wing of the Dungeon of Abyss</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">Go to the Condemned of Abyss Prison</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Rosammy 4">Return to Aden</Button>
|
||||
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
|
||||
</body></html>
|
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 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 ai.areas.DungeonOfAbyss.SoulTracker;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Ingrit extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int SOUL_TRACKER_INRGIT = 31775;
|
||||
// Item
|
||||
private static final int KEY_OF_WEST_WING = 90010;
|
||||
// Locations
|
||||
private static final Map<String, Location> LOCATIONS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
LOCATIONS.put("1", new Location(-119533, -179641, -6751)); // Join Room from Ingrit
|
||||
LOCATIONS.put("2", new Location(-120325, -182444, -6752)); // Move to West Wing 1nd
|
||||
LOCATIONS.put("3", new Location(-116975, -178699, -6751)); // Go to the Condemned of Abyss Prison
|
||||
LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
|
||||
}
|
||||
|
||||
private Ingrit()
|
||||
{
|
||||
addStartNpc(SOUL_TRACKER_INRGIT);
|
||||
addTalkId(SOUL_TRACKER_INRGIT);
|
||||
addFirstTalkId(SOUL_TRACKER_INRGIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_INRGIT)
|
||||
{
|
||||
QuestState qs = player.getQuestState("Q00933_ExploringTheWestWingOfTheDungeonOfAbyss");
|
||||
switch (event)
|
||||
{
|
||||
case "1":
|
||||
{
|
||||
if ((qs != null) && qs.isStarted())
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Join Room from Ingrit
|
||||
}
|
||||
else
|
||||
{
|
||||
return "no_enter.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "2":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Move to West Wing 1nd
|
||||
break;
|
||||
}
|
||||
case "3":
|
||||
{
|
||||
if (!hasQuestItems(player, KEY_OF_WEST_WING))
|
||||
{
|
||||
return "no_key.htm";
|
||||
}
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
|
||||
break;
|
||||
}
|
||||
case "4":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Ingrit();
|
||||
}
|
||||
}
|
109
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Iris.java
vendored
Normal file
109
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/SoulTracker/Iris.java
vendored
Normal file
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 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 ai.areas.DungeonOfAbyss.SoulTracker;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Iris extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int SOUL_TRACKER_IRIS = 31776;
|
||||
// Item
|
||||
private static final int KEY_OF_EAST_WING = 90011;
|
||||
// Locations
|
||||
private static final Map<String, Location> LOCATIONS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
LOCATIONS.put("1", new Location(-110038, -180560, -6754)); // Join Room from Iris
|
||||
LOCATIONS.put("2", new Location(-109234, -177737, -6751)); // Move to East Wing 2nd
|
||||
LOCATIONS.put("3", new Location(-112648, -181517, -6751)); // Go to the Condemned of Abyss Prison
|
||||
LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
|
||||
}
|
||||
|
||||
private Iris()
|
||||
{
|
||||
addStartNpc(SOUL_TRACKER_IRIS);
|
||||
addTalkId(SOUL_TRACKER_IRIS);
|
||||
addFirstTalkId(SOUL_TRACKER_IRIS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_IRIS)
|
||||
{
|
||||
QuestState qs = player.getQuestState("Q00935_ExploringTheEastWingOfTheDungeonOfAbyss");
|
||||
switch (event)
|
||||
{
|
||||
case "1":
|
||||
{
|
||||
if ((qs != null) && qs.isStarted())
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Join Room form Iris
|
||||
}
|
||||
else
|
||||
{
|
||||
return "no_enter.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "2":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Move to East Wing 2nd
|
||||
break;
|
||||
}
|
||||
case "3":
|
||||
{
|
||||
if (!hasQuestItems(player, KEY_OF_EAST_WING))
|
||||
{
|
||||
return "no_key.htm";
|
||||
}
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
|
||||
break;
|
||||
}
|
||||
case "4":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Iris();
|
||||
}
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 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 ai.areas.DungeonOfAbyss.SoulTracker;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Magrit extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int SOUL_TRACKER_MARGIT = 31774;
|
||||
// Item
|
||||
private static final int KEY_OF_WEST_WING = 90010;
|
||||
// Locations
|
||||
private static final Map<String, Location> LOCATIONS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
LOCATIONS.put("1", new Location(-119440, -182464, -6752)); // Join Room from Magrit
|
||||
LOCATIONS.put("2", new Location(-120394, -179651, -6751)); // Move to West Wing 2nd
|
||||
LOCATIONS.put("3", new Location(-116963, -181492, -6575)); // Go to the Condemned of Abyss Prison
|
||||
LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
|
||||
}
|
||||
|
||||
private Magrit()
|
||||
{
|
||||
addStartNpc(SOUL_TRACKER_MARGIT);
|
||||
addTalkId(SOUL_TRACKER_MARGIT);
|
||||
addFirstTalkId(SOUL_TRACKER_MARGIT);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_MARGIT)
|
||||
{
|
||||
QuestState qs = player.getQuestState("Q00933_ExploringTheWestWingOfTheDungeonOfAbyss");
|
||||
switch (event)
|
||||
{
|
||||
case "1":
|
||||
{
|
||||
if ((qs != null) && qs.isStarted())
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Join Room from Magrit
|
||||
}
|
||||
else
|
||||
{
|
||||
return "no_enter.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "2":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Move to West Wing 2nd
|
||||
break;
|
||||
}
|
||||
case "3":
|
||||
{
|
||||
if (!hasQuestItems(player, KEY_OF_WEST_WING))
|
||||
{
|
||||
return "no_key.htm";
|
||||
}
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
|
||||
break;
|
||||
}
|
||||
case "4":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Magrit();
|
||||
}
|
||||
}
|
@ -0,0 +1,109 @@
|
||||
/*
|
||||
* 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 ai.areas.DungeonOfAbyss.SoulTracker;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Rosammy extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int SOUL_TRACKER_ROSAMMY = 31777;
|
||||
// Item
|
||||
private static final int KEY_OF_EAST_WING = 90011;
|
||||
// Locations
|
||||
private static final Map<String, Location> LOCATIONS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
LOCATIONS.put("1", new Location(-110067, -177733, -6751)); // Join Room from Rosammy
|
||||
LOCATIONS.put("2", new Location(-120318, -179626, -6752)); // Move to East Wing 1nd
|
||||
LOCATIONS.put("3", new Location(-112632, -178671, -6751)); // Go to the Condemned of Abyss Prison
|
||||
LOCATIONS.put("4", new Location(146945, 26764, -2200)); // Return to Aden
|
||||
}
|
||||
|
||||
private Rosammy()
|
||||
{
|
||||
addStartNpc(SOUL_TRACKER_ROSAMMY);
|
||||
addTalkId(SOUL_TRACKER_ROSAMMY);
|
||||
addFirstTalkId(SOUL_TRACKER_ROSAMMY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_ROSAMMY)
|
||||
{
|
||||
QuestState qs = player.getQuestState("Q00935_ExploringTheEastWingOfTheDungeonOfAbyss");
|
||||
switch (event)
|
||||
{
|
||||
case "1":
|
||||
{
|
||||
if ((qs != null) && qs.isStarted())
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Join Room Rosammy
|
||||
}
|
||||
else
|
||||
{
|
||||
return "no_enter.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "2":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Move to East Wing 1nd
|
||||
break;
|
||||
}
|
||||
case "3":
|
||||
{
|
||||
if (!hasQuestItems(player, KEY_OF_EAST_WING))
|
||||
{
|
||||
return "no_key.htm";
|
||||
}
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Go to the Condemned of Abyss Prison
|
||||
break;
|
||||
}
|
||||
case "4":
|
||||
{
|
||||
player.teleToLocation(LOCATIONS.get(event), false); // Return to Aden
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Rosammy();
|
||||
}
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
<html><head><body>
|
||||
Magrit:<br>
|
||||
You apparently forgot to take the quest, please take the quest.<br>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><head><body>
|
||||
Magrit:<br>
|
||||
If you do not have the Key, you can not move to the Condemned of Abyss Prison.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><head><body>
|
||||
Tores:<br>
|
||||
It seems to me that you are not strong enough to go on a mission to the Dungeon of Abyss.<br>
|
||||
(Western Wing of the Dungeon of Abyss for characters 40-44 level.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><head><body>
|
||||
Tores:<br>
|
||||
It seems to me that you are not strong enough to go on a mission to the Dungeon of Abyss.<br>
|
||||
(Eastern Wing side of the Dungeon of Abyss for characters 45-49 level.)
|
||||
</body></html>
|
@ -0,0 +1,7 @@
|
||||
<html><head><body>
|
||||
Tores:<br>
|
||||
Have you heard of the Dungeon of Abyss? Especially evil and dangerous monsters are imprisoned there.<br>
|
||||
But someone has recently removed the seal from its gates. If we do nothing… No, only a thought of it scares me. I need your help.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Tores 1">Go to the West Wing of the Dungeon of Abyss (Level 40-44)</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Tores 2">Go to the East Wing of the Dungeon of Abyss (Level 45-49)</Button>
|
||||
</body></html>
|
98
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/Tores.java
vendored
Normal file
98
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/ai/areas/DungeonOfAbyss/Tores/Tores.java
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* 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 ai.areas.DungeonOfAbyss.Tores;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.l2jmobius.gameserver.model.Location;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Tores extends AbstractNpcAI
|
||||
{
|
||||
// NPC
|
||||
private static final int TORES = 31778;
|
||||
// Locations
|
||||
private static final Map<String, Location> LOCATIONS = new HashMap<>();
|
||||
static
|
||||
{
|
||||
// move from Tores
|
||||
LOCATIONS.put("1", new Location(-120325, -182444, -6752)); // Move to Magrit
|
||||
LOCATIONS.put("2", new Location(-109202, -180546, -6751)); // Move to Iris
|
||||
}
|
||||
|
||||
private Tores()
|
||||
{
|
||||
addStartNpc(TORES);
|
||||
addTalkId(TORES);
|
||||
addFirstTalkId(TORES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
return "31778.htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
|
||||
{
|
||||
switch (event)
|
||||
{
|
||||
case "1":
|
||||
{
|
||||
final Location loc = LOCATIONS.get(event);
|
||||
if ((player.getLevel() > 39) && (player.getLevel() < 45))
|
||||
{
|
||||
player.teleToLocation(loc, true);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return "31778-no_level.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "2":
|
||||
{
|
||||
final Location loc = LOCATIONS.get(event);
|
||||
if ((player.getLevel() > 44) && (player.getLevel() < 50))
|
||||
{
|
||||
player.teleToLocation(loc, true);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return "31778-no_level01.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Tores();
|
||||
}
|
||||
}
|
@ -2,8 +2,6 @@
|
||||
911 Request from the Red Libra Guild - Intermediate
|
||||
912 Request from the Red Libra Guild - Advanced
|
||||
913 Request from the Red Libra Guild - Super Advanced
|
||||
933 Exploring the West Wing of the Dungeon of Abyss
|
||||
935 Exploring the East Wing of the Dungeon of Abyss
|
||||
|
||||
NEED TO BE REMADE
|
||||
Q00071_SagaOfEvasTemplar
|
||||
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
I'll tell you the story of this place<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss 31774-02.htm">Listen</button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
You do not meet the requirements of the quest
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
In this area dreadful monsters live ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss 31774-03.htm">Listen further</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
If you help us remove the threat, we will reward you ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss 31774-04.htm">Agree</button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
Did you manage to destroy the inhabitants?<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss end.htm">Yes, I brought evidence</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Ingrit:<br>
|
||||
I'll tell you the story of this place<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss 31775-02.htm">Listen!</button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
Ingrit:<br>
|
||||
You do not meet the requirements of the quest
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Ingrit:<br>
|
||||
In this area dreadful monsters live ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss 31775-03.htm">Listen further</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Ingrit:<br>
|
||||
If you help us remove the threat, we will reward you ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss 31775-04.htm">Agree</button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Ingrit:<br>
|
||||
Did you manage to destroy the inhabitants?<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00933_ExploringTheWestWingOfTheDungeonOfAbyss end.htm">Yes, I brought evidence</button>
|
||||
</body></html>
|
@ -0,0 +1,226 @@
|
||||
/*
|
||||
* 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.Q00933_ExploringTheWestWingOfTheDungeonOfAbyss;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestType;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Q00933_ExploringTheWestWingOfTheDungeonOfAbyss extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int MAGRIT = 31774;
|
||||
private static final int INGRIT = 31775;
|
||||
// Monsters
|
||||
public final int MERTT = 21638;
|
||||
public final int DUHT = 21639;
|
||||
public final int PRIZT = 21640;
|
||||
public final int KOVART = 21641;
|
||||
// Items
|
||||
public final ItemHolder OSKZLA = new ItemHolder(90008, 1);
|
||||
public final ItemHolder POD = new ItemHolder(90136, 1);
|
||||
|
||||
public Q00933_ExploringTheWestWingOfTheDungeonOfAbyss()
|
||||
{
|
||||
super(933);
|
||||
addStartNpc(MAGRIT, INGRIT);
|
||||
addTalkId(MAGRIT, INGRIT);
|
||||
addKillId(MERTT, DUHT, PRIZT, KOVART);
|
||||
registerQuestItems(OSKZLA.getId());
|
||||
}
|
||||
|
||||
@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 "31774-01.htm":
|
||||
case "31774-02.htm":
|
||||
case "31774-03.htm":
|
||||
case "31775-01.htm":
|
||||
case "31775-02.htm":
|
||||
case "31775-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
|
||||
case "31774-04.htm":
|
||||
{
|
||||
if (player.getLevel() >= 40)
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31775-04.htm":
|
||||
{
|
||||
if (player.getLevel() >= 40)
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "end.htm":
|
||||
{
|
||||
player.addExpAndSp(250000, 7700);
|
||||
rewardItems(player, POD);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
final QuestState qs = getQuestState(talker, true);
|
||||
String htmltext = getNoQuestMsg(talker);
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = (talker.getLevel() < 40) ? "nolvl.htm" : "31774-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (npc.getId() == MAGRIT)
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ((qs.getPlayer().getLevel() >= 40) && (qs.getPlayer().getLevel() <= 46))
|
||||
{
|
||||
htmltext = "31774-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31774-01a.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
htmltext = "31774-04.htm";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "31774-05.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (npc.getId() == INGRIT)
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ((qs.getPlayer().getLevel() >= 40) && (qs.getPlayer().getLevel() <= 46))
|
||||
{
|
||||
htmltext = "31775-01.htm";
|
||||
qs.startQuest();
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31775-01a.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
htmltext = "31775-04.htm";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "31775-05.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
if ((npc.getId() == MAGRIT) && (qs.getPlayer().getLevel() < 40))
|
||||
{
|
||||
htmltext = "31774-01.htm";
|
||||
}
|
||||
else if ((npc.getId() == INGRIT) && (qs.getPlayer().getLevel() < 40))
|
||||
{
|
||||
htmltext = "31775-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "nolvl.htm";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(talker);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if (qs.getCond() == 1)
|
||||
{
|
||||
if (getQuestItemsCount(killer, OSKZLA.getId()) < 50)
|
||||
{
|
||||
giveItems(killer, OSKZLA);
|
||||
}
|
||||
if (getQuestItemsCount(killer, OSKZLA.getId()) >= 50)
|
||||
{
|
||||
qs.setCond(2);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
Thanks for the help, here's the reward !!!
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
(This quest is only available to level 40-46 characters.)
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Iris:<br>
|
||||
I'll tell you the story of this place<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss 31776-02.htm">Listen</button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
Iris:<br>
|
||||
You do not meet the requirements of the quest
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Iris:<br>
|
||||
In this area dreadful monsters live ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss 31776-03.htm">Listen further</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Iris:<br>
|
||||
If you help us remove the threat, we will reward you ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss 31776-04.htm">Agree</button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Iris:<br>
|
||||
Did you manage to destroy the inhabitants?<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss end.htm">Yes, I brought evidence</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Rosammy:<br>
|
||||
I'll tell you the story of this place<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss 31777-02.htm">Listen!</button>
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
Rosammy:<br>
|
||||
You do not meet the requirements of the quest
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Rosammy:<br>
|
||||
In this area dreadful monsters live ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss 31777-03.htm">Listen further</button>
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Rosammy:<br>
|
||||
If you help us remove the threat, we will reward you ...<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss 31777-04.htm">Agree</button>
|
||||
</body></html>
|
@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
You are commissioned to study the Abyssal Prison. The aim of the hunt is the Wandering Prisoner, the Wandering Spirit of Prison, the Wandering Ghost of Prison, the Wandering Prickery of Prison. Need to receive a Shard of Evil Shard of Evil - 50 pcs.
|
||||
</body></html>
|
@ -0,0 +1,5 @@
|
||||
<html><body>
|
||||
Rosammy:<br>
|
||||
Did you manage to destroy the inhabitants?<br>
|
||||
<button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q00935_ExploringTheEastWingOfTheDungeonOfAbyss end.htm">Yes, I brought evidence</button>
|
||||
</body></html>
|
@ -0,0 +1,226 @@
|
||||
/*
|
||||
* 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.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss;
|
||||
|
||||
import com.l2jmobius.gameserver.enums.QuestType;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import com.l2jmobius.gameserver.model.quest.Quest;
|
||||
import com.l2jmobius.gameserver.model.quest.QuestState;
|
||||
import com.l2jmobius.gameserver.model.quest.State;
|
||||
|
||||
/**
|
||||
* @author QuangNguyen
|
||||
*/
|
||||
public class Q00935_ExploringTheEastWingOfTheDungeonOfAbyss extends Quest
|
||||
{
|
||||
// NPCs
|
||||
private static final int IRIS = 31776;
|
||||
private static final int ROSAMMY = 31777;
|
||||
// Monsters
|
||||
public final int MERTT = 21644;
|
||||
public final int DUHT = 21645;
|
||||
public final int PRIZT = 21646;
|
||||
public final int KOVART = 21647;
|
||||
// Items
|
||||
public final ItemHolder OSKZLA = new ItemHolder(90009, 1);
|
||||
public final ItemHolder POD = new ItemHolder(90136, 1);
|
||||
|
||||
public Q00935_ExploringTheEastWingOfTheDungeonOfAbyss()
|
||||
{
|
||||
super(935);
|
||||
addStartNpc(IRIS, ROSAMMY);
|
||||
addTalkId(IRIS, ROSAMMY);
|
||||
addKillId(MERTT, DUHT, PRIZT, KOVART);
|
||||
registerQuestItems(OSKZLA.getId());
|
||||
}
|
||||
|
||||
@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 "31776-01.htm":
|
||||
case "31776-02.htm":
|
||||
case "31776-03.htm":
|
||||
case "31777-01.htm":
|
||||
case "31777-02.htm":
|
||||
case "31777-03.htm":
|
||||
{
|
||||
htmltext = event;
|
||||
break;
|
||||
}
|
||||
|
||||
case "31776-04.htm":
|
||||
{
|
||||
if (player.getLevel() >= 45)
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "31777-04.htm":
|
||||
{
|
||||
if (player.getLevel() >= 45)
|
||||
{
|
||||
qs.startQuest();
|
||||
htmltext = event;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "end.htm":
|
||||
{
|
||||
player.addExpAndSp(250000, 7700);
|
||||
rewardItems(player, POD);
|
||||
qs.exitQuest(QuestType.DAILY, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onTalk(L2Npc npc, L2PcInstance talker)
|
||||
{
|
||||
final QuestState qs = getQuestState(talker, true);
|
||||
String htmltext = getNoQuestMsg(talker);
|
||||
switch (qs.getState())
|
||||
{
|
||||
case State.CREATED:
|
||||
{
|
||||
htmltext = (talker.getLevel() < 45) ? "nolvl.htm" : "31776-01.htm";
|
||||
break;
|
||||
}
|
||||
case State.STARTED:
|
||||
{
|
||||
if (npc.getId() == IRIS)
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ((qs.getPlayer().getLevel() >= 45) && (qs.getPlayer().getLevel() <= 49))
|
||||
{
|
||||
htmltext = "31776-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31776-01a.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
htmltext = "31776-04.htm";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "31776-05.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
else if (npc.getId() == ROSAMMY)
|
||||
{
|
||||
switch (qs.getCond())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ((qs.getPlayer().getLevel() >= 45) && (qs.getPlayer().getLevel() <= 49))
|
||||
{
|
||||
htmltext = "31777-01.htm";
|
||||
qs.startQuest();
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "31777-01a.htm";
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
htmltext = "31777-04.htm";
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
htmltext = "31777-05.htm";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case State.COMPLETED:
|
||||
{
|
||||
if (qs.isNowAvailable())
|
||||
{
|
||||
qs.setState(State.CREATED);
|
||||
if ((npc.getId() == IRIS) && (qs.getPlayer().getLevel() < 45))
|
||||
{
|
||||
htmltext = "31776-01.htm";
|
||||
}
|
||||
else if ((npc.getId() == ROSAMMY) && (qs.getPlayer().getLevel() < 45))
|
||||
{
|
||||
htmltext = "31777-01.htm";
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = "nolvl.htm";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
htmltext = getAlreadyCompletedMsg(talker);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return htmltext;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
|
||||
{
|
||||
final QuestState qs = getQuestState(killer, false);
|
||||
if (qs.getCond() == 1)
|
||||
{
|
||||
if (getQuestItemsCount(killer, OSKZLA.getId()) < 50)
|
||||
{
|
||||
giveItems(killer, OSKZLA);
|
||||
}
|
||||
if (getQuestItemsCount(killer, OSKZLA.getId()) >= 50)
|
||||
{
|
||||
qs.setCond(2);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
<html><body>
|
||||
Thanks for the help, here's the reward !!!
|
||||
</body></html>
|
@ -0,0 +1,4 @@
|
||||
<html><body>
|
||||
Magrit:<br>
|
||||
(This quest is only available to level 45-49 characters.)
|
||||
</body></html>
|
@ -51,6 +51,7 @@ import quests.Q00165_ShilensHunt.Q00165_ShilensHunt;
|
||||
import quests.Q00166_MassOfDarkness.Q00166_MassOfDarkness;
|
||||
import quests.Q00167_DwarvenKinship.Q00167_DwarvenKinship;
|
||||
import quests.Q00168_DeliverSupplies.Q00168_DeliverSupplies;
|
||||
import quests.Q00169_OffspringOfNightmares.Q00169_OffspringOfNightmares;
|
||||
import quests.Q00170_DangerousSeduction.Q00170_DangerousSeduction;
|
||||
import quests.Q00211_TrialOfTheChallenger.Q00211_TrialOfTheChallenger;
|
||||
import quests.Q00212_TrialOfDuty.Q00212_TrialOfDuty;
|
||||
@ -146,6 +147,8 @@ import quests.Q00416_PathOfTheOrcShaman.Q00416_PathOfTheOrcShaman;
|
||||
import quests.Q00417_PathOfTheScavenger.Q00417_PathOfTheScavenger;
|
||||
import quests.Q00418_PathOfTheArtisan.Q00418_PathOfTheArtisan;
|
||||
import quests.Q00662_AGameOfCards.Q00662_AGameOfCards;
|
||||
import quests.Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.Q00933_ExploringTheWestWingOfTheDungeonOfAbyss;
|
||||
import quests.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.Q00935_ExploringTheEastWingOfTheDungeonOfAbyss;
|
||||
import quests.Q11000_MoonKnight.Q11000_MoonKnight;
|
||||
|
||||
/**
|
||||
@ -220,6 +223,7 @@ public class QuestMasterHandler
|
||||
Q00166_MassOfDarkness.class,
|
||||
Q00167_DwarvenKinship.class,
|
||||
Q00168_DeliverSupplies.class,
|
||||
Q00169_OffspringOfNightmares.class,
|
||||
Q00170_DangerousSeduction.class,
|
||||
Q00211_TrialOfTheChallenger.class,
|
||||
Q00212_TrialOfDuty.class,
|
||||
@ -289,7 +293,7 @@ public class QuestMasterHandler
|
||||
Q00374_WhisperOfDreamsPart1.class,
|
||||
Q00375_WhisperOfDreamsPart2.class,
|
||||
Q00344_1000YearsTheEndOfLamentation.class,
|
||||
// TODO: Q00348_AnArrogantSearch.class,
|
||||
// Q00348_AnArrogantSearch.class,
|
||||
Q00354_ConquestOfAlligatorIsland.class,
|
||||
Q00355_FamilyHonor.class,
|
||||
Q00356_DigUpTheSeaOfSpores.class,
|
||||
@ -317,6 +321,8 @@ public class QuestMasterHandler
|
||||
Q00418_PathOfTheArtisan.class,
|
||||
Q00662_AGameOfCards.class,
|
||||
Q11000_MoonKnight.class,
|
||||
Q00933_ExploringTheWestWingOfTheDungeonOfAbyss.class,
|
||||
Q00935_ExploringTheEastWingOfTheDungeonOfAbyss.class,
|
||||
};
|
||||
|
||||
public static void main(String[] args)
|
||||
|
204
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/spawns/Others/16_12.xml
vendored
Normal file
204
L2J_Mobius_Classic_2.0_Saviors/dist/game/data/spawns/Others/16_12.xml
vendored
Normal file
@ -0,0 +1,204 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/spawns.xsd">
|
||||
<spawn name="16_12">
|
||||
<group>
|
||||
<npc id="31774" x="-119936" y="-182574" z="-6752" heading="36621" respawnTime="60sec" /> <!-- Magrit Soul Tracker -->
|
||||
<npc id="31775" x="-119931" y="-179752" z="-6752" heading="36600" respawnTime="60sec" /> <!-- Ingrit Soul Tracker -->
|
||||
<npc id="31776" x="-109661" y="-180438" z="-6752" heading="63256" respawnTime="60sec" /> <!-- Iris Soul Tracker -->
|
||||
<npc id="31777" x="-109658" y="-177613" z="-6752" heading="453" respawnTime="60sec" /> <!-- Rosammy Soul Tracker -->
|
||||
<!-- Wandering Dead of the Dungeon -->
|
||||
<npc id="21638" x="-119902" y="-180338" z="-6752" heading="17326" respawnTime="60sec" />
|
||||
<npc id="21638" x="-120304" y="-180462" z="-6752" heading="35860" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119902" y="-180338" z="-6752" heading="17326" respawnTime="60sec" />
|
||||
<npc id="21638" x="-120304" y="-180462" z="-6752" heading="35860" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119236" y="-181636" z="-6752" heading="59614" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119492" y="-181474" z="-6752" heading="32797" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119144" y="-179794" z="-6752" heading="65266" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119173" y="-179884" z="-6752" heading="8735" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119876" y="-178727" z="-6752" heading="26387" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119876" y="-178847" z="-6752" heading="56132" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119446" y="-177989" z="-6752" heading="8871" respawnTime="60sec" />
|
||||
<npc id="21638" x="-120412" y="-177429" z="-6752" heading="43404" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118300" y="-181398" z="-6752" heading="29436" respawnTime="60sec" />
|
||||
<npc id="21638" x="-117985" y="-181518" z="-6752" heading="29718" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118552" y="-181308" z="-6752" heading="45272" respawnTime="60sec" />
|
||||
<npc id="21638" x="-117607" y="-181668" z="-6752" heading="36728" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118123" y="-182230" z="-6752" heading="58611" respawnTime="60sec" />
|
||||
<npc id="21638" x="-117419" y="-178585" z="-6752" heading="56282" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118071" y="-178969" z="-6752" heading="41370" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118071" y="-178380" z="-6752" heading="19350" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118201" y="-178473" z="-6752" heading="16035" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118396" y="-178535" z="-6752" heading="61076" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118208" y="-179450" z="-6752" heading="63417" respawnTime="60sec" />
|
||||
<npc id="21638" x="-117952" y="-179419" z="-6752" heading="60554" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118400" y="-179822" z="-6752" heading="42329" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118528" y="-179822" z="-6752" heading="12644" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119173" y="-182557" z="-6752" heading="9741" respawnTime="60sec" />
|
||||
<npc id="21638" x="-119353" y="-182368" z="-6752" heading="52952" respawnTime="60sec" />
|
||||
<npc id="21638" x="-117995" y="-182590" z="-6752" heading="61884" respawnTime="60sec" />
|
||||
<npc id="21638" x="-118379" y="-182470" z="-6752" heading="19323" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Spirit of the Dungeon -->
|
||||
<npc id="21639" x="-119232" y="-180462" z="-6752" heading="28681" respawnTime="60sec" />
|
||||
<npc id="21639" x="-119969" y="-180400" z="-6752" heading="17653" respawnTime="60sec" />
|
||||
<npc id="21639" x="-119496" y="-181467" z="-6752" heading="31252" respawnTime="60sec" />
|
||||
<npc id="21639" x="-119485" y="-181460" z="-6752" heading="29843" respawnTime="60sec" />
|
||||
<npc id="21639" x="-120140" y="-178697" z="-6752" heading="33524" respawnTime="60sec" />
|
||||
<npc id="21639" x="-119414" y="-178847" z="-6752" heading="38743" respawnTime="60sec" />
|
||||
<npc id="21639" x="-119998" y="-177429" z="-6752" heading="31320" respawnTime="60sec" />
|
||||
<npc id="21639" x="-119998" y="-177429" z="-6752" heading="13937" respawnTime="60sec" />
|
||||
<npc id="21639" x="-118284" y="-180675" z="-6752" heading="13009" respawnTime="60sec" />
|
||||
<npc id="21639" x="-118545" y="-180443" z="-6752" heading="1737" respawnTime="60sec" />
|
||||
<npc id="21639" x="-117805" y="-180782" z="-6752" heading="32211" respawnTime="60sec" />
|
||||
<npc id="21639" x="-117371" y="-180782" z="-6752" heading="58027" respawnTime="60sec" />
|
||||
<npc id="21639" x="-117713" y="-177788" z="-6752" heading="9875" respawnTime="60sec" />
|
||||
<npc id="21639" x="-117617" y="-177498" z="-6752" heading="21948" respawnTime="60sec" />
|
||||
<npc id="21639" x="-118507" y="-177762" z="-6752" heading="60692" respawnTime="60sec" />
|
||||
<npc id="21639" x="-118569" y="-177474" z="-6752" heading="39930" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Ghost of the Dungeon -->
|
||||
<npc id="21640" x="-120162" y="-180410" z="-6752" heading="61810" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119815" y="-180333" z="-6752" heading="7225" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119736" y="-181540" z="-6752" heading="60146" respawnTime="60sec" />
|
||||
<npc id="21640" x="-120201" y="-181429" z="-6752" heading="52839" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119541" y="-179870" z="-6752" heading="45445" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119533" y="-179512" z="-6752" heading="7975" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119186" y="-178421" z="-6752" heading="19835" respawnTime="60sec" />
|
||||
<npc id="21640" x="-120193" y="-178712" z="-6752" heading="9626" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119809" y="-177919" z="-6752" heading="44346" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119792" y="-177766" z="-6752" heading="26574" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117412" y="-181266" z="-6752" heading="16991" respawnTime="60sec" />
|
||||
<npc id="21640" x="-118564" y="-181430" z="-6752" heading="38131" respawnTime="60sec" />
|
||||
<npc id="21640" x="-118067" y="-181506" z="-6752" heading="38866" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117751" y="-181478" z="-6752" heading="40057" respawnTime="60sec" />
|
||||
<npc id="21640" x="-118412" y="-178585" z="-6752" heading="56282" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117440" y="-178556" z="-6752" heading="33448" respawnTime="60sec" />
|
||||
<npc id="21640" x="-118049" y="-178441" z="-6752" heading="35695" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117883" y="-178570" z="-6752" heading="20346" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117446" y="-179769" z="-6752" heading="36045" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117951" y="-179310" z="-6752" heading="10635" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117602" y="-179830" z="-6752" heading="36519" respawnTime="60sec" />
|
||||
<npc id="21640" x="-118197" y="-179419" z="-6752" heading="65146" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119144" y="-182509" z="-6752" heading="25037" respawnTime="60sec" />
|
||||
<npc id="21640" x="-119291" y="-182279" z="-6752" heading="21142" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117843" y="-182519" z="-6752" heading="46757" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117704" y="-182244" z="-6752" heading="46435" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117505" y="-182417" z="-6752" heading="9891" respawnTime="60sec" />
|
||||
<npc id="21640" x="-117543" y="-182373" z="-6752" heading="26821" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Evil Thoughts of the Dungeon -->
|
||||
<npc id="21641" x="-119572" y="-180489" z="-6752" heading="34674" respawnTime="60sec" />
|
||||
<npc id="21641" x="-120105" y="-180747" z="-6752" heading="45610" respawnTime="60sec" />
|
||||
<npc id="21641" x="-119884" y="-181336" z="-6752" heading="58682" respawnTime="60sec" />
|
||||
<npc id="21641" x="-119449" y="-181303" z="-6752" heading="24575" respawnTime="60sec" />
|
||||
<npc id="21641" x="-119695" y="-178418" z="-6752" heading="1963" respawnTime="60sec" />
|
||||
<npc id="21641" x="-120153" y="-178452" z="-6752" heading="21491" respawnTime="60sec" />
|
||||
<npc id="21641" x="-119486" y="-177698" z="-6752" heading="15862" respawnTime="60sec" />
|
||||
<npc id="21641" x="-119775" y="-177545" z="-6752" heading="64890" respawnTime="60sec" />
|
||||
<npc id="21641" x="-118533" y="-180648" z="-6752" heading="42427" respawnTime="60sec" />
|
||||
<npc id="21641" x="-118715" y="-180667" z="-6752" heading="31656" respawnTime="60sec" />
|
||||
<npc id="21641" x="-117626" y="-180623" z="-6752" heading="21306" respawnTime="60sec" />
|
||||
<npc id="21641" x="-117836" y="-180332" z="-6752" heading="883" respawnTime="60sec" />
|
||||
<npc id="21641" x="-117696" y="-177943" z="-6752" heading="39848" respawnTime="60sec" />
|
||||
<npc id="21641" x="-117639" y="-177577" z="-6752" heading="22320" respawnTime="60sec" />
|
||||
<npc id="21641" x="-118394" y="-177530" z="-6752" heading="390" respawnTime="60sec" />
|
||||
<npc id="21641" x="-118258" y="-177750" z="-6752" heading="39528" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Dead of the Abyss -->
|
||||
<npc id="21644" x="-111944" y="-178577" z="-6752" heading="36275" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111629" y="-178937" z="-6752" heading="50854" respawnTime="60sec" />
|
||||
<npc id="21644" x="-112007" y="-178937" z="-6752" heading="1914" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111503" y="-178877" z="-6752" heading="41397" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111703" y="-177927" z="-6752" heading="7263" respawnTime="60sec" />
|
||||
<npc id="21644" x="-112023" y="-177477" z="-6752" heading="36802" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110999" y="-177867" z="-6752" heading="1080" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111255" y="-177657" z="-6752" heading="39873" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110293" y="-179331" z="-6752" heading="59155" respawnTime="60sec" />
|
||||
<npc id="21644" x="-109556" y="-179548" z="-6752" heading="42789" respawnTime="60sec" />
|
||||
<npc id="21644" x="-109873" y="-178807" z="-6752" heading="53551" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110321" y="-178387" z="-6752" heading="36781" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110155" y="-177732" z="-6752" heading="30799" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110065" y="-177462" z="-6752" heading="10314" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111180" y="-180641" z="-6752" heading="63729" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111820" y="-180521" z="-6752" heading="49503" respawnTime="60sec" />
|
||||
<npc id="21644" x="-112012" y="-180461" z="-6752" heading="54589" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111948" y="-180761" z="-6752" heading="59652" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111806" y="-181621" z="-6752" heading="13304" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111113" y="-181291" z="-6752" heading="64710" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111680" y="-181291" z="-6752" heading="46163" respawnTime="60sec" />
|
||||
<npc id="21644" x="-111176" y="-181201" z="-6752" heading="34599" respawnTime="60sec" />
|
||||
<npc id="21644" x="-109209" y="-182537" z="-6752" heading="7574" respawnTime="60sec" />
|
||||
<npc id="21644" x="-109611" y="-182475" z="-6752" heading="56013" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110353" y="-180512" z="-6752" heading="62573" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110443" y="-180593" z="-6752" heading="34070" respawnTime="60sec" />
|
||||
<npc id="21644" x="-110437" y="-181311" z="-6752" heading="55101" respawnTime="60sec" />
|
||||
<npc id="21644" x="-109477" y="-181311" z="-6752" heading="62238" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Spirit of the Abyss -->
|
||||
<npc id="21645" x="-111941" y="-179400" z="-6752" heading="1651" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110938" y="-179656" z="-6752" heading="23862" respawnTime="60sec" />
|
||||
<npc id="21645" x="-111112" y="-179366" z="-6752" heading="59307" respawnTime="60sec" />
|
||||
<npc id="21645" x="-111910" y="-179310" z="-6752" heading="53040" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110025" y="-179424" z="-6752" heading="57931" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110092" y="-179827" z="-6752" heading="49315" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110449" y="-178477" z="-6752" heading="11663" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110513" y="-178567" z="-6752" heading="39248" respawnTime="60sec" />
|
||||
<npc id="21645" x="-111960" y="-182714" z="-6752" heading="42758" respawnTime="60sec" />
|
||||
<npc id="21645" x="-111805" y="-182234" z="-6752" heading="19685" respawnTime="60sec" />
|
||||
<npc id="21645" x="-111100" y="-182171" z="-6752" heading="45800" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110984" y="-182200" z="-6752" heading="5794" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110214" y="-182444" z="-6752" heading="9838" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110214" y="-182630" z="-6752" heading="53223" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110245" y="-181641" z="-6752" heading="31328" respawnTime="60sec" />
|
||||
<npc id="21645" x="-110117" y="-181251" z="-6752" heading="31628" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Ghost of the Abyss -->
|
||||
<npc id="21646" x="-111738" y="-178665" z="-6752" heading="8589" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111194" y="-178386" z="-6752" heading="16296" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111467" y="-178533" z="-6752" heading="7118" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111359" y="-178400" z="-6752" heading="14018" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111804" y="-177736" z="-6752" heading="56281" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111036" y="-177757" z="-6752" heading="40800" respawnTime="60sec" />
|
||||
<npc id="21646" x="-112081" y="-177846" z="-6752" heading="48107" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111781" y="-177572" z="-6752" heading="40425" respawnTime="60sec" />
|
||||
<npc id="21646" x="-110097" y="-179510" z="-6752" heading="65102" respawnTime="60sec" />
|
||||
<npc id="21646" x="-109976" y="-179829" z="-6752" heading="23156" respawnTime="60sec" />
|
||||
<npc id="21646" x="-109485" y="-178742" z="-6752" heading="45262" respawnTime="60sec" />
|
||||
<npc id="21646" x="-110492" y="-178658" z="-6752" heading="41269" respawnTime="60sec" />
|
||||
<npc id="21646" x="-110114" y="-177635" z="-6752" heading="64669" respawnTime="60sec" />
|
||||
<npc id="21646" x="-110398" y="-177753" z="-6752" heading="61402" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111472" y="-180699" z="-6752" heading="20951" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111512" y="-180462" z="-6752" heading="18952" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111745" y="-180549" z="-6752" heading="53250" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111162" y="-180575" z="-6752" heading="33467" respawnTime="60sec" />
|
||||
<npc id="21646" x="-112098" y="-181383" z="-6752" heading="30127" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111865" y="-181726" z="-6752" heading="867" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111000" y="-181329" z="-6752" heading="15920" respawnTime="60sec" />
|
||||
<npc id="21646" x="-111637" y="-181230" z="-6752" heading="15258" respawnTime="60sec" />
|
||||
<npc id="21646" x="-109367" y="-182487" z="-6752" heading="42415" respawnTime="60sec" />
|
||||
<npc id="21646" x="-109389" y="-182188" z="-6752" heading="8959" respawnTime="60sec" />
|
||||
<npc id="21646" x="-110275" y="-180378" z="-6752" heading="61051" respawnTime="60sec" />
|
||||
<npc id="21646" x="-110425" y="-180542" z="-6752" heading="47845" respawnTime="60sec" />
|
||||
<npc id="21646" x="-109930" y="-181199" z="-6752" heading="26936" respawnTime="60sec" />
|
||||
<npc id="21646" x="-109560" y="-181250" z="-6752" heading="12554" respawnTime="60sec" />
|
||||
|
||||
<!-- Wandering Evil Thoughts of the Abyss -->
|
||||
<npc id="21647" x="-112081" y="-179715" z="-6752" heading="40160" respawnTime="60sec" />
|
||||
<npc id="21647" x="-110864" y="-179572" z="-6752" heading="34757" respawnTime="60sec" />
|
||||
<npc id="21647" x="-111883" y="-179462" z="-6752" heading="58407" respawnTime="60sec" />
|
||||
<npc id="21647" x="-110870" y="-179723" z="-6752" heading="25694" respawnTime="60sec" />
|
||||
<npc id="21647" x="-110132" y="-179540" z="-6752" heading="18558" respawnTime="60sec" />
|
||||
<npc id="21647" x="-109194" y="-179316" z="-6752" heading="63835" respawnTime="60sec" />
|
||||
<npc id="21647" x="-109726" y="-178613" z="-6752" heading="54907" respawnTime="60sec" />
|
||||
<npc id="21647" x="-109701" y="-178937" z="-6752" heading="42218" respawnTime="60sec" />
|
||||
<npc id="21647" x="-111763" y="-182375" z="-6752" heading="57191" respawnTime="60sec" />
|
||||
<npc id="21647" x="-112121" y="-182427" z="-6752" heading="46107" respawnTime="60sec" />
|
||||
<npc id="21647" x="-111189" y="-182634" z="-6752" heading="47580" respawnTime="60sec" />
|
||||
<npc id="21647" x="-111199" y="-182241" z="-6752" heading="36455" respawnTime="60sec" />
|
||||
<npc id="21647" x="-109933" y="-182365" z="-6752" heading="17808" respawnTime="60sec" />
|
||||
<npc id="21647" x="-110082" y="-182641" z="-6752" heading="52199" respawnTime="60sec" />
|
||||
<npc id="21647" x="-110243" y="-181286" z="-6752" heading="59362" respawnTime="60sec" />
|
||||
<npc id="21647" x="-109892" y="-181495" z="-6752" heading="33880" respawnTime="60sec" />
|
||||
</group>
|
||||
</spawn>
|
||||
</list>
|
Loading…
Reference in New Issue
Block a user