Removal of Dungeon of Abyss.
This commit is contained in:
parent
aad1fc334d
commit
188fe9cee1
@ -1,119 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneType;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class DungeonOfAbyssZone extends AbstractNpcAI
|
||||
{
|
||||
private static final ZoneType ABYSS_WEST_ZONE_1 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss");
|
||||
private static final ZoneType ABYSS_WEST_ZONE_2 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss 2nd");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_3 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_4 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss 2nd");
|
||||
|
||||
private static final ZoneType ABYSS_WEST_ZONE_BOSS_1 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss Boss Room");
|
||||
private static final ZoneType ABYSS_WEST_ZONE_BOSS_2 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss 2nd Boss Room");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_BOSS_3 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss Boss Room");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_BOSS_4 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss 2nd Boss Room");
|
||||
|
||||
private static final int EXIT_TIME = 60 * 60 * 1000; // 60 minute
|
||||
private static final int EXIT_TIME_BOSS_ROOM = 30 * 60 * 1000; // 60 minute
|
||||
private static final Location EXIT_LOCATION_1 = new Location(-120019, -182575, -6751); // Move to Magrit
|
||||
private static final Location EXIT_LOCATION_2 = new Location(-119977, -179753, -6751); // Move to Ingrit
|
||||
private static final Location EXIT_LOCATION_3 = new Location(-109554, -180408, -6753); // Move to Iris
|
||||
private static final Location EXIT_LOCATION_4 = new Location(-109595, -177560, -6753); // Move to Rosammy
|
||||
|
||||
private DungeonOfAbyssZone()
|
||||
{
|
||||
addEnterZoneId(ABYSS_WEST_ZONE_1.getId(), ABYSS_WEST_ZONE_2.getId(), ABYSS_EAST_ZONE_3.getId(), ABYSS_EAST_ZONE_4.getId(), ABYSS_WEST_ZONE_BOSS_1.getId(), ABYSS_WEST_ZONE_BOSS_2.getId(), ABYSS_EAST_ZONE_BOSS_3.getId(), ABYSS_EAST_ZONE_BOSS_4.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (event.startsWith("EXIT_PLAYER") && (player != null))
|
||||
{
|
||||
if (event.contains(ABYSS_WEST_ZONE_1.getName()) && ABYSS_WEST_ZONE_1.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_1);
|
||||
}
|
||||
else if (event.contains(ABYSS_WEST_ZONE_2.getName()) && ABYSS_WEST_ZONE_2.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_2);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_3.getName()) && ABYSS_EAST_ZONE_3.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_3);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_4.getName()) && ABYSS_EAST_ZONE_4.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_4);
|
||||
}
|
||||
else if (event.contains(ABYSS_WEST_ZONE_BOSS_1.getName()) && ABYSS_WEST_ZONE_BOSS_1.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_1);
|
||||
}
|
||||
else if (event.contains(ABYSS_WEST_ZONE_BOSS_2.getName()) && ABYSS_WEST_ZONE_BOSS_2.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_2);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_BOSS_3.getName()) && ABYSS_EAST_ZONE_BOSS_3.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_3);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_BOSS_4.getName()) && ABYSS_EAST_ZONE_BOSS_4.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_4);
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onEnterZone(Creature creature, ZoneType zone)
|
||||
{
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
final PlayerInstance player = creature.getActingPlayer();
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_1.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_2.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_3.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_4.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_BOSS_1.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_BOSS_2.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_BOSS_3.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_BOSS_4.getName() + player.getObjectId(), null, player);
|
||||
startQuestTimer("EXIT_PLAYER" + zone.getName() + player.getObjectId(), zone.getName().contains("boss") ? EXIT_TIME_BOSS_ROOM : EXIT_TIME, null, player);
|
||||
}
|
||||
return super.onEnterZone(creature, zone);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new DungeonOfAbyssZone();
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<html>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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_INRGIT)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_IRIS)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_MARGIT)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_ROSAMMY)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
<html><body>Magrit:<br>
|
||||
You apparently forgot to take the quest, please take the quest.<br>
|
||||
</body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Magrit:<br>
|
||||
If you do not have the Key, you can not move to the Condemned of Abyss Prison.
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><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>
|
@ -1,4 +0,0 @@
|
||||
<html><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>
|
@ -1,6 +0,0 @@
|
||||
<html><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>
|
@ -1,96 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
|
||||
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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return "31778.htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance 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();
|
||||
}
|
||||
}
|
@ -882,38 +882,6 @@
|
||||
<node X="-113768" Y="-150965" />
|
||||
<node X="-115424" Y="-150965" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss" id="600000" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-120448" Y="-182800" />
|
||||
<node X="-117264" Y="-180288" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss Boss Room" id="600004" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-117096" Y="-181856" />
|
||||
<node X="-115562" Y="-181080" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss 2nd" id="600001" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-120448" Y="-180093" />
|
||||
<node X="-117264" Y="-177472" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss 2nd Boss Room" id="600005" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-117097" Y="-179108" />
|
||||
<node X="-115565" Y="-178261" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss" id="600002" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-109037" Y="-180186" />
|
||||
<node X="-112257" Y="-182758" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss Boss Room" id="600006" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-112508" Y="-181094" />
|
||||
<node X="-114023" Y="-181929" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss 2nd" id="600003" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-109152" Y="-177408" />
|
||||
<node X="-112336" Y="-179920" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss 2nd Boss Room" id="600007" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-112495" Y="-178268" />
|
||||
<node X="-114025" Y="-179108" />
|
||||
</zone>
|
||||
|
||||
<!-- Classic Monster Race Track -->
|
||||
<zone name="Monster_Race_Arena_Peace" type="PeaceZone" shape="NPoly" minZ="-3565" maxZ="-3200"> <!-- [20_23] -->
|
||||
@ -938,7 +906,7 @@
|
||||
</zone>
|
||||
|
||||
<!-- Death Knight Base -->
|
||||
<zone name="Death_Knight_Base_Peace" type="PeaceZone" shape="NPoly" minZ="-3054" maxZ="-1849"> <!-- [21_22] -->
|
||||
<zone name="Death_Knight_Base_Peace" type="PeaceZone" shape="NPoly" minZ="-3054" maxZ="-1849"> <!-- [21_22] -->
|
||||
<node X="46007" Y="150756" />
|
||||
<node X="45355" Y="151090" />
|
||||
<node X="44488" Y="151093" />
|
||||
|
@ -1,119 +0,0 @@
|
||||
/*
|
||||
* 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;
|
||||
|
||||
import org.l2jmobius.gameserver.instancemanager.ZoneManager;
|
||||
import org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.zone.ZoneType;
|
||||
|
||||
import ai.AbstractNpcAI;
|
||||
|
||||
/**
|
||||
* @author Mobius
|
||||
*/
|
||||
public class DungeonOfAbyssZone extends AbstractNpcAI
|
||||
{
|
||||
private static final ZoneType ABYSS_WEST_ZONE_1 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss");
|
||||
private static final ZoneType ABYSS_WEST_ZONE_2 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss 2nd");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_3 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_4 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss 2nd");
|
||||
|
||||
private static final ZoneType ABYSS_WEST_ZONE_BOSS_1 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss Boss Room");
|
||||
private static final ZoneType ABYSS_WEST_ZONE_BOSS_2 = ZoneManager.getInstance().getZoneByName("The West Dungeon of Abyss 2nd Boss Room");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_BOSS_3 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss Boss Room");
|
||||
private static final ZoneType ABYSS_EAST_ZONE_BOSS_4 = ZoneManager.getInstance().getZoneByName("The East Dungeon of Abyss 2nd Boss Room");
|
||||
|
||||
private static final int EXIT_TIME = 60 * 60 * 1000; // 60 minute
|
||||
private static final int EXIT_TIME_BOSS_ROOM = 30 * 60 * 1000; // 60 minute
|
||||
private static final Location EXIT_LOCATION_1 = new Location(-120019, -182575, -6751); // Move to Magrit
|
||||
private static final Location EXIT_LOCATION_2 = new Location(-119977, -179753, -6751); // Move to Ingrit
|
||||
private static final Location EXIT_LOCATION_3 = new Location(-109554, -180408, -6753); // Move to Iris
|
||||
private static final Location EXIT_LOCATION_4 = new Location(-109595, -177560, -6753); // Move to Rosammy
|
||||
|
||||
private DungeonOfAbyssZone()
|
||||
{
|
||||
addEnterZoneId(ABYSS_WEST_ZONE_1.getId(), ABYSS_WEST_ZONE_2.getId(), ABYSS_EAST_ZONE_3.getId(), ABYSS_EAST_ZONE_4.getId(), ABYSS_WEST_ZONE_BOSS_1.getId(), ABYSS_WEST_ZONE_BOSS_2.getId(), ABYSS_EAST_ZONE_BOSS_3.getId(), ABYSS_EAST_ZONE_BOSS_4.getId());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (event.startsWith("EXIT_PLAYER") && (player != null))
|
||||
{
|
||||
if (event.contains(ABYSS_WEST_ZONE_1.getName()) && ABYSS_WEST_ZONE_1.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_1);
|
||||
}
|
||||
else if (event.contains(ABYSS_WEST_ZONE_2.getName()) && ABYSS_WEST_ZONE_2.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_2);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_3.getName()) && ABYSS_EAST_ZONE_3.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_3);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_4.getName()) && ABYSS_EAST_ZONE_4.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_4);
|
||||
}
|
||||
else if (event.contains(ABYSS_WEST_ZONE_BOSS_1.getName()) && ABYSS_WEST_ZONE_BOSS_1.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_1);
|
||||
}
|
||||
else if (event.contains(ABYSS_WEST_ZONE_BOSS_2.getName()) && ABYSS_WEST_ZONE_BOSS_2.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_2);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_BOSS_3.getName()) && ABYSS_EAST_ZONE_BOSS_3.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_3);
|
||||
}
|
||||
else if (event.contains(ABYSS_EAST_ZONE_BOSS_4.getName()) && ABYSS_EAST_ZONE_BOSS_4.getPlayersInside().contains(player))
|
||||
{
|
||||
player.teleToLocation(EXIT_LOCATION_4);
|
||||
}
|
||||
}
|
||||
return super.onAdvEvent(event, npc, player);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onEnterZone(Creature creature, ZoneType zone)
|
||||
{
|
||||
if (creature.isPlayer())
|
||||
{
|
||||
final PlayerInstance player = creature.getActingPlayer();
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_1.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_2.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_3.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_4.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_BOSS_1.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_WEST_ZONE_BOSS_2.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_BOSS_3.getName() + player.getObjectId(), null, player);
|
||||
cancelQuestTimer("EXIT_PLAYER" + ABYSS_EAST_ZONE_BOSS_4.getName() + player.getObjectId(), null, player);
|
||||
startQuestTimer("EXIT_PLAYER" + zone.getName() + player.getObjectId(), zone.getName().contains("boss") ? EXIT_TIME_BOSS_ROOM : EXIT_TIME, null, player);
|
||||
}
|
||||
return super.onEnterZone(creature, zone);
|
||||
}
|
||||
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new DungeonOfAbyssZone();
|
||||
}
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
<html>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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,8 +0,0 @@
|
||||
<html><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>
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_INRGIT)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_IRIS)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_MARGIT)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,109 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return npc.getId() + ".htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance player)
|
||||
{
|
||||
if (npc.getId() == SOUL_TRACKER_ROSAMMY)
|
||||
{
|
||||
final 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();
|
||||
}
|
||||
}
|
@ -1,3 +0,0 @@
|
||||
<html><body>Magrit:<br>
|
||||
You apparently forgot to take the quest, please take the quest.<br>
|
||||
</body></html>
|
@ -1,3 +0,0 @@
|
||||
<html><body>Magrit:<br>
|
||||
If you do not have the Key, you can not move to the Condemned of Abyss Prison.
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><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>
|
@ -1,4 +0,0 @@
|
||||
<html><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>
|
@ -1,6 +0,0 @@
|
||||
<html><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>
|
@ -1,96 +0,0 @@
|
||||
/*
|
||||
* 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 org.l2jmobius.gameserver.model.Location;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
|
||||
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(Npc npc, PlayerInstance player)
|
||||
{
|
||||
return "31778.htm";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String onAdvEvent(String event, Npc npc, PlayerInstance 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();
|
||||
}
|
||||
}
|
@ -882,38 +882,6 @@
|
||||
<node X="-113768" Y="-150965" />
|
||||
<node X="-115424" Y="-150965" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss" id="600000" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-120448" Y="-182800" />
|
||||
<node X="-117264" Y="-180288" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss Boss Room" id="600004" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-117096" Y="-181856" />
|
||||
<node X="-115562" Y="-181080" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss 2nd" id="600001" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-120448" Y="-180093" />
|
||||
<node X="-117264" Y="-177472" />
|
||||
</zone>
|
||||
<zone name="The West Dungeon of Abyss 2nd Boss Room" id="600005" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-117097" Y="-179108" />
|
||||
<node X="-115565" Y="-178261" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss" id="600002" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-109037" Y="-180186" />
|
||||
<node X="-112257" Y="-182758" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss Boss Room" id="600006" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-112508" Y="-181094" />
|
||||
<node X="-114023" Y="-181929" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss 2nd" id="600003" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-109152" Y="-177408" />
|
||||
<node X="-112336" Y="-179920" />
|
||||
</zone>
|
||||
<zone name="The East Dungeon of Abyss 2nd Boss Room" id="600007" type="PeaceZone" shape="Cuboid" minZ="-7000" maxZ="-6500"> <!-- [16_12] -->
|
||||
<node X="-112495" Y="-178268" />
|
||||
<node X="-114025" Y="-179108" />
|
||||
</zone>
|
||||
|
||||
<!-- Classic Monster Race Track -->
|
||||
<zone name="Monster_Race_Arena_Peace" type="PeaceZone" shape="NPoly" minZ="-3565" maxZ="-3200"> <!-- [20_23] -->
|
||||
@ -938,7 +906,7 @@
|
||||
</zone>
|
||||
|
||||
<!-- Death Knight Base -->
|
||||
<zone name="Death_Knight_Base_Peace" type="PeaceZone" shape="NPoly" minZ="-3054" maxZ="-1849"> <!-- [21_22] -->
|
||||
<zone name="Death_Knight_Base_Peace" type="PeaceZone" shape="NPoly" minZ="-3054" maxZ="-1849"> <!-- [21_22] -->
|
||||
<node X="46007" Y="150756" />
|
||||
<node X="45355" Y="151090" />
|
||||
<node X="44488" Y="151093" />
|
||||
@ -958,6 +926,8 @@
|
||||
<node X="48511" Y="150149" />
|
||||
<node X="47505" Y="149939" />
|
||||
</zone>
|
||||
|
||||
<!-- Sylph Village -->
|
||||
<zone name="Wind_Village" type="PeaceZone" shape="Cylinder" minZ="-5000" maxZ="-2800" rad="3000">
|
||||
<node X="103781" Y="58005" />
|
||||
</zone>
|
||||
|
Loading…
Reference in New Issue
Block a user