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();
- }
-}