|
@@ -12,13 +12,14 @@
|
|
|
* 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 teleports.OracleTeleport;
|
|
|
+package ai.npc.Teleports.OracleTeleport;
|
|
|
+
|
|
|
+import ai.npc.AbstractNpcAI;
|
|
|
|
|
|
import com.l2jserver.gameserver.model.Location;
|
|
|
import com.l2jserver.gameserver.model.actor.L2Npc;
|
|
|
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
|
|
import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
|
|
|
-import com.l2jserver.gameserver.model.quest.Quest;
|
|
|
import com.l2jserver.gameserver.model.quest.QuestState;
|
|
|
import com.l2jserver.gameserver.model.quest.State;
|
|
|
import com.l2jserver.gameserver.network.SystemMessageId;
|
|
@@ -28,26 +29,60 @@ import com.l2jserver.gameserver.util.Util;
|
|
|
* Oracle teleport AI.
|
|
|
* @author Charus
|
|
|
*/
|
|
|
-public class OracleTeleport extends Quest
|
|
|
+public class OracleTeleport extends AbstractNpcAI
|
|
|
{
|
|
|
private final static int[] TOWN_DAWN =
|
|
|
{
|
|
|
- 31078, 31079, 31080, 31081, 31083, 31084, 31082, 31692, 31694, 31997, 31168
|
|
|
+ 31078,
|
|
|
+ 31079,
|
|
|
+ 31080,
|
|
|
+ 31081,
|
|
|
+ 31083,
|
|
|
+ 31084,
|
|
|
+ 31082,
|
|
|
+ 31692,
|
|
|
+ 31694,
|
|
|
+ 31997,
|
|
|
+ 31168
|
|
|
};
|
|
|
|
|
|
private final static int[] TOWN_DUSK =
|
|
|
{
|
|
|
- 31085, 31086, 31087, 31088, 31090, 31091, 31089, 31693, 31695, 31998, 31169
|
|
|
+ 31085,
|
|
|
+ 31086,
|
|
|
+ 31087,
|
|
|
+ 31088,
|
|
|
+ 31090,
|
|
|
+ 31091,
|
|
|
+ 31089,
|
|
|
+ 31693,
|
|
|
+ 31695,
|
|
|
+ 31998,
|
|
|
+ 31169
|
|
|
};
|
|
|
|
|
|
private final static int[] TEMPLE_PRIEST =
|
|
|
{
|
|
|
- 31127, 31128, 31129, 31130, 31131, 31137, 31138, 31139, 31140, 31141
|
|
|
+ 31127,
|
|
|
+ 31128,
|
|
|
+ 31129,
|
|
|
+ 31130,
|
|
|
+ 31131,
|
|
|
+ 31137,
|
|
|
+ 31138,
|
|
|
+ 31139,
|
|
|
+ 31140,
|
|
|
+ 31141
|
|
|
};
|
|
|
|
|
|
private final static int[] RIFT_POSTERS =
|
|
|
{
|
|
|
- 31488, 31489, 31490, 31491, 31492, 31493
|
|
|
+ 31488,
|
|
|
+ 31489,
|
|
|
+ 31490,
|
|
|
+ 31491,
|
|
|
+ 31492,
|
|
|
+ 31493
|
|
|
};
|
|
|
|
|
|
private final static int[] TELEPORTERS =
|
|
@@ -186,34 +221,20 @@ public class OracleTeleport extends Quest
|
|
|
new Location(12837, -248483, -9579)
|
|
|
};
|
|
|
|
|
|
- public OracleTeleport(int questId, String name, String descr)
|
|
|
+ private OracleTeleport(String name, String descr)
|
|
|
{
|
|
|
- super(questId, name, descr);
|
|
|
- for (int posters : RIFT_POSTERS)
|
|
|
- {
|
|
|
- addStartNpc(posters);
|
|
|
- addTalkId(posters);
|
|
|
- }
|
|
|
- for (int teleporters : TELEPORTERS)
|
|
|
- {
|
|
|
- addStartNpc(teleporters);
|
|
|
- addTalkId(teleporters);
|
|
|
- }
|
|
|
- for (int priests : TEMPLE_PRIEST)
|
|
|
- {
|
|
|
- addStartNpc(priests);
|
|
|
- addTalkId(priests);
|
|
|
- }
|
|
|
- for (int dawn : TOWN_DAWN)
|
|
|
- {
|
|
|
- addStartNpc(dawn);
|
|
|
- addTalkId(dawn);
|
|
|
- }
|
|
|
- for (int dusk : TOWN_DUSK)
|
|
|
- {
|
|
|
- addStartNpc(dusk);
|
|
|
- addTalkId(dusk);
|
|
|
- }
|
|
|
+ super(name, descr);
|
|
|
+
|
|
|
+ addStartNpc(RIFT_POSTERS);
|
|
|
+ addStartNpc(TELEPORTERS);
|
|
|
+ addStartNpc(TEMPLE_PRIEST);
|
|
|
+ addStartNpc(TOWN_DAWN);
|
|
|
+ addStartNpc(TOWN_DUSK);
|
|
|
+ addTalkId(RIFT_POSTERS);
|
|
|
+ addTalkId(TELEPORTERS);
|
|
|
+ addTalkId(TEMPLE_PRIEST);
|
|
|
+ addTalkId(TOWN_DAWN);
|
|
|
+ addTalkId(TOWN_DUSK);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -225,14 +246,14 @@ public class OracleTeleport extends Quest
|
|
|
int npcId = npc.getNpcId();
|
|
|
if (event.equalsIgnoreCase("Return"))
|
|
|
{
|
|
|
- if (Util.contains(TEMPLE_PRIEST, npcId) && st.getState() == State.STARTED)
|
|
|
+ if (Util.contains(TEMPLE_PRIEST, npcId) && (st.getState() == State.STARTED))
|
|
|
{
|
|
|
Location loc = RETURN_LOCS[st.getInt("id")];
|
|
|
player.teleToLocation(loc.getX(), loc.getY(), loc.getZ());
|
|
|
player.setIsIn7sDungeon(false);
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (Util.contains(RIFT_POSTERS, npcId) && st.getState() == State.STARTED)
|
|
|
+ else if (Util.contains(RIFT_POSTERS, npcId) && (st.getState() == State.STARTED))
|
|
|
{
|
|
|
Location loc = RETURN_LOCS[st.getInt("id")];
|
|
|
player.teleToLocation(loc.getX(), loc.getY(), loc.getZ());
|
|
@@ -254,7 +275,9 @@ public class OracleTeleport extends Quest
|
|
|
player.setIsIn7sDungeon(true);
|
|
|
}
|
|
|
else
|
|
|
+ {
|
|
|
htmltext = "oracle1.htm";
|
|
|
+ }
|
|
|
}
|
|
|
else if (event.equalsIgnoreCase("Dimensional"))
|
|
|
{
|
|
@@ -265,12 +288,16 @@ public class OracleTeleport extends Quest
|
|
|
{
|
|
|
int id = st.getInt("id");
|
|
|
if (id > -1)
|
|
|
+ {
|
|
|
htmltext = "5a.htm";
|
|
|
+ }
|
|
|
int i = 0;
|
|
|
for (int id1 : TELEPORTERS)
|
|
|
{
|
|
|
if (id1 == npcId)
|
|
|
+ {
|
|
|
break;
|
|
|
+ }
|
|
|
i++;
|
|
|
}
|
|
|
st.set("id", Integer.toString(i));
|
|
@@ -285,28 +312,42 @@ public class OracleTeleport extends Quest
|
|
|
else if (event.equalsIgnoreCase("zigurratDimensional"))
|
|
|
{
|
|
|
int playerLevel = player.getLevel();
|
|
|
- if (playerLevel >= 20 && playerLevel < 30)
|
|
|
+ if ((playerLevel >= 20) && (playerLevel < 30))
|
|
|
+ {
|
|
|
st.takeItems(57, 2000);
|
|
|
- else if (playerLevel >= 30 && playerLevel < 40)
|
|
|
+ }
|
|
|
+ else if ((playerLevel >= 30) && (playerLevel < 40))
|
|
|
+ {
|
|
|
st.takeItems(57, 4500);
|
|
|
- else if (playerLevel >= 40 && playerLevel < 50)
|
|
|
+ }
|
|
|
+ else if ((playerLevel >= 40) && (playerLevel < 50))
|
|
|
+ {
|
|
|
st.takeItems(57, 8000);
|
|
|
- else if (playerLevel >= 50 && playerLevel < 60)
|
|
|
+ }
|
|
|
+ else if ((playerLevel >= 50) && (playerLevel < 60))
|
|
|
+ {
|
|
|
st.takeItems(57, 12500);
|
|
|
- else if (playerLevel >= 60 && playerLevel < 70)
|
|
|
+ }
|
|
|
+ else if ((playerLevel >= 60) && (playerLevel < 70))
|
|
|
+ {
|
|
|
st.takeItems(57, 18000);
|
|
|
+ }
|
|
|
else if (playerLevel >= 70)
|
|
|
+ {
|
|
|
st.takeItems(57, 24500);
|
|
|
+ }
|
|
|
int i = 0;
|
|
|
- for (int zigurrat : TELEPORTERS)
|
|
|
+ for (int ziggurat : TELEPORTERS)
|
|
|
{
|
|
|
- if (zigurrat == npcId)
|
|
|
+ if (ziggurat == npcId)
|
|
|
+ {
|
|
|
break;
|
|
|
+ }
|
|
|
i++;
|
|
|
}
|
|
|
st.set("id", Integer.toString(i));
|
|
|
st.setState(State.STARTED);
|
|
|
- st.playSound("ItemSound.quest_accept");
|
|
|
+ st.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
|
|
|
htmltext = "ziggurat_rift.htm";
|
|
|
player.teleToLocation(-114755, -179466, -6752);
|
|
|
}
|
|
@@ -328,11 +369,13 @@ public class OracleTeleport extends Quest
|
|
|
for (int dawn : TELEPORTERS)
|
|
|
{
|
|
|
if (dawn == npcId)
|
|
|
+ {
|
|
|
break;
|
|
|
+ }
|
|
|
i++;
|
|
|
}
|
|
|
st.set("id", Integer.toString(i));
|
|
|
- st.playSound("ItemSound.quest_accept");
|
|
|
+ st.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
|
|
|
player.teleToLocation(-80157, 111344, -4901);
|
|
|
player.setIsIn7sDungeon(true);
|
|
|
}
|
|
@@ -343,15 +386,17 @@ public class OracleTeleport extends Quest
|
|
|
for (int dusk : TELEPORTERS)
|
|
|
{
|
|
|
if (dusk == npcId)
|
|
|
+ {
|
|
|
break;
|
|
|
+ }
|
|
|
i++;
|
|
|
}
|
|
|
st.set("id", Integer.toString(i));
|
|
|
- st.playSound("ItemSound.quest_accept");
|
|
|
+ st.playSound(QuestSound.ITEMSOUND_QUEST_ACCEPT);
|
|
|
player.teleToLocation(-81261, 86531, -5157);
|
|
|
player.setIsIn7sDungeon(true);
|
|
|
}
|
|
|
- else if (npcId >= 31494 && npcId <= 31507)
|
|
|
+ else if ((npcId >= 31494) && (npcId <= 31507))
|
|
|
{
|
|
|
if (player.getLevel() < 20)
|
|
|
{
|
|
@@ -364,14 +409,16 @@ public class OracleTeleport extends Quest
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
else if (!st.hasQuestItems(7079))
|
|
|
+ {
|
|
|
htmltext = "3.htm";
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
st.setState(State.CREATED);
|
|
|
htmltext = "4.htm";
|
|
|
}
|
|
|
}
|
|
|
- else if ((npcId >= 31095 && npcId <= 31111) || (npcId >= 31114 && npcId <= 31126))
|
|
|
+ else if (((npcId >= 31095) && (npcId <= 31111)) || ((npcId >= 31114) && (npcId <= 31126)))
|
|
|
{
|
|
|
int playerLevel = player.getLevel();
|
|
|
if (playerLevel < 20)
|
|
@@ -389,38 +436,40 @@ public class OracleTeleport extends Quest
|
|
|
htmltext = "ziggurat_nofrag.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (playerLevel >= 20 && playerLevel < 30 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 2000)
|
|
|
+ else if ((playerLevel >= 20) && (playerLevel < 30) && (st.getQuestItemsCount(PcInventory.ADENA_ID) < 2000))
|
|
|
{
|
|
|
htmltext = "ziggurat_noadena.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (playerLevel >= 30 && playerLevel < 40 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 4500)
|
|
|
+ else if ((playerLevel >= 30) && (playerLevel < 40) && (st.getQuestItemsCount(PcInventory.ADENA_ID) < 4500))
|
|
|
{
|
|
|
htmltext = "ziggurat_noadena.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (playerLevel >= 40 && playerLevel < 50 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 8000)
|
|
|
+ else if ((playerLevel >= 40) && (playerLevel < 50) && (st.getQuestItemsCount(PcInventory.ADENA_ID) < 8000))
|
|
|
{
|
|
|
htmltext = "ziggurat_noadena.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (playerLevel >= 50 && playerLevel < 60 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 12500)
|
|
|
+ else if ((playerLevel >= 50) && (playerLevel < 60) && (st.getQuestItemsCount(PcInventory.ADENA_ID) < 12500))
|
|
|
{
|
|
|
htmltext = "ziggurat_noadena.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (playerLevel >= 60 && playerLevel < 70 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 18000)
|
|
|
+ else if ((playerLevel >= 60) && (playerLevel < 70) && (st.getQuestItemsCount(PcInventory.ADENA_ID) < 18000))
|
|
|
{
|
|
|
htmltext = "ziggurat_noadena.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
- else if (playerLevel >= 70 && st.getQuestItemsCount(PcInventory.ADENA_ID) < 24500)
|
|
|
+ else if ((playerLevel >= 70) && (st.getQuestItemsCount(PcInventory.ADENA_ID) < 24500))
|
|
|
{
|
|
|
htmltext = "ziggurat_noadena.htm";
|
|
|
st.exitQuest(true);
|
|
|
}
|
|
|
else
|
|
|
+ {
|
|
|
htmltext = "ziggurat.htm";
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return htmltext;
|
|
@@ -428,6 +477,6 @@ public class OracleTeleport extends Quest
|
|
|
|
|
|
public static void main(String[] args)
|
|
|
{
|
|
|
- new OracleTeleport(-1, "OracleTeleport", "teleports");
|
|
|
+ new OracleTeleport(OracleTeleport.class.getSimpleName(), "ai/npc/Teleports/");
|
|
|
}
|
|
|
}
|