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 @@ - + + + + +