From 438bbb88b756115d5057d967c2ddb9b9d5c43266 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 16 Jun 2020 02:31:04 +0000 Subject: [PATCH] Removed nonexistent boss scripts. --- .../game/data/scripts/ai/bosses/DrChaos.java | 145 -- .../game/data/scripts/ai/bosses/Gordon.java | 278 --- .../data/scripts/ai/bosses/IceFairySirra.java | 453 ----- .../data/scripts/ai/bosses/VanHalter.java | 1745 ----------------- 4 files changed, 2621 deletions(-) delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/DrChaos.java delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/Gordon.java delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/IceFairySirra.java delete mode 100644 L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/VanHalter.java diff --git a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/DrChaos.java b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/DrChaos.java deleted file mode 100644 index 21616edca7..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/DrChaos.java +++ /dev/null @@ -1,145 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package ai.bosses; - -import org.l2jmobius.gameserver.ai.CtrlIntention; -import org.l2jmobius.gameserver.datatables.sql.SpawnTable; -import org.l2jmobius.gameserver.model.Location; -import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; -import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; -import org.l2jmobius.gameserver.model.quest.Quest; -import org.l2jmobius.gameserver.model.spawn.Spawn; -import org.l2jmobius.gameserver.network.serverpackets.PlaySound; -import org.l2jmobius.gameserver.network.serverpackets.SocialAction; -import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera; - -/** - * @author Mobius - * @note Based on python script - */ -public class DrChaos extends Quest -{ - // NPCs - private static final int STRANGE_MACHINE = 32032; - private static final int DR_CHAOS = 32033; - private static final int CHAOS_GOLEM = 25512; - // Misc - private static int _golemSpawned = 0; - private static int _chaosSpawned = 1; - - private DrChaos() - { - super(-1, "ai/bosses"); - - addFirstTalkId(DR_CHAOS); - } - - @Override - public String onAdvEvent(String event, NpcInstance npc, PlayerInstance player) - { - switch (event) - { - case "1": - { - final NpcInstance strangeMachine = findTemplate(STRANGE_MACHINE); - if (strangeMachine != null) - { - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, strangeMachine); - strangeMachine.broadcastPacket(new SpecialCamera(strangeMachine.getObjectId(), 1, -200, 15, 10000, 20000)); - } - else - { - LOGGER.warning("Dr Chaos AI: problem finding Strange Machine (npcid = " + STRANGE_MACHINE + "). Error: not spawned!"); - } - startQuestTimer("2", 2000, npc, player); - startQuestTimer("3", 10000, npc, player); - if (_chaosSpawned == 0) - { - addSpawn(DR_CHAOS, 96471, -111425, -3334, 0, false, 0); - _chaosSpawned = 1; - } - startQuestTimer("2", 2000, npc, player); - startQuestTimer("3", 10000, npc, player); - break; - } - case "2": - { - npc.broadcastPacket(new SocialAction(npc.getObjectId(), 3)); - break; - } - case "3": - { - npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 1, -150, 10, 3000, 20000)); - startQuestTimer("4", 2500, npc, player); - break; - } - case "4": - { - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(96055, -110759, -3312)); - startQuestTimer("5", 2000, npc, player); - break; - } - case "5": - { - player.teleToLocation(94832, -112624, -3304); - npc.teleToLocation(-113091, -243942, -15536); - if (_golemSpawned == 0) - { - final NpcInstance golem = addSpawn(CHAOS_GOLEM, 94640, -112496, -3336, 0, false, 0); - _golemSpawned = 1; - startQuestTimer("6", 1000, golem, player); - player.sendPacket(new PlaySound(1, "Rm03_A")); - } - break; - } - case "6": - { - npc.broadcastPacket(new SpecialCamera(npc.getObjectId(), 30, -200, 20, 6000, 8000)); - break; - } - } - return null; - } - - @Override - public String onFirstTalk(NpcInstance npc, PlayerInstance player) - { - player.setTarget(null); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(96323, -110914, -3328)); - startQuestTimer("1", 3000, npc, player); - return null; - } - - private NpcInstance findTemplate(int npcId) - { - NpcInstance npcInstance = null; - for (Spawn spawn : SpawnTable.getInstance().getSpawnTable().values()) - { - if ((spawn != null) && (spawn.getNpcId() == npcId)) - { - npcInstance = spawn.getLastSpawn(); - break; - } - } - return npcInstance; - } - - public static void main(String[] args) - { - new DrChaos(); - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/Gordon.java b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/Gordon.java deleted file mode 100644 index 7a828ca3fa..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/Gordon.java +++ /dev/null @@ -1,278 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package ai.bosses; - -import org.l2jmobius.gameserver.ai.CtrlIntention; -import org.l2jmobius.gameserver.datatables.sql.SpawnTable; -import org.l2jmobius.gameserver.model.Location; -import org.l2jmobius.gameserver.model.actor.Attackable; -import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; -import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; -import org.l2jmobius.gameserver.model.quest.EventType; -import org.l2jmobius.gameserver.model.quest.Quest; -import org.l2jmobius.gameserver.model.spawn.Spawn; - -/** - * Gordon AI - * @author TOFIZ - * @version $Revision: 1.1 $ $Date: 2008/08/21 $ - */ -public class Gordon extends Quest -{ - private static final int GORDON = 29095; - private static int _npcMoveX = 0; - private static int _npcMoveY = 0; - private static int _isWalkTo = 0; - private static int _npcBlock = 0; - - // @formatter:off - private static final int[][] WALKS = - { - {141569, -45908, -2387}, - {142494, -45456, -2397}, - {142922, -44561, -2395}, - {143672, -44130, -2398}, - {144557, -43378, -2325}, - {145839, -43267, -2301}, - {147044, -43601, -2307}, - {148140, -43206, -2303}, - {148815, -43434, -2328}, - {149862, -44151, -2558}, - {151037, -44197, -2708}, - {152555, -42756, -2836}, - {154808, -39546, -3236}, - {155333, -39962, -3272}, - {156531, -41240, -3470}, - {156863, -43232, -3707}, - {156783, -44198, -3764}, - {158169, -45163, -3541}, - {158952, -45479, -3473}, - {160039, -46514, -3634}, - {160244, -47429, -3656}, - {159155, -48109, -3665}, - {159558, -51027, -3523}, - {159396, -53362, -3244}, - {160872, -56556, -2789}, - {160857, -59072, -2613}, - {160410, -59888, -2647}, - {158770, -60173, -2673}, - {156368, -59557, -2638}, - {155188, -59868, -2642}, - {154118, -60591, -2731}, - {153571, -61567, -2821}, - {153457, -62819, -2886}, - {152939, -63778, -3003}, - {151816, -64209, -3120}, - {147655, -64826, -3433}, - {145422, -64576, -3369}, - {144097, -64320, -3404}, - {140780, -61618, -3096}, - {139688, -61450, -3062}, - {138267, -61743, -3056}, - {138613, -58491, -3465}, - {138139, -57252, -3517}, - {139555, -56044, -3310}, - {139107, -54537, -3240}, - {139279, -53781, -3091}, - {139810, -52687, -2866}, - {139657, -52041, -2793}, - {139215, -51355, -2698}, - {139334, -50514, -2594}, - {139817, -49715, -2449}, - {139824, -48976, -2263}, - {140130, -47578, -2213}, - {140483, -46339, -2382}, - {141569, -45908, -2387} - }; - // @formatter:on - - private static boolean _isAttacked = false; - private static boolean _isSpawned = false; - - public Gordon() - { - super(-1, "ai/bosses"); - - addEventId(GORDON, EventType.ON_KILL); - addEventId(GORDON, EventType.ON_ATTACK); - addEventId(GORDON, EventType.ON_SPAWN); - - // wait 2 minutes after Start AI - startQuestTimer("check_ai", 120000, null, null, true); - - _isSpawned = false; - _isAttacked = false; - _isWalkTo = 1; - _npcMoveX = 0; - _npcMoveY = 0; - _npcBlock = 0; - } - - @Override - public String onAdvEvent(String event, NpcInstance npc, PlayerInstance player) - { - int x = WALKS[_isWalkTo - 1][0]; - int y = WALKS[_isWalkTo - 1][1]; - int z = WALKS[_isWalkTo - 1][2]; - - switch (event) - { - case "time_isAttacked": - { - _isAttacked = false; - if (npc.getNpcId() == GORDON) - { - npc.setWalking(); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(x, y, z, 0)); - } - break; - } - case "check_ai": - { - cancelQuestTimer("check_ai", null, null); - if (!_isSpawned) - { - final NpcInstance gordon = findTemplate(GORDON); - if (gordon != null) - { - _isSpawned = true; - startQuestTimer("Start", 1000, gordon, null, true); - return super.onAdvEvent(event, npc, player); - } - } - break; - } - case "Start": - { - // startQuestTimer("Start", 1000, npc, null); - if ((npc != null) && _isSpawned) - { - if (_isAttacked) - { - return super.onAdvEvent(event, npc, player); - } - - if ((npc.getNpcId() == GORDON) && ((npc.getX() - 50) <= x) && ((npc.getX() + 50) >= x) && ((npc.getY() - 50) <= y) && ((npc.getY() + 50) >= y)) - { - _isWalkTo++; - if (_isWalkTo > 55) - { - _isWalkTo = 1; - } - x = WALKS[_isWalkTo - 1][0]; - y = WALKS[_isWalkTo - 1][1]; - z = WALKS[_isWalkTo - 1][2]; - npc.setWalking(); - // TODO: find better way to prevent teleporting to the home location - npc.getSpawn().setX(x); - npc.getSpawn().setY(y); - npc.getSpawn().setZ(z); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(x, y, z, 0)); - } - // Test for unblock Npc - if ((npc.getX() != _npcMoveX) && (npc.getY() != _npcMoveY)) - { - _npcMoveX = npc.getX(); - _npcMoveY = npc.getY(); - _npcBlock = 0; - } - else if (npc.getNpcId() == GORDON) - { - _npcBlock++; - if (_npcBlock > 2) - { - npc.teleToLocation(x, y, z); - return super.onAdvEvent(event, npc, player); - } - if (_npcBlock > 0) - { - // TODO: find better way to prevent teleporting to the home location - npc.getSpawn().setX(x); - npc.getSpawn().setY(y); - npc.getSpawn().setZ(z); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(x, y, z, 0)); - } - } - // End Test unblock Npc - } - break; - } - } - return super.onAdvEvent(event, npc, player); - } - - @Override - public String onSpawn(NpcInstance npc) - { - if ((npc.getNpcId() == GORDON) && (_npcBlock == 0)) - { - _isSpawned = true; - _isWalkTo = 1; - startQuestTimer("Start", 1000, npc, null); - } - return super.onSpawn(npc); - } - - @Override - public String onAttack(NpcInstance npc, PlayerInstance player, int damage, boolean isPet) - { - if (npc.getNpcId() == GORDON) - { - _isAttacked = true; - cancelQuestTimer("time_isAttacked", null, null); - startQuestTimer("time_isAttacked", 180000, npc, null); - if (player != null) - { - npc.setRunning(); - ((Attackable) npc).addDamageHate(player, 0, 100); - npc.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, player); - } - } - return super.onAttack(npc, player, damage, isPet); - } - - @Override - public String onKill(NpcInstance npc, PlayerInstance killer, boolean isPet) - { - if (npc.getNpcId() == GORDON) - { - cancelQuestTimer("Start", null, null); - cancelQuestTimer("time_isAttacked", null, null); - _isSpawned = false; - } - return super.onKill(npc, killer, isPet); - } - - public NpcInstance findTemplate(int npcId) - { - NpcInstance npc = null; - for (Spawn spawn : SpawnTable.getInstance().getSpawnTable().values()) - { - if ((spawn != null) && (spawn.getNpcId() == npcId)) - { - npc = spawn.getLastSpawn(); - break; - } - } - return npc; - } - - public static void main(String[] args) - { - new Gordon(); - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/IceFairySirra.java b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/IceFairySirra.java deleted file mode 100644 index f03838c049..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/IceFairySirra.java +++ /dev/null @@ -1,453 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package ai.bosses; - -import java.util.Collection; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.Future; - -import org.l2jmobius.Config; -import org.l2jmobius.gameserver.cache.HtmCache; -import org.l2jmobius.gameserver.datatables.sql.NpcTable; -import org.l2jmobius.gameserver.datatables.sql.SpawnTable; -import org.l2jmobius.gameserver.datatables.xml.DoorData; -import org.l2jmobius.gameserver.instancemanager.GrandBossManager; -import org.l2jmobius.gameserver.model.actor.instance.DoorInstance; -import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; -import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; -import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; -import org.l2jmobius.gameserver.model.items.instance.ItemInstance; -import org.l2jmobius.gameserver.model.quest.EventType; -import org.l2jmobius.gameserver.model.quest.Quest; -import org.l2jmobius.gameserver.model.spawn.Spawn; -import org.l2jmobius.gameserver.model.zone.type.BossZone; -import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; -import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; -import org.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage; - -/** - * Ice Fairy Sirra AI - * @author Kerberos - */ -public class IceFairySirra extends Quest -{ - private static final int STEWARD = 32029; - private static final int SILVER_HEMOCYTE = 8057; - private static BossZone _freyasZone; - private static PlayerInstance _player = null; - protected Collection _allMobs = ConcurrentHashMap.newKeySet(); - protected Future _onDeadEventTask = null; - - public IceFairySirra() - { - super(-1, "ai/bosses"); - final int[] mobs = - { - STEWARD, - 22100, - 22102, - 22104 - }; - - for (int mob : mobs) - { - // TODO: - addEventId(mob, EventType.QUEST_START); - addEventId(mob, EventType.QUEST_TALK); - addEventId(mob, EventType.NPC_FIRST_TALK); - } - - init(); - } - - @Override - public String onFirstTalk(NpcInstance npc, PlayerInstance player) - { - if (player.getQuestState(getName()) == null) - { - newQuestState(player); - } - player.setLastQuestNpcObject(npc.getObjectId()); - String filename = ""; - if (npc.isBusy()) - { - filename = getHtmlPath(10); - } - else - { - filename = getHtmlPath(0); - } - sendHtml(npc, player, filename); - return null; - } - - @Override - public String onAdvEvent(String event, NpcInstance npc, PlayerInstance player) - { - if (event.equals("check_condition")) - { - if (npc.isBusy()) - { - return super.onAdvEvent(event, npc, player); - } - - String filename = ""; - if (player.isInParty() && (player.getParty().getPartyLeaderOID() == player.getObjectId())) - { - if (checkItems(player)) - { - startQuestTimer("start", 100000, null, player); - _player = player; - destroyItems(player); - player.getInventory().addItem("Scroll", 8379, 3, player, null); - npc.setBusy(true); - screenMessage(player, "Steward: Please wait a moment.", 100000); - filename = getHtmlPath(3); - } - else - { - filename = getHtmlPath(2); - } - } - else - { - filename = getHtmlPath(1); - } - sendHtml(npc, player, filename); - } - else if (event.equals("start")) - { - if (_freyasZone == null) - { - LOGGER.warning("IceFairySirraManager: Failed to load zone"); - cleanUp(); - return super.onAdvEvent(event, npc, player); - } - _freyasZone.setZoneEnabled(true); - closeGates(); - doSpawns(); - startQuestTimer("Party_Port", 2000, null, player); - startQuestTimer("End", 1802000, null, player); - } - else if (event.equals("Party_Port")) - { - teleportInside(player); - screenMessage(player, "Steward: Please restore the Queen's appearance!", 10000); - startQuestTimer("30MinutesRemaining", 300000, null, player); - } - else if (event.equals("30MinutesRemaining")) - { - screenMessage(player, "30 minute(s) are remaining.", 10000); - startQuestTimer("20minutesremaining", 600000, null, player); - } - else if (event.equals("20MinutesRemaining")) - { - screenMessage(player, "20 minute(s) are remaining.", 10000); - startQuestTimer("10minutesremaining", 600000, null, player); - } - else if (event.equals("10MinutesRemaining")) - { - screenMessage(player, "Steward: Waste no time! Please hurry!", 10000); - } - else if (event.equals("End")) - { - screenMessage(player, "Steward: Was it indeed too much to ask.", 10000); - cleanUp(); - } - return super.onAdvEvent(event, npc, player); - } - - public void init() - { - _freyasZone = GrandBossManager.getInstance().getZone(105546, -127892, -2768); - if (_freyasZone == null) - { - LOGGER.warning("IceFairySirraManager: Failed to load zone"); - return; - } - _freyasZone.setZoneEnabled(false); - final NpcInstance steward = findTemplate(STEWARD); - if (steward != null) - { - steward.setBusy(false); - } - openGates(); - } - - public void cleanUp() - { - init(); - cancelQuestTimer("30MinutesRemaining", null, _player); - cancelQuestTimer("20MinutesRemaining", null, _player); - cancelQuestTimer("10MinutesRemaining", null, _player); - cancelQuestTimer("End", null, _player); - for (NpcInstance mob : _allMobs) - { - try - { - mob.getSpawn().stopRespawn(); - mob.deleteMe(); - } - catch (Exception e) - { - LOGGER.warning("IceFairySirraManager: Failed deleting mob. " + e); - } - } - _allMobs.clear(); - } - - public NpcInstance findTemplate(int npcId) - { - NpcInstance npc = null; - for (Spawn spawn : SpawnTable.getInstance().getSpawnTable().values()) - { - if ((spawn != null) && (spawn.getNpcId() == npcId)) - { - npc = spawn.getLastSpawn(); - break; - } - } - return npc; - } - - protected void openGates() - { - for (int i = 23140001; i < 23140003; i++) - { - try - { - final DoorInstance door = DoorData.getInstance().getDoor(i); - if (door != null) - { - door.openMe(); - } - else - { - LOGGER.warning("IceFairySirraManager: Attempted to open undefined door. doorId: " + i); - } - } - catch (Exception e) - { - LOGGER.warning("IceFairySirraManager: Failed closing door " + e); - } - } - } - - protected void closeGates() - { - for (int i = 23140001; i < 23140003; i++) - { - try - { - final DoorInstance door = DoorData.getInstance().getDoor(i); - if (door != null) - { - door.closeMe(); - } - else - { - LOGGER.warning("IceFairySirraManager: Attempted to close undefined door. doorId: " + i); - } - } - catch (Exception e) - { - LOGGER.warning("IceFairySirraManager: Failed closing door " + e); - } - } - } - - public boolean checkItems(PlayerInstance player) - { - if (player.getParty() != null) - { - for (PlayerInstance pc : player.getParty().getPartyMembers()) - { - final ItemInstance i = pc.getInventory().getItemByItemId(SILVER_HEMOCYTE); - if ((i == null) || (i.getCount() < 10)) - { - return false; - } - } - } - else - { - return false; - } - return true; - } - - public void destroyItems(PlayerInstance player) - { - if (player.getParty() != null) - { - for (PlayerInstance pc : player.getParty().getPartyMembers()) - { - final ItemInstance i = pc.getInventory().getItemByItemId(SILVER_HEMOCYTE); - pc.destroyItem("Hemocytes", i.getObjectId(), 10, null, false); - } - } - else - { - cleanUp(); - } - } - - public void teleportInside(PlayerInstance player) - { - if (player.getParty() != null) - { - for (PlayerInstance pc : player.getParty().getPartyMembers()) - { - pc.teleToLocation(113533, -126159, -3488, false); - if (_freyasZone == null) - { - LOGGER.warning("IceFairySirraManager: Failed to load zone"); - cleanUp(); - return; - } - _freyasZone.allowPlayerEntry(pc, 2103); - } - } - else - { - cleanUp(); - } - } - - public void screenMessage(PlayerInstance player, String text, int time) - { - if (player.getParty() != null) - { - for (PlayerInstance pc : player.getParty().getPartyMembers()) - { - pc.sendPacket(new ExShowScreenMessage(text, time)); - } - } - else - { - cleanUp(); - } - } - - public void doSpawns() - { - final int[][] mobs = - { - { - 29060, - 105546, - -127892, - -2768 - }, - { - 29056, - 102779, - -125920, - -2840 - }, - { - 22100, - 111719, - -126646, - -2992 - }, - { - 22102, - 109509, - -128946, - -3216 - }, - { - 22104, - 109680, - -125756, - -3136 - } - }; - Spawn spawnDat; - NpcTemplate template; - try - { - for (int i = 0; i < 5; i++) - { - template = NpcTable.getInstance().getTemplate(mobs[i][0]); - if (template != null) - { - spawnDat = new Spawn(template); - spawnDat.setAmount(1); - spawnDat.setX(mobs[i][1]); - spawnDat.setY(mobs[i][2]); - spawnDat.setZ(mobs[i][3]); - spawnDat.setHeading(0); - spawnDat.setRespawnDelay(60); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _allMobs.add(spawnDat.doSpawn()); - spawnDat.stopRespawn(); - } - else - { - LOGGER.warning("IceFairySirraManager: Data missing in NPC table for ID: " + mobs[i][0]); - } - } - } - catch (Exception e) - { - LOGGER.warning("IceFairySirraManager: Spawns could not be initialized: " + e); - } - } - - public String getHtmlPath(int value) - { - String pom = ""; - pom = "32029-" + value; - if (value == 0) - { - pom = "32029"; - } - - final String temp = "data/html/default/" + pom + ".htm"; - if (!Config.LAZY_CACHE) - { - // If not running lazy cache the file must be in the cache or it doesnt exist - if (HtmCache.getInstance().contains(temp)) - { - return temp; - } - } - else if (HtmCache.getInstance().isLoadable(temp)) - { - return temp; - } - - // If the file is not found, the standard message "I have nothing to say to you" is returned - return "data/html/npcdefault.htm"; - } - - public void sendHtml(NpcInstance npc, PlayerInstance player, String filename) - { - final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId()); - html.setFile(filename); - html.replace("%objectId%", String.valueOf(npc.getObjectId())); - player.sendPacket(html); - player.sendPacket(ActionFailed.STATIC_PACKET); - } - - public static void main(String[] args) - { - new IceFairySirra(); - } -} diff --git a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/VanHalter.java b/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/VanHalter.java deleted file mode 100644 index 21f7694a22..0000000000 --- a/L2J_Mobius_C4_ScionsOfDestiny/dist/game/data/scripts/ai/bosses/VanHalter.java +++ /dev/null @@ -1,1745 +0,0 @@ -/* - * This file is part of the L2J Mobius project. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package ai.bosses; - -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ScheduledFuture; -import java.util.logging.Logger; - -import org.l2jmobius.Config; -import org.l2jmobius.commons.concurrent.ThreadPool; -import org.l2jmobius.commons.database.DatabaseFactory; -import org.l2jmobius.commons.util.Rnd; -import org.l2jmobius.gameserver.ai.CtrlIntention; -import org.l2jmobius.gameserver.datatables.SkillTable; -import org.l2jmobius.gameserver.datatables.sql.NpcTable; -import org.l2jmobius.gameserver.datatables.sql.SpawnTable; -import org.l2jmobius.gameserver.datatables.xml.DoorData; -import org.l2jmobius.gameserver.instancemanager.GrandBossManager; -import org.l2jmobius.gameserver.model.Effect; -import org.l2jmobius.gameserver.model.Location; -import org.l2jmobius.gameserver.model.Skill; -import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.actor.instance.DoorInstance; -import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; -import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; -import org.l2jmobius.gameserver.model.actor.instance.RaidBossInstance; -import org.l2jmobius.gameserver.model.actor.templates.NpcTemplate; -import org.l2jmobius.gameserver.model.quest.EventType; -import org.l2jmobius.gameserver.model.quest.Quest; -import org.l2jmobius.gameserver.model.spawn.Spawn; -import org.l2jmobius.gameserver.network.serverpackets.MagicSkillUse; -import org.l2jmobius.gameserver.network.serverpackets.SpecialCamera; - -/** - * @author L2J_JP SANDMAN - **/ -public class VanHalter extends Quest -{ - private static final Logger LOGGER = Logger.getLogger(VanHalter.class.getName()); - - // List of intruders. - protected Map> _bleedingPlayers = new HashMap<>(); - - // Spawn data of monsters. - protected Map _monsterSpawn = new ConcurrentHashMap<>(); - protected Collection _royalGuardSpawn = ConcurrentHashMap.newKeySet(); - protected Collection _royalGuardCaptainSpawn = ConcurrentHashMap.newKeySet(); - protected Collection _royalGuardHelperSpawn = ConcurrentHashMap.newKeySet(); - protected Collection _triolRevelationSpawn = ConcurrentHashMap.newKeySet(); - protected Collection _triolRevelationAlive = ConcurrentHashMap.newKeySet(); - protected Collection _guardOfAltarSpawn = ConcurrentHashMap.newKeySet(); - protected Map _cameraMarkerSpawn = new ConcurrentHashMap<>(); - protected Spawn _ritualOfferingSpawn = null; - protected Spawn _ritualSacrificeSpawn = null; - protected Spawn _vanHalterSpawn = null; - - // Instance of monsters. - protected Collection _monsters = ConcurrentHashMap.newKeySet(); - protected Collection _royalGuard = ConcurrentHashMap.newKeySet(); - protected Collection _royalGuardCaptain = ConcurrentHashMap.newKeySet(); - protected Collection _royalGuardHepler = ConcurrentHashMap.newKeySet(); - protected Collection _triolRevelation = ConcurrentHashMap.newKeySet(); - protected Collection _guardOfAltar = ConcurrentHashMap.newKeySet(); - protected Map _cameraMarker = new ConcurrentHashMap<>(); - protected Collection _doorOfAltar = ConcurrentHashMap.newKeySet(); - protected Collection _doorOfSacrifice = ConcurrentHashMap.newKeySet(); - protected NpcInstance _ritualOffering = null; - protected NpcInstance _ritualSacrifice = null; - protected RaidBossInstance _vanHalter = null; - - // Task - protected ScheduledFuture _movieTask = null; - protected ScheduledFuture _closeDoorOfAltarTask = null; - protected ScheduledFuture _openDoorOfAltarTask = null; - protected ScheduledFuture _lockUpDoorOfAltarTask = null; - protected ScheduledFuture _callRoyalGuardHelperTask = null; - protected ScheduledFuture _timeUpTask = null; - protected ScheduledFuture _intervalTask = null; - protected ScheduledFuture _halterEscapeTask = null; - protected ScheduledFuture _setBleedTask = null; - - // State of High Priestess van Halter - boolean _isLocked = false; - boolean _isHalterSpawned = false; - boolean _isSacrificeSpawned = false; - boolean _isCaptainSpawned = false; - boolean _isHelperCalled = false; - - // VanHalter Status Tracking : - private static final byte INTERVAL = 0; - private static final byte NOTSPAWN = 1; - private static final byte ALIVE = 2; - - // Initialize - public VanHalter() - { - super(-1, "ai/bosses"); - - final int[] mobs = - { - 29062, - 22188, - 32058, - 32059, - 32060, - 32061, - 32062, - 32063, - 32064, - 32065, - 32066 - }; - - addEventId(29062, EventType.ON_ATTACK); - for (int mob : mobs) - { - addEventId(mob, EventType.ON_KILL); - } - - // GrandBossManager.getInstance().addBoss(29062); - // Clear flag. - _isLocked = false; - _isCaptainSpawned = false; - _isHelperCalled = false; - _isHalterSpawned = false; - - // Setting door state. - _doorOfAltar.add(DoorData.getInstance().getDoor(19160014)); - _doorOfAltar.add(DoorData.getInstance().getDoor(19160015)); - openDoorOfAltar(true); - _doorOfSacrifice.add(DoorData.getInstance().getDoor(19160016)); - _doorOfSacrifice.add(DoorData.getInstance().getDoor(19160017)); - closeDoorOfSacrifice(); - - // Load spawn data of monsters. - loadRoyalGuard(); - loadTriolRevelation(); - loadRoyalGuardCaptain(); - loadRoyalGuardHelper(); - loadGuardOfAltar(); - loadVanHalter(); - loadRitualOffering(); - loadRitualSacrifice(); - - // Spawn monsters. - spawnRoyalGuard(); - spawnTriolRevelation(); - spawnVanHalter(); - spawnRitualOffering(); - - // Setting spawn data of Dummy camera marker. - _cameraMarkerSpawn.clear(); - try - { - final NpcTemplate template1 = NpcTable.getInstance().getTemplate(13014); // Dummy npc - Spawn tempSpawn; - - // Dummy camera marker. - tempSpawn = new Spawn(template1); - tempSpawn.setX(-16397); - tempSpawn.setY(-55200); - tempSpawn.setZ(-10449); - tempSpawn.setHeading(16384); - tempSpawn.setAmount(1); - tempSpawn.setRespawnDelay(60000); - SpawnTable.getInstance().addNewSpawn(tempSpawn, false); - _cameraMarkerSpawn.put(1, tempSpawn); - - tempSpawn = new Spawn(template1); - tempSpawn.setX(-16397); - tempSpawn.setY(-55200); - tempSpawn.setZ(-10051); - tempSpawn.setHeading(16384); - tempSpawn.setAmount(1); - tempSpawn.setRespawnDelay(60000); - SpawnTable.getInstance().addNewSpawn(tempSpawn, false); - _cameraMarkerSpawn.put(2, tempSpawn); - - tempSpawn = new Spawn(template1); - tempSpawn.setX(-16397); - tempSpawn.setY(-55200); - tempSpawn.setZ(-9741); - tempSpawn.setHeading(16384); - tempSpawn.setAmount(1); - tempSpawn.setRespawnDelay(60000); - SpawnTable.getInstance().addNewSpawn(tempSpawn, false); - _cameraMarkerSpawn.put(3, tempSpawn); - - tempSpawn = new Spawn(template1); - tempSpawn.setX(-16397); - tempSpawn.setY(-55200); - tempSpawn.setZ(-9394); - tempSpawn.setHeading(16384); - tempSpawn.setAmount(1); - tempSpawn.setRespawnDelay(60000); - SpawnTable.getInstance().addNewSpawn(tempSpawn, false); - _cameraMarkerSpawn.put(4, tempSpawn); - - tempSpawn = new Spawn(template1); - tempSpawn.setX(-16397); - tempSpawn.setY(-55197); - tempSpawn.setZ(-8739); - tempSpawn.setHeading(16384); - tempSpawn.setAmount(1); - tempSpawn.setRespawnDelay(60000); - SpawnTable.getInstance().addNewSpawn(tempSpawn, false); - _cameraMarkerSpawn.put(5, tempSpawn); - } - catch (Exception e) - { - LOGGER.warning("VanHalterManager : " + e.getMessage() + " :" + e); - } - - // Set time up. - if (_timeUpTask != null) - { - _timeUpTask.cancel(false); - } - _timeUpTask = ThreadPool.schedule(new TimeUp(), Config.HPH_ACTIVITYTIMEOFHALTER); - - // Set bleeding to palyers. - if (_setBleedTask != null) - { - _setBleedTask.cancel(false); - } - _setBleedTask = ThreadPool.schedule(new Bleeding(), 2000); - - final Integer status = GrandBossManager.getInstance().getBossStatus(29062); - if (status == INTERVAL) - { - enterInterval(); - } - else - { - GrandBossManager.getInstance().setBossStatus(29062, NOTSPAWN); - } - } - - @Override - public String onAttack(NpcInstance npc, PlayerInstance attacker, int damage, boolean isPet) - { - if ((npc.getNpcId() == 29062) && (((int) (npc.getStatus().getCurrentHp() / npc.getMaxHp()) * 100) <= 20)) - { - callRoyalGuardHelper(); - } - return super.onAttack(npc, attacker, damage, isPet); - } - - @Override - public String onKill(NpcInstance npc, PlayerInstance killer, boolean isPet) - { - final int npcId = npc.getNpcId(); - if ((npcId == 32058) || (npcId == 32059) || (npcId == 32060) || (npcId == 32061) || (npcId == 32062) || (npcId == 32063) || (npcId == 32064) || (npcId == 32065) || (npcId == 32066)) - { - removeBleeding(npcId); - } - checkTriolRevelationDestroy(); - if (npcId == 22188) - { - checkRoyalGuardCaptainDestroy(); - } - if (npcId == 29062) - { - enterInterval(); - } - return super.onKill(npc, killer, isPet); - } - - // Load Royal Guard. - protected void loadRoyalGuard() - { - _royalGuardSpawn.clear(); - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid between ? and ? ORDER BY id"); - statement.setInt(1, 22175); - statement.setInt(2, 22176); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _royalGuardSpawn.add(spawnDat); - } - else - { - LOGGER.warning("VanHalterManager.loadRoyalGuard: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadRoyalGuard: Spawn could not be initialized: " + e); - } - } - - protected void spawnRoyalGuard() - { - if (!_royalGuard.isEmpty()) - { - deleteRoyalGuard(); - } - - for (Spawn rgs : _royalGuardSpawn) - { - rgs.startRespawn(); - _royalGuard.add(rgs.doSpawn()); - } - } - - protected void deleteRoyalGuard() - { - for (NpcInstance rg : _royalGuard) - { - rg.getSpawn().stopRespawn(); - rg.deleteMe(); - } - - _royalGuard.clear(); - } - - // Load Triol's Revelation. - protected void loadTriolRevelation() - { - _triolRevelationSpawn.clear(); - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid between ? and ? ORDER BY id"); - statement.setInt(1, 32058); - statement.setInt(2, 32068); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _triolRevelationSpawn.add(spawnDat); - } - else - { - LOGGER.warning("VanHalterManager.loadTriolRevelation: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadTriolRevelation: Spawn could not be initialized: " + e); - } - } - - protected void spawnTriolRevelation() - { - if (!_triolRevelation.isEmpty()) - { - deleteTriolRevelation(); - } - - for (Spawn trs : _triolRevelationSpawn) - { - trs.startRespawn(); - _triolRevelation.add(trs.doSpawn()); - if ((trs.getNpcId() != 32067) && (trs.getNpcId() != 32068)) - { - _triolRevelationAlive.add(trs); - } - } - } - - protected void deleteTriolRevelation() - { - for (NpcInstance tr : _triolRevelation) - { - tr.getSpawn().stopRespawn(); - tr.deleteMe(); - } - _triolRevelation.clear(); - _bleedingPlayers.clear(); - } - - // Load Royal Guard Captain. - protected void loadRoyalGuardCaptain() - { - _royalGuardCaptainSpawn.clear(); - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid = ? ORDER BY id"); - statement.setInt(1, 22188); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _royalGuardCaptainSpawn.add(spawnDat); - } - else - { - LOGGER.warning("VanHalterManager.loadRoyalGuardCaptain: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadRoyalGuardCaptain: Spawn could not be initialized: " + e); - } - } - - protected void spawnRoyalGuardCaptain() - { - if (!_royalGuardCaptain.isEmpty()) - { - deleteRoyalGuardCaptain(); - } - - for (Spawn trs : _royalGuardCaptainSpawn) - { - trs.startRespawn(); - _royalGuardCaptain.add(trs.doSpawn()); - } - _isCaptainSpawned = true; - } - - protected void deleteRoyalGuardCaptain() - { - for (NpcInstance tr : _royalGuardCaptain) - { - tr.getSpawn().stopRespawn(); - tr.deleteMe(); - } - _royalGuardCaptain.clear(); - } - - // Load Royal Guard Helper. - protected void loadRoyalGuardHelper() - { - _royalGuardHelperSpawn.clear(); - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid = ? ORDER BY id"); - statement.setInt(1, 22191); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _royalGuardHelperSpawn.add(spawnDat); - } - else - { - LOGGER.warning("VanHalterManager.loadRoyalGuardHelper: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadRoyalGuardHelper: Spawn could not be initialized: " + e); - } - } - - protected void spawnRoyalGuardHepler() - { - for (Spawn trs : _royalGuardHelperSpawn) - { - trs.startRespawn(); - _royalGuardHepler.add(trs.doSpawn()); - } - } - - protected void deleteRoyalGuardHepler() - { - for (NpcInstance tr : _royalGuardHepler) - { - tr.getSpawn().stopRespawn(); - tr.deleteMe(); - } - _royalGuardHepler.clear(); - } - - // Load Guard Of Altar - protected void loadGuardOfAltar() - { - _guardOfAltarSpawn.clear(); - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid = ? ORDER BY id"); - statement.setInt(1, 32051); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _guardOfAltarSpawn.add(spawnDat); - } - else - { - LOGGER.warning("VanHalterManager.loadGuardOfAltar: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadGuardOfAltar: Spawn could not be initialized: " + e); - } - } - - protected void spawnGuardOfAltar() - { - if (!_guardOfAltar.isEmpty()) - { - deleteGuardOfAltar(); - } - - for (Spawn trs : _guardOfAltarSpawn) - { - trs.startRespawn(); - _guardOfAltar.add(trs.doSpawn()); - } - } - - protected void deleteGuardOfAltar() - { - for (NpcInstance tr : _guardOfAltar) - { - tr.getSpawn().stopRespawn(); - tr.deleteMe(); - } - - _guardOfAltar.clear(); - } - - // Load High Priestess van Halter. - protected void loadVanHalter() - { - _vanHalterSpawn = null; - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid = ? ORDER BY id"); - statement.setInt(1, 29062); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _vanHalterSpawn = spawnDat; - } - else - { - LOGGER.warning("VanHalterManager.loadVanHalter: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadVanHalter: Spawn could not be initialized: " + e); - } - } - - protected void spawnVanHalter() - { - _vanHalter = (RaidBossInstance) _vanHalterSpawn.doSpawn(); - // _vanHalter.setImmobilized(true); - _vanHalter.setInvul(true); - _isHalterSpawned = true; - } - - protected void deleteVanHalter() - { - // _vanHalter.setImmobilized(false); - _vanHalter.setInvul(false); - _vanHalter.getSpawn().stopRespawn(); - _vanHalter.deleteMe(); - } - - // Load Ritual Offering. - protected void loadRitualOffering() - { - _ritualOfferingSpawn = null; - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid = ? ORDER BY id"); - statement.setInt(1, 32038); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _ritualOfferingSpawn = spawnDat; - } - else - { - LOGGER.warning("VanHalterManager.loadRitualOffering: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadRitualOffering: Spawn could not be initialized: " + e); - } - } - - protected void spawnRitualOffering() - { - _ritualOffering = _ritualOfferingSpawn.doSpawn(); - // _ritualOffering.setImmobilized(true); - _ritualOffering.setInvul(true); - _ritualOffering.setParalyzed(true); - } - - protected void deleteRitualOffering() - { - // _ritualOffering.setImmobilized(false); - _ritualOffering.setInvul(false); - _ritualOffering.setParalyzed(false); - _ritualOffering.getSpawn().stopRespawn(); - _ritualOffering.deleteMe(); - } - - // Load Ritual Sacrifice. - protected void loadRitualSacrifice() - { - _ritualSacrificeSpawn = null; - - try (Connection con = DatabaseFactory.getConnection()) - { - final PreparedStatement statement = con.prepareStatement("SELECT id, count, npc_templateid, locx, locy, locz, heading, respawn_delay FROM vanhalter_spawnlist Where npc_templateid = ? ORDER BY id"); - statement.setInt(1, 22195); - final ResultSet rset = statement.executeQuery(); - - Spawn spawnDat; - NpcTemplate template1; - - while (rset.next()) - { - template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); - if (template1 != null) - { - spawnDat = new Spawn(template1); - spawnDat.setAmount(rset.getInt("count")); - spawnDat.setX(rset.getInt("locx")); - spawnDat.setY(rset.getInt("locy")); - spawnDat.setZ(rset.getInt("locz")); - spawnDat.setHeading(rset.getInt("heading")); - spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); - SpawnTable.getInstance().addNewSpawn(spawnDat, false); - _ritualSacrificeSpawn = spawnDat; - } - else - { - LOGGER.warning("VanHalterManager.loadRitualSacrifice: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); - } - } - - rset.close(); - statement.close(); - } - catch (Exception e) - { - // Problem with initializing spawn, go to next one - LOGGER.warning("VanHalterManager.loadRitualSacrifice: Spawn could not be initialized: " + e); - } - } - - protected void spawnRitualSacrifice() - { - _ritualSacrifice = _ritualSacrificeSpawn.doSpawn(); - // _ritualSacrifice.setImmobilized(true); - _ritualSacrifice.setInvul(true); - _isSacrificeSpawned = true; - } - - protected void deleteRitualSacrifice() - { - if (!_isSacrificeSpawned) - { - return; - } - - _ritualSacrifice.getSpawn().stopRespawn(); - _ritualSacrifice.deleteMe(); - _isSacrificeSpawned = false; - } - - protected void spawnCameraMarker() - { - _cameraMarker.clear(); - for (int i = 1; i <= _cameraMarkerSpawn.size(); i++) - { - _cameraMarker.put(i, _cameraMarkerSpawn.get(i).doSpawn()); - _cameraMarker.get(i).getSpawn().stopRespawn(); - _cameraMarker.get(i).setImmobilized(true); - } - } - - protected void deleteCameraMarker() - { - if (_cameraMarker.isEmpty()) - { - return; - } - - for (int i = 1; i <= _cameraMarker.size(); i++) - { - _cameraMarker.get(i).deleteMe(); - } - _cameraMarker.clear(); - } - - protected class LockUpDoorOfAltar implements Runnable - { - @Override - public void run() - { - closeDoorOfAltar(false); - _isLocked = true; - _lockUpDoorOfAltarTask = null; - } - } - - protected void openDoorOfAltar(boolean loop) - { - for (DoorInstance door : _doorOfAltar) - { - try - { - door.openMe(); - } - catch (Exception e) - { - LOGGER.warning(e.getMessage() + " :" + e); - } - } - - if (loop) - { - _isLocked = false; - if (_closeDoorOfAltarTask != null) - { - _closeDoorOfAltarTask.cancel(false); - } - _closeDoorOfAltarTask = null; - _closeDoorOfAltarTask = ThreadPool.schedule(new CloseDoorOfAltar(), Config.HPH_INTERVALOFDOOROFALTER); - } - else - { - if (_closeDoorOfAltarTask != null) - { - _closeDoorOfAltarTask.cancel(false); - } - _closeDoorOfAltarTask = null; - } - } - - protected class OpenDoorOfAltar implements Runnable - { - @Override - public void run() - { - openDoorOfAltar(true); - } - } - - protected void closeDoorOfAltar(boolean loop) - { - for (DoorInstance door : _doorOfAltar) - { - door.closeMe(); - } - - if (loop) - { - if (_openDoorOfAltarTask != null) - { - _openDoorOfAltarTask.cancel(false); - } - _openDoorOfAltarTask = null; - _openDoorOfAltarTask = ThreadPool.schedule(new OpenDoorOfAltar(), Config.HPH_INTERVALOFDOOROFALTER); - } - else - { - if (_openDoorOfAltarTask != null) - { - _openDoorOfAltarTask.cancel(false); - } - _openDoorOfAltarTask = null; - } - } - - protected class CloseDoorOfAltar implements Runnable - { - @Override - public void run() - { - closeDoorOfAltar(true); - } - } - - protected void openDoorOfSacrifice() - { - for (DoorInstance door : _doorOfSacrifice) - { - try - { - door.openMe(); - } - catch (Exception e) - { - LOGGER.warning(e.getMessage() + " :" + e); - } - } - } - - protected void closeDoorOfSacrifice() - { - for (DoorInstance door : _doorOfSacrifice) - { - try - { - door.closeMe(); - } - catch (Exception e) - { - LOGGER.warning(e.getMessage() + " :" + e); - } - } - } - - // event - public void checkTriolRevelationDestroy() - { - if (_isCaptainSpawned) - { - return; - } - - boolean isTriolRevelationDestroyed = true; - for (Spawn tra : _triolRevelationAlive) - { - if (!tra.getLastSpawn().isDead()) - { - isTriolRevelationDestroyed = false; - } - } - - if (isTriolRevelationDestroyed) - { - spawnRoyalGuardCaptain(); - } - } - - public void checkRoyalGuardCaptainDestroy() - { - if (!_isHalterSpawned) - { - return; - } - - deleteRoyalGuard(); - deleteRoyalGuardCaptain(); - spawnGuardOfAltar(); - openDoorOfSacrifice(); - - // _vanHalter.setImmobilized(true); - _vanHalter.setInvul(true); - spawnCameraMarker(); - - if (_timeUpTask != null) - { - _timeUpTask.cancel(false); - } - _timeUpTask = null; - _movieTask = ThreadPool.schedule(new Movie(1), Config.HPH_APPTIMEOFHALTER); - } - - // Start fight against High Priestess van Halter. - protected void combatBeginning() - { - if (_timeUpTask != null) - { - _timeUpTask.cancel(false); - } - _timeUpTask = ThreadPool.schedule(new TimeUp(), Config.HPH_FIGHTTIMEOFHALTER); - - final Map targets = new HashMap<>(); - int i = 0; - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - i++; - targets.put(i, pc); - } - - _vanHalter.reduceCurrentHp(1, targets.get(Rnd.get(1, i))); - } - - // Call Royal Guard Helper and escape from player. - public void callRoyalGuardHelper() - { - if (!_isHelperCalled) - { - _isHelperCalled = true; - _halterEscapeTask = ThreadPool.schedule(new HalterEscape(), 500); - _callRoyalGuardHelperTask = ThreadPool.schedule(new CallRoyalGuardHelper(), 1000); - } - } - - protected class CallRoyalGuardHelper implements Runnable - { - @Override - public void run() - { - spawnRoyalGuardHepler(); - - if ((_royalGuardHepler.size() <= Config.HPH_CALLROYALGUARDHELPERCOUNT) && !_vanHalter.isDead()) - { - if (_callRoyalGuardHelperTask != null) - { - _callRoyalGuardHelperTask.cancel(false); - } - _callRoyalGuardHelperTask = ThreadPool.schedule(new CallRoyalGuardHelper(), Config.HPH_CALLROYALGUARDHELPERINTERVAL); - } - else - { - if (_callRoyalGuardHelperTask != null) - { - _callRoyalGuardHelperTask.cancel(false); - } - _callRoyalGuardHelperTask = null; - } - } - } - - protected class HalterEscape implements Runnable - { - @Override - public void run() - { - if ((_royalGuardHepler.size() <= Config.HPH_CALLROYALGUARDHELPERCOUNT) && !_vanHalter.isDead()) - { - if (_vanHalter.isAfraid()) - { - _vanHalter.stopEffects(Effect.EffectType.FEAR); - _vanHalter.setAfraid(false); - _vanHalter.updateAbnormalEffect(); - } - else - { - _vanHalter.startFear(); - if (_vanHalter.getZ() >= -10476) - { - final Location pos = new Location(-16397, -53308, -10448, 0); - if ((_vanHalter.getX() == pos.getX()) && (_vanHalter.getY() == pos.getY())) - { - _vanHalter.stopEffects(Effect.EffectType.FEAR); - _vanHalter.setAfraid(false); - _vanHalter.updateAbnormalEffect(); - } - else - { - _vanHalter.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, pos); - } - } - else if (_vanHalter.getX() >= -16397) - { - final Location pos = new Location(-15548, -54830, -10475, 0); - _vanHalter.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, pos); - } - else - { - final Location pos = new Location(-17248, -54830, -10475, 0); - _vanHalter.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, pos); - } - } - if (_halterEscapeTask != null) - { - _halterEscapeTask.cancel(false); - } - _halterEscapeTask = ThreadPool.schedule(new HalterEscape(), 5000); - } - else - { - _vanHalter.stopEffects(Effect.EffectType.FEAR); - _vanHalter.setAfraid(false); - _vanHalter.updateAbnormalEffect(); - if (_halterEscapeTask != null) - { - _halterEscapeTask.cancel(false); - } - _halterEscapeTask = null; - } - } - } - - // Check bleeding player. - protected void addBleeding() - { - final Skill bleed = SkillTable.getInstance().getInfo(4615, 12); - for (NpcInstance tr : _triolRevelation) - { - if (!tr.getKnownList().getKnownPlayersInRadius(tr.getAggroRange()).iterator().hasNext() || tr.isDead()) - { - continue; - } - - final List bpc = new ArrayList<>(); - for (PlayerInstance pc : tr.getKnownList().getKnownPlayersInRadius(tr.getAggroRange())) - { - if (pc.getFirstEffect(bleed) == null) - { - bleed.getEffects(tr, pc, false, false, false); - tr.broadcastPacket(new MagicSkillUse(tr, pc, bleed.getId(), 12, 1, 1)); - } - - bpc.add(pc); - } - _bleedingPlayers.remove(tr.getNpcId()); - _bleedingPlayers.put(tr.getNpcId(), bpc); - } - } - - public void removeBleeding(int npcId) - { - if (_bleedingPlayers.get(npcId) == null) - { - return; - } - for (PlayerInstance pc : _bleedingPlayers.get(npcId)) - { - if (pc.getFirstEffect(Effect.EffectType.DMG_OVER_TIME) != null) - { - pc.stopEffects(Effect.EffectType.DMG_OVER_TIME); - } - } - _bleedingPlayers.remove(npcId); - } - - protected class Bleeding implements Runnable - { - @Override - public void run() - { - addBleeding(); - - if (_setBleedTask != null) - { - _setBleedTask.cancel(false); - } - _setBleedTask = ThreadPool.schedule(new Bleeding(), 2000); - } - } - - // High Priestess van Halter dead or time up. - public void enterInterval() - { - // Cancel all task - if (_callRoyalGuardHelperTask != null) - { - _callRoyalGuardHelperTask.cancel(false); - } - _callRoyalGuardHelperTask = null; - - if (_closeDoorOfAltarTask != null) - { - _closeDoorOfAltarTask.cancel(false); - } - _closeDoorOfAltarTask = null; - - if (_halterEscapeTask != null) - { - _halterEscapeTask.cancel(false); - } - _halterEscapeTask = null; - - if (_intervalTask != null) - { - _intervalTask.cancel(false); - } - _intervalTask = null; - - if (_lockUpDoorOfAltarTask != null) - { - _lockUpDoorOfAltarTask.cancel(false); - } - _lockUpDoorOfAltarTask = null; - - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - - if (_openDoorOfAltarTask != null) - { - _openDoorOfAltarTask.cancel(false); - } - _openDoorOfAltarTask = null; - - if (_timeUpTask != null) - { - _timeUpTask.cancel(false); - } - _timeUpTask = null; - - // Delete monsters - if (_vanHalter.isDead()) - { - _vanHalter.getSpawn().stopRespawn(); - } - else - { - deleteVanHalter(); - } - deleteRoyalGuardHepler(); - deleteRoyalGuardCaptain(); - deleteRoyalGuard(); - deleteRitualOffering(); - deleteRitualSacrifice(); - deleteGuardOfAltar(); - - // Set interval end. - if (_intervalTask != null) - { - _intervalTask.cancel(false); - } - - final Integer status = GrandBossManager.getInstance().getBossStatus(29062); - if (status != INTERVAL) - { - final long interval = Rnd.get(Config.HPH_FIXINTERVALOFHALTER, Config.HPH_FIXINTERVALOFHALTER + Config.HPH_RANDOMINTERVALOFHALTER)/* * 3600000 */; - final StatSet info = GrandBossManager.getInstance().getStatSet(29062); - info.set("respawn_time", (System.currentTimeMillis() + interval)); - GrandBossManager.getInstance().setStatSet(29062, info); - GrandBossManager.getInstance().setBossStatus(29062, INTERVAL); - } - - final StatSet info = GrandBossManager.getInstance().getStatSet(29062); - final long temp = info.getLong("respawn_time") - System.currentTimeMillis(); - _intervalTask = ThreadPool.schedule(new Interval(), temp); - } - - // Interval. - protected class Interval implements Runnable - { - @Override - public void run() - { - setupAltar(); - } - } - - // Interval end. - public void setupAltar() - { - // Cancel all task - if (_callRoyalGuardHelperTask != null) - { - _callRoyalGuardHelperTask.cancel(false); - } - _callRoyalGuardHelperTask = null; - - if (_closeDoorOfAltarTask != null) - { - _closeDoorOfAltarTask.cancel(false); - } - _closeDoorOfAltarTask = null; - - if (_halterEscapeTask != null) - { - _halterEscapeTask.cancel(false); - } - _halterEscapeTask = null; - - if (_intervalTask != null) - { - _intervalTask.cancel(false); - } - _intervalTask = null; - - if (_lockUpDoorOfAltarTask != null) - { - _lockUpDoorOfAltarTask.cancel(false); - } - _lockUpDoorOfAltarTask = null; - - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - - if (_openDoorOfAltarTask != null) - { - _openDoorOfAltarTask.cancel(false); - } - _openDoorOfAltarTask = null; - - if (_timeUpTask != null) - { - _timeUpTask.cancel(false); - } - _timeUpTask = null; - - // Delete all monsters - deleteVanHalter(); - deleteTriolRevelation(); - deleteRoyalGuardHepler(); - deleteRoyalGuardCaptain(); - deleteRoyalGuard(); - deleteRitualSacrifice(); - deleteRitualOffering(); - deleteGuardOfAltar(); - deleteCameraMarker(); - - // Clear flag. - _isLocked = false; - _isCaptainSpawned = false; - _isHelperCalled = false; - _isHalterSpawned = false; - - // Set door state - closeDoorOfSacrifice(); - openDoorOfAltar(true); - - // Respawn monsters. - spawnTriolRevelation(); - spawnRoyalGuard(); - spawnRitualOffering(); - spawnVanHalter(); - - GrandBossManager.getInstance().setBossStatus(29062, NOTSPAWN); - - // Set time up. - if (_timeUpTask != null) - { - _timeUpTask.cancel(false); - } - _timeUpTask = ThreadPool.schedule(new TimeUp(), Config.HPH_ACTIVITYTIMEOFHALTER); - } - - // Time up. - protected class TimeUp implements Runnable - { - @Override - public void run() - { - enterInterval(); - } - } - - // Appearance movie. - private class Movie implements Runnable - { - private static final int DISTANCE = 6502500; - - private final int _taskId; - - public Movie(int taskId) - { - _taskId = taskId; - } - - @Override - public void run() - { - _vanHalter.setHeading(16384); - _vanHalter.setTarget(_ritualOffering); - - switch (_taskId) - { - case 1: - { - GrandBossManager.getInstance().setBossStatus(29062, ALIVE); - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_vanHalter) <= DISTANCE) - { - _vanHalter.broadcastPacket(new SpecialCamera(_vanHalter.getObjectId(), 50, 90, 0, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(2), 16); - break; - } - case 2: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(5)) <= DISTANCE) - { - _cameraMarker.get(5).broadcastPacket(new SpecialCamera(_cameraMarker.get(5).getObjectId(), 1842, 100, -3, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(3), 1); - break; - } - case 3: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(5)) <= DISTANCE) - { - _cameraMarker.get(5).broadcastPacket(new SpecialCamera(_cameraMarker.get(5).getObjectId(), 1861, 97, -10, 1500, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(4), 1500); - break; - } - case 4: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(4)) <= DISTANCE) - { - _cameraMarker.get(4).broadcastPacket(new SpecialCamera(_cameraMarker.get(4).getObjectId(), 1876, 97, 12, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(5), 1); - break; - } - case 5: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(4)) <= DISTANCE) - { - _cameraMarker.get(4).broadcastPacket(new SpecialCamera(_cameraMarker.get(4).getObjectId(), 1839, 94, 0, 1500, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(6), 1500); - break; - } - case 6: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(3)) <= DISTANCE) - { - _cameraMarker.get(3).broadcastPacket(new SpecialCamera(_cameraMarker.get(3).getObjectId(), 1872, 94, 15, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(7), 1); - break; - } - case 7: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(3)) <= DISTANCE) - { - _cameraMarker.get(3).broadcastPacket(new SpecialCamera(_cameraMarker.get(3).getObjectId(), 1839, 92, 0, 1500, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(8), 1500); - break; - } - case 8: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(2)) <= DISTANCE) - { - _cameraMarker.get(2).broadcastPacket(new SpecialCamera(_cameraMarker.get(2).getObjectId(), 1872, 92, 15, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(9), 1); - break; - } - case 9: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(2)) <= DISTANCE) - { - _cameraMarker.get(2).broadcastPacket(new SpecialCamera(_cameraMarker.get(2).getObjectId(), 1839, 90, 5, 1500, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(10), 1500); - break; - } - case 10: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(1)) <= DISTANCE) - { - _cameraMarker.get(1).broadcastPacket(new SpecialCamera(_cameraMarker.get(1).getObjectId(), 1872, 90, 5, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(11), 1); - break; - } - case 11: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_cameraMarker.get(1)) <= DISTANCE) - { - _cameraMarker.get(1).broadcastPacket(new SpecialCamera(_cameraMarker.get(1).getObjectId(), 2002, 90, 2, 1500, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(12), 2000); - break; - } - case 12: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_vanHalter) <= DISTANCE) - { - _vanHalter.broadcastPacket(new SpecialCamera(_vanHalter.getObjectId(), 50, 90, 10, 0, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(13), 1000); - break; - } - case 13: - { - // High Priestess van Halter uses the skill to kill Ritual Offering. - final Skill skill = SkillTable.getInstance().getInfo(1168, 7); - _ritualOffering.setInvul(false); - _vanHalter.setTarget(_ritualOffering); - // _vanHalter.setImmobilized(false); - _vanHalter.doCast(skill); - // _vanHalter.setImmobilized(true); - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(14), 4700); - break; - } - case 14: - { - _ritualOffering.setInvul(false); - _ritualOffering.reduceCurrentHp(_ritualOffering.getMaxHp() + 1, _vanHalter); - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(15), 4300); - break; - } - case 15: - { - spawnRitualSacrifice(); - deleteRitualOffering(); - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_vanHalter) <= DISTANCE) - { - _vanHalter.broadcastPacket(new SpecialCamera(_vanHalter.getObjectId(), 100, 90, 15, 1500, 15000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(16), 2000); - break; - } - case 16: - { - // Set camera. - for (PlayerInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) - { - if (pc.getPlanDistanceSq(_vanHalter) <= DISTANCE) - { - _vanHalter.broadcastPacket(new SpecialCamera(_vanHalter.getObjectId(), 5200, 90, -10, 9500, 6000)); - } - } - // Set next task. - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(17), 6000); - break; - } - case 17: - { - deleteRitualSacrifice(); - deleteCameraMarker(); - // _vanHalter.setImmobilized(false); - _vanHalter.setInvul(false); - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - _movieTask = ThreadPool.schedule(new Movie(18), 1000); - break; - } - case 18: - { - combatBeginning(); - if (_movieTask != null) - { - _movieTask.cancel(false); - } - _movieTask = null; - } - } - } - } - - public static void main(String[] args) - { - new VanHalter(); - } -}