From 820fd47246cfe7346151ef6c4a7fc2fd180013c8 Mon Sep 17 00:00:00 2001
From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com>
Date: Tue, 5 Nov 2019 22:58:08 +0000
Subject: [PATCH] Updated Underground and Land of Chaos area spawns.
Contributed by Edoo.
---
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../spawns/{DarkElf => Orc}/LandOfChaos.xml | 423 ++++--------
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../spawns/{DarkElf => Orc}/LandOfChaos.xml | 423 ++++--------
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../spawns/{DarkElf => Orc}/LandOfChaos.xml | 423 ++++--------
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../spawns/{DarkElf => Orc}/LandOfChaos.xml | 423 ++++--------
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../game/data/spawns/DarkElf/LandOfChaos.xml | 612 -----------------
.../dist/game/data/spawns/Orc/LandOfChaos.xml | 469 +++++++++++++
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../game/data/spawns/DarkElf/LandOfChaos.xml | 620 ------------------
.../dist/game/data/spawns/Orc/LandOfChaos.xml | 469 +++++++++++++
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
.../dist/game/data/Routes.xml | 30 +
.../TavernEmployee/TavernEmployee.java | 206 ++++++
.../game/data/spawns/DarkElf/LandOfChaos.xml | 620 ------------------
.../dist/game/data/spawns/Orc/LandOfChaos.xml | 469 +++++++++++++
.../game/data/spawns/Orc/UndergroundTown.xml | 6 +-
31 files changed, 3654 insertions(+), 2991 deletions(-)
create mode 100644 L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
rename L2J_Mobius_2.5_Underground/dist/game/data/spawns/{DarkElf => Orc}/LandOfChaos.xml (57%)
create mode 100644 L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
rename L2J_Mobius_3.0_Helios/dist/game/data/spawns/{DarkElf => Orc}/LandOfChaos.xml (57%)
create mode 100644 L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
rename L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/{DarkElf => Orc}/LandOfChaos.xml (57%)
create mode 100644 L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
rename L2J_Mobius_5.0_Salvation/dist/game/data/spawns/{DarkElf => Orc}/LandOfChaos.xml (57%)
create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
delete mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/DarkElf/LandOfChaos.xml
create mode 100644 L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/LandOfChaos.xml
create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
delete mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/DarkElf/LandOfChaos.xml
create mode 100644 L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/LandOfChaos.xml
create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
delete mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/DarkElf/LandOfChaos.xml
create mode 100644 L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/LandOfChaos.xml
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/Routes.xml b/L2J_Mobius_2.5_Underground/dist/game/data/Routes.xml
index ad4baaf622..5ddd1ad792 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/Routes.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/Routes.xml
@@ -2588,4 +2588,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/LandOfChaos.xml
similarity index 57%
rename from L2J_Mobius_2.5_Underground/dist/game/data/spawns/DarkElf/LandOfChaos.xml
rename to L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/LandOfChaos.xml
index a2aef7e29e..9f5424c0fa 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -2,177 +2,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -213,36 +42,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -522,91 +321,149 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_2.5_Underground/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/Routes.xml b/L2J_Mobius_3.0_Helios/dist/game/data/Routes.xml
index 97221d49ac..2786239cf4 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/Routes.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/Routes.xml
@@ -2589,4 +2589,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/LandOfChaos.xml
similarity index 57%
rename from L2J_Mobius_3.0_Helios/dist/game/data/spawns/DarkElf/LandOfChaos.xml
rename to L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/LandOfChaos.xml
index a2aef7e29e..9f5424c0fa 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -2,177 +2,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -213,36 +42,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -522,91 +321,149 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_3.0_Helios/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/Routes.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/Routes.xml
index b971a893a6..29262d4361 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/Routes.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/Routes.xml
@@ -2590,4 +2590,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/LandOfChaos.xml
similarity index 57%
rename from L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/DarkElf/LandOfChaos.xml
rename to L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/LandOfChaos.xml
index a2aef7e29e..9f5424c0fa 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -2,177 +2,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -213,36 +42,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -522,91 +321,149 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/Routes.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/Routes.xml
index b971a893a6..29262d4361 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/Routes.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/Routes.xml
@@ -2590,4 +2590,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/LandOfChaos.xml
similarity index 57%
rename from L2J_Mobius_5.0_Salvation/dist/game/data/spawns/DarkElf/LandOfChaos.xml
rename to L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/LandOfChaos.xml
index a2aef7e29e..9f5424c0fa 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -2,177 +2,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -213,36 +42,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -522,91 +321,149 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_5.0_Salvation/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/Routes.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/Routes.xml
index b971a893a6..29262d4361 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/Routes.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/Routes.xml
@@ -2590,4 +2590,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/DarkElf/LandOfChaos.xml
deleted file mode 100644
index a2aef7e29e..0000000000
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ /dev/null
@@ -1,612 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/LandOfChaos.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/LandOfChaos.xml
new file mode 100644
index 0000000000..9f5424c0fa
--- /dev/null
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -0,0 +1,469 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/Routes.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/Routes.xml
index b971a893a6..29262d4361 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/Routes.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/Routes.xml
@@ -2590,4 +2590,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/DarkElf/LandOfChaos.xml
deleted file mode 100644
index 5be37d3cae..0000000000
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ /dev/null
@@ -1,620 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/LandOfChaos.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/LandOfChaos.xml
new file mode 100644
index 0000000000..9f5424c0fa
--- /dev/null
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -0,0 +1,469 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/Routes.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/Routes.xml
index b971a893a6..29262d4361 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/Routes.xml
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/Routes.xml
@@ -2590,4 +2590,34 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
new file mode 100644
index 0000000000..4c96fe1f3f
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/ai/areas/GainakUnderground/TavernEmployee/TavernEmployee.java
@@ -0,0 +1,206 @@
+/*
+ * 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 .
+ */
+package ai.areas.GainakUnderground.TavernEmployee;
+
+import org.l2jmobius.gameserver.enums.ChatType;
+import org.l2jmobius.gameserver.model.actor.Npc;
+import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
+import org.l2jmobius.gameserver.network.NpcStringId;
+import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Tavern Employee AI.
+ * @author Edoo
+ */
+public class TavernEmployee extends AbstractNpcAI
+{
+ // NPCs
+ private static final int LOYEE1 = 34202;
+ private static final int LOYEE2 = 34203;
+ private static final int LOYEE3 = 34204;
+ private static final int LOYEE4 = 34205;
+ private static final int LOYEE5 = 34206;
+ private static final int LOYEE6 = 34207;
+ // Text
+ private static final NpcStringId[] SPAM_TEXT1 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT2 =
+ {
+ NpcStringId.THE_MYSTIC_TAVERN_IS_OPEN_NOW
+ };
+ private static final NpcStringId[] SPAM_TEXT3 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT4 =
+ {
+ NpcStringId.ADVENTURER_THE_TAVERN_IS_THIS_WAY,
+ NpcStringId.ARE_YOU_LOOKING_FOR_THE_TAVERN_IT_S_THIS_WAY,
+ NpcStringId.COME_ON_CHANCES_LIKE_THESE_DON_T_COME_BY_OFTEN
+ };
+ private static final NpcStringId[] SPAM_TEXT5 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+ private static final NpcStringId[] SPAM_TEXT6 =
+ {
+ NpcStringId.SIGH_BUSY_AS_ALWAYS,
+ NpcStringId.HOW_LONG_UNTIL_WE_CAN_TELL_STORIES_TO_THE_CUSTOMERS_TOO,
+ NpcStringId.I_WONDER_WHAT_HANNA_WILL_BE_MAKING_TODAY,
+ NpcStringId.HEY_YOU_WE_DON_T_WANT_DRUNK_CUSTOMERS_HERE,
+ NpcStringId.WHAT_DO_YOU_THINK_ABOUT_OUR_TAVERN_ISN_T_IT_GREAT,
+ NpcStringId.YOU_CAN_PLACE_YOUR_ORDER_OVER_THERE,
+ NpcStringId.JUST_RELAX_AND_HAVE_A_DRINK,
+ NpcStringId.HANNA_S_COOKING_IS_THE_BEST,
+ NpcStringId.YOU_ARE_A_REGULAR_RIGHT_THANKS_FOR_COMING_AGAIN,
+ NpcStringId.HERE_YOU_CAN_FORGET_ABOUT_YOUR_RESPONSIBILITIES_FOR_A_WHILE,
+ NpcStringId.LUPIA_INTRODUCED_ME_HERE_SO_THAT_S_HOW_I_STARTED_WORKING_HERE,
+ NpcStringId.IS_THERE_ANYTHING_TO_CLEAN_UP,
+ NpcStringId.I_WONDER_IF_THERE_S_ANYONE_COMING_FROM_THAT_SIDE,
+ NpcStringId.I_THINK_WE_CAN_WAIT_FOR_SOME_MORE_CUSTOMERS,
+ };
+
+ private TavernEmployee()
+ {
+ addSpawnId(LOYEE1);
+ addSpawnId(LOYEE2);
+ addSpawnId(LOYEE3);
+ addSpawnId(LOYEE4);
+ addSpawnId(LOYEE5);
+ addSpawnId(LOYEE6);
+ }
+
+ @Override
+ public String onAdvEvent(String event, Npc npc, PlayerInstance player)
+ {
+ String htmltext = null;
+ switch (event)
+ {
+ case "spam_text1":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT1[getRandom(SPAM_TEXT1.length)]));
+ break;
+ }
+ case "spam_text2":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT2[getRandom(SPAM_TEXT2.length)]));
+ break;
+ }
+ case "spam_text3":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT3[getRandom(SPAM_TEXT3.length)]));
+ break;
+ }
+ case "spam_text4":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT4[getRandom(SPAM_TEXT4.length)]));
+ break;
+ }
+ case "spam_text5":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT5[getRandom(SPAM_TEXT5.length)]));
+ break;
+ }
+ case "spam_text6":
+ {
+ npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), SPAM_TEXT6[getRandom(SPAM_TEXT6.length)]));
+ break;
+ }
+ }
+ return htmltext;
+ }
+
+ @Override
+ public String onSpawn(Npc npc)
+ {
+ npc.setIsTalkable(false);
+
+ if (npc.getId() == LOYEE1)
+ {
+ startQuestTimer("spam_text1", 17000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE2)
+ {
+ startQuestTimer("spam_text2", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE3)
+ {
+ startQuestTimer("spam_text3", 16000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE4)
+ {
+ startQuestTimer("spam_text4", 180000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE5)
+ {
+ startQuestTimer("spam_text5", 15000, npc, null, true);
+ }
+ if (npc.getId() == LOYEE6)
+ {
+ startQuestTimer("spam_text6", 18000, npc, null, true);
+ }
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new TavernEmployee();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/DarkElf/LandOfChaos.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/DarkElf/LandOfChaos.xml
deleted file mode 100644
index 5be37d3cae..0000000000
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/DarkElf/LandOfChaos.xml
+++ /dev/null
@@ -1,620 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/LandOfChaos.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/LandOfChaos.xml
new file mode 100644
index 0000000000..9f5424c0fa
--- /dev/null
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/LandOfChaos.xml
@@ -0,0 +1,469 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/UndergroundTown.xml b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/UndergroundTown.xml
index 40ba747830..63ebd03530 100644
--- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/UndergroundTown.xml
+++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/spawns/Orc/UndergroundTown.xml
@@ -37,7 +37,11 @@
-
+
+
+
+
+