| | VanHalter Created and needs to fix someone help me! | |
| | Author | Message |
---|
janiko
Posts : 33 Join date : 2011-05-29
| Subject: VanHalter Created and needs to fix someone help me! Tue Jun 14, 2011 10:15 am | |
| HI everybody this is my vanhalter script must be modified it has error but is working, please try every body wahts wrong with him. VanHalter.java - Code:
-
package ai.individual; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.concurrent.ScheduledFuture; import javolution.util.FastList; import javolution.util.FastMap; import freya.world.L2DatabaseFactory; import freya.world.gameserver.ThreadPoolManager; import freya.world.gameserver.ai.CtrlIntention; import freya.world.gameserver.instancemanager.GrandBossManager; import freya.world.gameserver.datatables.DoorTable; import freya.world.gameserver.datatables.NpcTable; import freya.world.gameserver.datatables.SkillTable; import freya.world.gameserver.datatables.SpawnTable; import freya.world.gameserver.model.L2CharPosition; import freya.world.gameserver.model.actor.L2Character; import freya.world.gameserver.model.L2Skill; import freya.world.gameserver.model.L2Spawn; import freya.world.gameserver.model.actor.instance.L2DoorInstance; import freya.world.gameserver.model.actor.L2Npc; import freya.world.gameserver.model.actor.instance.L2PcInstance; import freya.world.gameserver.model.actor.instance.L2RaidBossInstance; import freya.world.gameserver.model.zone.type.L2BossZone; import freya.world.gameserver.network.serverpackets.CameraMode; import freya.world.gameserver.network.serverpackets.CreatureSay; import freya.world.gameserver.network.serverpackets.MagicSkillUse; import freya.world.gameserver.network.serverpackets.SpecialCamera; import freya.world.gameserver.templates.chars.L2NpcTemplate; import freya.world.gameserver.templates.skills.L2EffectType; import freya.world.gameserver.templates.StatsSet; import freya.world.util.Rnd; import ai.group_template.L2AttackableAIScript; public class VanHalter extends L2AttackableAIScript { // list of intruders. protected Map<Integer, List<L2PcInstance>> _bleedingPlayers = new FastMap<Integer, List<L2PcInstance>>(); // spawn data of monsters. protected Map<Integer, L2Spawn> _monsterSpawn = new FastMap<Integer, L2Spawn>(); protected List<L2Spawn> _royalGuardSpawn = new FastList<L2Spawn>(); protected List<L2Spawn> _royalGuardCaptainSpawn = new FastList<L2Spawn>(); protected List<L2Spawn> _royalGuardHelperSpawn = new FastList<L2Spawn>(); protected List<L2Spawn> _triolRevelationSpawn = new FastList<L2Spawn>(); protected List<L2Spawn> _triolRevelationAlive = new FastList<L2Spawn>(); protected List<L2Spawn> _guardOfAltarSpawn = new FastList<L2Spawn>(); //L2Emu_Edit protected List<L2Spawn> _cameraMarkerSpawn = new FastList<L2Spawn>(); //L2Emu_Edit protected L2Spawn _ritualOfferingSpawn = null; protected L2Spawn _ritualSacrificeSpawn = null; protected L2Spawn _vanHalterSpawn = null; // instance of monsters. protected List<L2Npc> _monsters = new FastList<L2Npc>(); protected List<L2Npc> _royalGuard = new FastList<L2Npc>(); protected List<L2Npc> _royalGuardCaptain = new FastList<L2Npc>(); protected List<L2Npc> _royalGuardHepler = new FastList<L2Npc>(); protected List<L2Npc> _triolRevelation = new FastList<L2Npc>(); protected List<L2Npc> _guardOfAltar = new FastList<L2Npc>(); //L2Emu_Edit protected List<L2Npc> _cameraMarker = new FastList<L2Npc>(); //L2Emu_Edit protected List<L2DoorInstance> _doorOfAltar = new FastList<L2DoorInstance>(); protected List<L2DoorInstance> _doorOfSacrifice = new FastList<L2DoorInstance>(); protected L2Npc _ritualOffering = null; protected L2Npc _ritualSacrifice = null; protected L2RaidBossInstance _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; private static final byte NOTSPAWN = 0; private static final byte INTERVAL = 1; private static final byte ALIVE = 2;
// initialize public VanHalter(int id,String name,String descr) { super(id,name,descr); int[] mobs = {29062, 22188, 32058, 32059, 32060, 32061, 32062, 32063, 32064, 32065, 32066}; this.registerMobs(mobs); int _state = GrandBossManager.getInstance().getBossStatus(29062); // clear flag. _isLocked = false; _isCaptainSpawned = false; _isHelperCalled = false; _isHalterSpawned = false; // setting door state. _doorOfAltar.add(DoorTable.getInstance().getDoor(19160014)); _doorOfAltar.add(DoorTable.getInstance().getDoor(19160015)); openDoorOfAltar(true); _doorOfSacrifice.add(DoorTable.getInstance().getDoor(19160016)); _doorOfSacrifice.add(DoorTable.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 { L2NpcTemplate template1 = NpcTable.getInstance().getTemplate(13014); // Dummy npc L2Spawn tempSpawn; // Dummy camera marker. tempSpawn = new L2Spawn(template1); tempSpawn.setLocx(-16397); tempSpawn.setLocy(-55200); tempSpawn.setLocz(-10449); tempSpawn.setHeading(16384); tempSpawn.setAmount(1); tempSpawn.setRespawnDelay(60000); SpawnTable.getInstance().addNewSpawn(tempSpawn, false); //L2Emu_Edit _cameraMarkerSpawn.add(tempSpawn); //L2Emu_Edit template1 = NpcTable.getInstance().getTemplate(13014); tempSpawn = new L2Spawn(template1); tempSpawn.setLocx(-16397); tempSpawn.setLocy(-55200); tempSpawn.setLocz(-10051); tempSpawn.setHeading(16384); tempSpawn.setAmount(1); tempSpawn.setRespawnDelay(60000); SpawnTable.getInstance().addNewSpawn(tempSpawn, false); //L2Emu_Edit _cameraMarkerSpawn.add(tempSpawn); //L2Emu_Edit template1 = NpcTable.getInstance().getTemplate(13014); tempSpawn = new L2Spawn(template1); tempSpawn.setLocx(-16397); tempSpawn.setLocy(-55200); tempSpawn.setLocz(-9741); tempSpawn.setHeading(16384); tempSpawn.setAmount(1); tempSpawn.setRespawnDelay(60000); SpawnTable.getInstance().addNewSpawn(tempSpawn, false); //L2Emu_Edit _cameraMarkerSpawn.add(tempSpawn); //L2Emu_Edit template1 = NpcTable.getInstance().getTemplate(13014); tempSpawn = new L2Spawn(template1); tempSpawn.setLocx(-16397); tempSpawn.setLocy(-55200); tempSpawn.setLocz(-9394); tempSpawn.setHeading(16384); tempSpawn.setAmount(1); tempSpawn.setRespawnDelay(60000); SpawnTable.getInstance().addNewSpawn(tempSpawn, false); //L2Emu_Edit _cameraMarkerSpawn.add(tempSpawn); //L2Emu_Edit template1 = NpcTable.getInstance().getTemplate(13014); tempSpawn = new L2Spawn(template1); tempSpawn.setLocx(-16397); tempSpawn.setLocy(-55197); tempSpawn.setLocz(-8739); tempSpawn.setHeading(16384); tempSpawn.setAmount(1); tempSpawn.setRespawnDelay(60000); SpawnTable.getInstance().addNewSpawn(tempSpawn, false); //L2Emu_Edit _cameraMarkerSpawn.add(tempSpawn); //L2Emu_Edit } catch (Exception e) { _log.warning("VanHalterManager: " + e.getMessage()); e.printStackTrace(); } // set time up. if (_timeUpTask != null) _timeUpTask.cancel(false); _timeUpTask = ThreadPoolManager.getInstance().scheduleGeneral(new TimeUp(), 1000); // set bleeding to players. if (_setBleedTask != null) _setBleedTask.cancel(false); _setBleedTask = ThreadPoolManager.getInstance().scheduleGeneral(new Bleeding(), 2000); // check state of High Priestess van Halter. _log.info("VanHalterManager: State of High Priestess van Halter is " + _state + "."); if (_state == INTERVAL) enterInterval(); else GrandBossManager.getInstance().setBossStatus(29062,NOTSPAWN); //Date dt = new Date(_state.getRespawnDate()); //_log.info("VanHalterManager: Next spawn date " + dt + "."); } // load Royal Guard. protected void loadRoyalGuard() { _royalGuardSpawn.clear(); Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _royalGuardSpawn.add(spawnDat); } else { _log.warning("VanHalterManager.loadRoyalGuard: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded " + _royalGuardSpawn.size() + " Royal Guard spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnRoyalGuard() { if (!_royalGuard.isEmpty()) deleteRoyalGuard(); for (L2Spawn rgs : _royalGuardSpawn) { rgs.startRespawn(); _royalGuard.add(rgs.doSpawn()); } _log.info("VanHalterManager: spawn Royal Guard."); } protected void deleteRoyalGuard() { for (L2Npc rg : _royalGuard) { rg.getSpawn().stopRespawn(); rg.deleteMe(); } _royalGuard.clear(); } // load Triol's Revelation. protected void loadTriolRevelation() { _triolRevelationSpawn.clear(); Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _triolRevelationSpawn.add(spawnDat); } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded " + _triolRevelationSpawn.size() + " Triol's Revelation spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnTriolRevelation() { if (!_triolRevelation.isEmpty()) deleteTriolRevelation(); for (L2Spawn trs : _triolRevelationSpawn) { trs.startRespawn(); _triolRevelation.add(trs.doSpawn()); if (trs.getNpcid() != 32067 && trs.getNpcid() != 32068) _triolRevelationAlive.add(trs); } _log.info("VanHalterManager: spawn Triol Revelation."); } protected void deleteTriolRevelation() { for (L2Npc tr : _triolRevelation) { tr.getSpawn().stopRespawn(); tr.deleteMe(); } _triolRevelation.clear(); _bleedingPlayers.clear(); } // load Royal Guard Captain. protected void loadRoyalGuardCaptain() { _royalGuardCaptainSpawn.clear(); Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _royalGuardCaptainSpawn.add(spawnDat); } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded " + _royalGuardCaptainSpawn.size() + " Royal Guard Captain spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnRoyalGuardCaptain() { if (!_royalGuardCaptain.isEmpty()) deleteRoyalGuardCaptain(); for (L2Spawn trs : _royalGuardCaptainSpawn) { trs.startRespawn(); _royalGuardCaptain.add(trs.doSpawn()); } _isCaptainSpawned = true; } protected void deleteRoyalGuardCaptain() { for (L2Npc tr : _royalGuardCaptain) { tr.getSpawn().stopRespawn(); tr.deleteMe(); } _royalGuardCaptain.clear(); } // load Royal Guard Helper. protected void loadRoyalGuardHelper() { _royalGuardHelperSpawn.clear(); Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _royalGuardHelperSpawn.add(spawnDat); } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded " + _royalGuardHelperSpawn.size() + " Royal Guard Helper spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnRoyalGuardHepler() { for (L2Spawn trs : _royalGuardHelperSpawn) { trs.startRespawn(); _royalGuardHepler.add(trs.doSpawn()); } } protected void deleteRoyalGuardHepler() { for (L2Npc tr : _royalGuardHepler) { tr.getSpawn().stopRespawn(); tr.deleteMe(); } _royalGuardHepler.clear(); } // load Guard Of Altar protected void loadGuardOfAltar() { _guardOfAltarSpawn.clear(); Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _guardOfAltarSpawn.add(spawnDat); } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded " + _guardOfAltarSpawn.size() + " Guard Of Altar spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { con.close(); } catch (Exception e) { } } } protected void spawnGuardOfAltar() { if (!_guardOfAltar.isEmpty()) deleteGuardOfAltar(); for (L2Spawn trs : _guardOfAltarSpawn) { trs.startRespawn(); _guardOfAltar.add(trs.doSpawn()); } } protected void deleteGuardOfAltar() { for (L2Npc tr : _guardOfAltar) { tr.getSpawn().stopRespawn(); tr.deleteMe(); } _guardOfAltar.clear(); } // load High Priestess van Halter. protected void loadVanHalter() { _vanHalterSpawn = null; Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _vanHalterSpawn = spawnDat; } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded High Priestess van Halter spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnVanHalter() { if(_vanHalterSpawn == null) { _log.warning("VanHalterManager: Not spawn Van Halter"); return; } _vanHalter = (L2RaidBossInstance) _vanHalterSpawn.doSpawn(); _vanHalter.setIsImmobilized(true); _vanHalter.setIsInvul(true); _isHalterSpawned = true; _log.info("VanHalterManager: spawn Van Halter."); } protected void deleteVanHalter() { _vanHalter.setIsImmobilized(false); _vanHalter.setIsInvul(false); _vanHalter.getSpawn().stopRespawn(); _vanHalter.deleteMe(); } // load Ritual Offering. protected void loadRitualOffering() { _ritualOfferingSpawn = null; Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _ritualOfferingSpawn = spawnDat; } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded Ritual Offering spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager.loadRitualOffering: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnRitualOffering() { _ritualOffering = _ritualOfferingSpawn.doSpawn(); _ritualOffering.setIsImmobilized(true); _ritualOffering.setIsInvul(true); _ritualOffering.setIsParalyzed(true); } protected void deleteRitualOffering() { _ritualOffering.setIsImmobilized(false); _ritualOffering.setIsInvul(false); _ritualOffering.setIsParalyzed(false); _ritualOffering.getSpawn().stopRespawn(); _ritualOffering.deleteMe(); } // Load Ritual Sacrifice. protected void loadRitualSacrifice() { _ritualSacrificeSpawn = null; Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); 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); ResultSet rset = statement.executeQuery(); L2Spawn spawnDat; L2NpcTemplate template1; while (rset.next()) { template1 = NpcTable.getInstance().getTemplate(rset.getInt("npc_templateid")); if (template1 != null) { spawnDat = new L2Spawn(template1); spawnDat.setAmount(rset.getInt("count")); spawnDat.setLocx(rset.getInt("locx")); spawnDat.setLocy(rset.getInt("locy")); spawnDat.setLocz(rset.getInt("locz")); spawnDat.setHeading(rset.getInt("heading")); spawnDat.setRespawnDelay(rset.getInt("respawn_delay")); SpawnTable.getInstance().addNewSpawn(spawnDat, false); _ritualSacrificeSpawn = spawnDat; } else { _log.warning("VanHalterManager: Data missing in NPC table for ID: " + rset.getInt("npc_templateid") + "."); } } rset.close(); statement.close(); _log.info("VanHalterManager: Loaded Ritual Sacrifice spawn locations."); } catch (Exception e) { // problem with initializing spawn, go to next one _log.warning("VanHalterManager: Spawn could not be initialized: " + e); } finally { try { if (con != null) con.close(); } catch (SQLException e) { e.printStackTrace(); } } } protected void spawnRitualSacrifice() { _ritualSacrifice = _ritualSacrificeSpawn.doSpawn(); _ritualSacrifice.setIsImmobilized(true); _ritualSacrifice.setIsInvul(true); _isSacrificeSpawned = true; } protected void deleteRitualSacrifice() { if (!_isSacrificeSpawned) return; _ritualSacrifice.getSpawn().stopRespawn(); _ritualSacrifice.deleteMe(); _isSacrificeSpawned = false; } protected void spawnCameraMarker() { //L2Emu_Edit if (!_cameraMarker.isEmpty()) deleteCameraMarker(); for (int i = 0; i <= _cameraMarkerSpawn.size(); i++) { _cameraMarker.add(_cameraMarkerSpawn.get(i).doSpawn()); //L2Emu_Edit _cameraMarker.get(i).getSpawn().stopRespawn(); _cameraMarker.get(i).setIsImmobilized(true); } } protected void deleteCameraMarker() { if (_cameraMarker.isEmpty()) return; //L2Emu_Edit for (int i = 0; i <= _cameraMarker.size(); i++) //L2Emu_Edit { _cameraMarker.get(i).deleteMe(); } _cameraMarker.clear(); } // door control. /** * @param intruder */ public void intruderDetection(L2PcInstance intruder) { if (_lockUpDoorOfAltarTask == null && !_isLocked && _isCaptainSpawned) { _lockUpDoorOfAltarTask = ThreadPoolManager.getInstance().scheduleGeneral(new LockUpDoorOfAltar(), 180000); } } private class LockUpDoorOfAltar implements Runnable { public void run() { closeDoorOfAltar(false); _isLocked = true; _lockUpDoorOfAltarTask = null; } } protected void openDoorOfAltar(boolean loop) { for (L2DoorInstance door : _doorOfAltar) { try { door.openMe(); } catch (Exception e) { _log.severe(e.getMessage()); } } if (loop) { _isLocked = false; if (_closeDoorOfAltarTask != null) _closeDoorOfAltarTask.cancel(false); _closeDoorOfAltarTask = null; _closeDoorOfAltarTask = ThreadPoolManager.getInstance().scheduleGeneral(new CloseDoorOfAltar(), 180000); } else { if (_closeDoorOfAltarTask != null) _closeDoorOfAltarTask.cancel(false); _closeDoorOfAltarTask = null; } } private class OpenDoorOfAltar implements Runnable { public void run() { openDoorOfAltar(true); } } protected void closeDoorOfAltar(boolean loop) { for (L2DoorInstance door : _doorOfAltar) { door.closeMe(); } if (loop) { if (_openDoorOfAltarTask != null) _openDoorOfAltarTask.cancel(false); _openDoorOfAltarTask = null; _openDoorOfAltarTask = ThreadPoolManager.getInstance().scheduleGeneral(new OpenDoorOfAltar(), 180000); } else { if (_openDoorOfAltarTask != null) _openDoorOfAltarTask.cancel(false); _openDoorOfAltarTask = null; } } private class CloseDoorOfAltar implements Runnable { public void run() { closeDoorOfAltar(true); } } protected void openDoorOfSacrifice() { for (L2DoorInstance door : _doorOfSacrifice) { try { door.openMe(); } catch (Exception e) { _log.severe(e.getMessage()); } } } protected void closeDoorOfSacrifice() { for (L2DoorInstance door : _doorOfSacrifice) { try { door.closeMe(); } catch (Exception e) { _log.severe(e.getMessage()); } } } // event public void checkTriolRevelationDestroy() { if (_isCaptainSpawned) return; boolean isTriolRevelationDestroyed = true; for (L2Spawn tra : _triolRevelationAlive) { if (!tra.getLastSpawn().isDead()) isTriolRevelationDestroyed = false; } if (isTriolRevelationDestroyed) { spawnRoyalGuardCaptain(); } } public void checkRoyalGuardCaptainDestroy() { if (!_isHalterSpawned) return; deleteRoyalGuard(); deleteRoyalGuardCaptain(); spawnGuardOfAltar(); openDoorOfSacrifice(); CreatureSay cs = new CreatureSay(0, 1, "Altar's Gatekeeper", "The door of the 3rd floor in the altar was opened."); for (L2PcInstance pc : getPlayersInside()) { pc.sendPacket(cs); } _vanHalter.setIsImmobilized(true); _vanHalter.setIsInvul(true); spawnCameraMarker(); if (_timeUpTask != null) _timeUpTask.cancel(false); _timeUpTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(1), 20000); } // start fight against High Priestess van Halter. protected void combatBeginning() { if (_timeUpTask != null) _timeUpTask.cancel(false); _timeUpTask = ThreadPoolManager.getInstance().scheduleGeneral(new TimeUp(), 7200000); Map<Integer, L2PcInstance> _targets = new FastMap<Integer, L2PcInstance>(); int i = 0; for (L2PcInstance pc : _vanHalter.getKnownList().getKnownPlayers().values()) { i++; _targets.put(i, pc); } _vanHalter.reduceCurrentHp(1, _targets.get(Rnd.get(1, i)), null); } // call Royal Guard Helper and escape from player. public void callRoyalGuardHelper() { if (!_isHelperCalled) { _isHelperCalled = true; _halterEscapeTask = ThreadPoolManager.getInstance().scheduleGeneral(new HalterEscape(), 500); _callRoyalGuardHelperTask = ThreadPoolManager.getInstance().scheduleGeneral(new CallRoyalGuardHelper(), 1000); } } private class CallRoyalGuardHelper implements Runnable { public void run() { spawnRoyalGuardHepler(); if (_royalGuardHepler.size() <= 6 && !_vanHalter.isDead()) { if (_callRoyalGuardHelperTask != null) _callRoyalGuardHelperTask.cancel(false); _callRoyalGuardHelperTask = ThreadPoolManager.getInstance() .scheduleGeneral(new CallRoyalGuardHelper(), 10000); } else { if (_callRoyalGuardHelperTask != null) _callRoyalGuardHelperTask.cancel(false); _callRoyalGuardHelperTask = null; } } } private class HalterEscape implements Runnable { public void run() { if (_royalGuardHepler.size() <= 6 && !_vanHalter.isDead()) { if (_vanHalter.isAfraid()) { _vanHalter.stopFear(true); } else { _vanHalter.startFear(); if (_vanHalter.getZ() >= -10476) { L2CharPosition pos = new L2CharPosition(-16397, -53308, -10448, 0); if (_vanHalter.getX() == pos.x && _vanHalter.getY() == pos.y) { _vanHalter.stopFear(true); } else { _vanHalter.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, pos); } } else if (_vanHalter.getX() >= -16397) { L2CharPosition pos = new L2CharPosition(-15548, -54830, -10475, 0); _vanHalter.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, pos); } else { L2CharPosition pos = new L2CharPosition(-17248, -54830, -10475, 0); _vanHalter.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, pos); } } if (_halterEscapeTask != null) _halterEscapeTask.cancel(false); _halterEscapeTask = ThreadPoolManager.getInstance().scheduleGeneral(new HalterEscape(), 5000); } else { _vanHalter.stopFear(true); if (_halterEscapeTask != null) _halterEscapeTask.cancel(false); _halterEscapeTask = null; } } } // check bleeding player. protected void addBleeding() { L2Skill bleed = SkillTable.getInstance().getInfo(4615, 12); for (L2Npc tr : _triolRevelation) { if (tr.getKnownList().getKnownPlayersInRadius(tr.getAggroRange()).size() == 0 || tr.isDead()) continue; List<L2PcInstance> bpc = new FastList<L2PcInstance>(); for (L2PcInstance pc : tr.getKnownList().getKnownPlayersInRadius(tr.getAggroRange())) { if (pc.getFirstEffect(bleed) == null) { bleed.getEffects(tr, pc); 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 (L2PcInstance pc : (FastList<L2PcInstance>) _bleedingPlayers.get(npcId)) { if (pc.getFirstEffect(L2EffectType.DMG_OVER_TIME) != null) pc.stopEffects(L2EffectType.DMG_OVER_TIME); } _bleedingPlayers.remove(npcId); } private class Bleeding implements Runnable { public void run() { addBleeding(); if (_setBleedTask != null) _setBleedTask.cancel(false); _setBleedTask = ThreadPoolManager.getInstance().scheduleGeneral(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); if (GrandBossManager.getInstance().getBossStatus(29062) != INTERVAL) { int respawnTime =(Rnd.get(172800000, 172800000 + 8640000)); GrandBossManager.getInstance().setBossStatus(29062,INTERVAL); StatsSet info = GrandBossManager.getInstance().getStatsSet(29062); info.set("respawn_time",(System.currentTimeMillis() + respawnTime)); GrandBossManager.getInstance().setStatsSet(29062,info); } StatsSet info = GrandBossManager.getInstance().getStatsSet(29062); long temp = (info.getLong("respawn_time") - System.currentTimeMillis()); _intervalTask = ThreadPoolManager.getInstance().scheduleGeneral(new Interval(), temp); } // interval. private class Interval implements Runnable { 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 = ThreadPoolManager.getInstance().scheduleGeneral(new TimeUp(), 21600000); } // time up. private class TimeUp implements Runnable { public void run() { enterInterval(); } } // appearance movie. private class Movie implements Runnable { private int _distance = 6502500; private int _taskId; private List<L2PcInstance> _players = getPlayersInside(); public Movie(int taskId) { _taskId = taskId; } public void run() { _vanHalter.setHeading(16384); _vanHalter.setTarget(_ritualOffering); switch (_taskId) { case 1: GrandBossManager.getInstance().setBossStatus(29062,ALIVE); // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_vanHalter) <= _distance) { enterMovieMode(pc); specialCamera(pc, _vanHalter, 50, 90, 0, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(2), 16); break; case 2: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(5)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(5), 1842, 100, -3, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(3), 1); break; case 3: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(5)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(5), 1861, 97, -10, 1500, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(4), 1500); break; case 4: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(4)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(4), 1876, 97, 12, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(5), 1); break; case 5: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(4)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(4), 1839, 94, 0, 1500, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(6), 1500); break; case 6: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(3)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(3), 1872, 94, 15, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(7), 1); break; case 7: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(3)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(3), 1839, 92, 0, 1500, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(8), 1500); break; case 8: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(2)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(2), 1872, 92, 15, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(9), 1); break; case 9: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(2)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(2), 1839, 90, 5, 1500, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(10), 1500); break; case 10: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(1)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(1), 1872, 90, 5, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(11), 1); break; case 11: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_cameraMarker.get(1)) <= _distance) { enterMovieMode(pc); specialCamera(pc, _cameraMarker.get(1), 2002, 90, 2, 1500, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(12), 2000); break; case 12: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_vanHalter) <= _distance) { enterMovieMode(pc); specialCamera(pc, _vanHalter, 50, 90, 10, 0, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(13), 1000); break; case 13: // High Priestess van Halter uses the skill to kill Ritual Offering. L2Skill skill = SkillTable.getInstance().getInfo(1168, 7); _ritualOffering.setIsInvul(false); _vanHalter.setTarget(_ritualOffering); _vanHalter.setIsImmobilized(false); _vanHalter.doCast(skill); _vanHalter.setIsImmobilized(true); // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(14), 4700); break; case 14: _ritualOffering.setIsInvul(false); _ritualOffering.reduceCurrentHp(_ritualOffering.getMaxHp() + 1, _vanHalter, null); // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(15), 4300); break; case 15: spawnRitualSacrifice(); deleteRitualOffering(); // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_vanHalter) <= _distance) { enterMovieMode(pc); specialCamera(pc, _vanHalter, 100, 90, 15, 1500, 15000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(16), 2000); break; case 16: // set camera. for (L2PcInstance pc : _players) { if (pc.getPlanDistanceSq(_vanHalter) <= _distance) { enterMovieMode(pc); specialCamera(pc, _vanHalter, 5200, 90, -10, 9500, 6000); } else { leaveMovieMode(pc); } } // set next task. if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(17), 6000); break; case 17: // reset camera. for (L2PcInstance pc : _players) { leaveMovieMode(pc); } deleteRitualSacrifice(); deleteCameraMarker(); _vanHalter.setIsImmobilized(false); _vanHalter.setIsInvul(false); if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; _movieTask = ThreadPoolManager.getInstance().scheduleGeneral(new Movie(18), 1000); break; case 18: combatBeginning(); if (_movieTask != null) _movieTask.cancel(false); _movieTask = null; } } } // [L2J_JP ADD SANDMAN] public void enterMovieMode(L2PcInstance player) { if (player == null) return; player.setTarget(null); player.stopMove(null); player.setIsInvul(true); player.setIsImmobilized(true); player.sendPacket(new CameraMode(1)); } public void leaveMovieMode(L2PcInstance player) { if (player == null) return; if (!player.isGM()) player.setIsInvul(false); player.setIsImmobilized(false); player.sendPacket(new CameraMode(0)); } /** * yaw:North=90, south=270, east=0, west=180<BR> * pitch > 0:looks up,pitch < 0:looks down<BR> * time:faster that small value is.<BR> */ public void specialCamera(L2PcInstance player, L2Npc target, int dist, int yaw, int pitch, int time, int duration) { player.sendPacket(new SpecialCamera(target.getObjectId(), dist, yaw, pitch, time, duration)); } // L2JJP END protected List<L2PcInstance> getPlayersInside() { List<L2PcInstance> lst = new FastList<L2PcInstance>(); L2BossZone _Zone = GrandBossManager.getInstance().getZone(-16373,-53562,-10300); if (_Zone != null) { for (L2Character cha : _Zone.getCharactersInside().values()) { if (cha instanceof L2PcInstance) lst.add((L2PcInstance) cha); } return lst; } _log.warning("VanHalterManager: Zone for Van Halter is missing."); return null; } public String onAttack (L2Npc npc, L2PcInstance attacker, int damage, boolean isPet) { int npcId = npc.getNpcId(); if (npcId == 29062) { if ((npc.getCurrentHp() / npc.getMaxHp()) * 100 <= 20) callRoyalGuardHelper(); } return super.onAttack(npc, attacker, damage, isPet); } public String onKill (L2Npc npc, L2PcInstance killer, boolean isPet) { int npcId = npc.getNpcId(); if (npcId == 29062) { enterInterval(); } else if (npcId == 22188) { checkRoyalGuardCaptainDestroy(); } else { removeBleeding(npcId); checkTriolRevelationDestroy(); } return super.onKill(npc,killer,isPet); } public static void main(String[] args) { // now call the constructor (starts up the ai) new VanHalter(-1,"vanhalter","ai"); } }
| |
| | | janiko
Posts : 33 Join date : 2011-05-29
| Subject: RE Tue Jun 14, 2011 10:16 am | |
| vanhalter_spawnlist.sql - Code:
-
DROP TABLE IF EXISTS `vanhalter_spawnlist`; CREATE TABLE `vanhalter_spawnlist` ( `id` int(11) NOT NULL AUTO_INCREMENT, `location` varchar(40) NOT NULL DEFAULT '', `count` int(9) NOT NULL DEFAULT '0', `npc_templateid` int(9) NOT NULL DEFAULT '0', `locx` int(9) NOT NULL DEFAULT '0', `locy` int(9) NOT NULL DEFAULT '0', `locz` int(9) NOT NULL DEFAULT '0', `randomx` int(9) NOT NULL DEFAULT '0', `randomy` int(9) NOT NULL DEFAULT '0', `heading` int(9) NOT NULL DEFAULT '0', `respawn_delay` int(9) NOT NULL DEFAULT '0', `loc_id` int(9) NOT NULL DEFAULT '0', `periodOfDay` decimal(2,0) DEFAULT '0', PRIMARY KEY (`id`), KEY `key_npc_templateid` (`npc_templateid`) ); INSERT INTO `vanhalter_spawnlist` VALUES (NULL,'Pagan Temple',1,32051,-14670,-54846,-10629,0,0,16384,60,0,0), (NULL,'Pagan Temple',1,32051,-15548,-54836,-10448,0,0,16384,60,0,0), (NULL,'Pagan Temple',1,32051,-18123,-54846,-10629,0,0,16384,60,0,0), (NULL,'Pagan Temple',1,32051,-17248,-54836,-10448,0,0,16384,60,0,0), (NULL,'Pagan Temple',1,32058,-12674,-52673,-10932,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32059,-12728,-54317,-11108,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32060,-14936,-53112,-11559,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32061,-15658,-53668,-11579,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32062,-16404,-53263,-11559,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32063,-17146,-53238,-11559,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32064,-17887,-53137,-11559,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32065,-20082,-54314,-11106,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32066,-20081,-52674,-10921,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32067,-16413,-56569,-10849,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,32068,-16397,-54119,-10475,0,0,16384,21600,0,0), (NULL,'Pagan Temple',1,22175,-14960,-53437,-10629,0,0,7820,60,0,0), (NULL,'Pagan Temple',1,22175,-14964,-53766,-10603,0,0,20066,60,0,0), (NULL,'Pagan Temple',1,22175,-15225,-52968,-10603,0,0,55924,60,0,0), (NULL,'Pagan Temple',1,22175,-15522,-52625,-10629,0,0,17737,60,0,0), (NULL,'Pagan Temple',1,22175,-15676,-52576,-10603,0,0,23075,60,0,0), (NULL,'Pagan Temple',1,22175,-15879,-52521,-10603,0,0,63322,60,0,0), (NULL,'Pagan Temple',1,22175,-16420,-52481,-10603,0,0,4302,60,0,0), (NULL,'Pagan Temple',1,22175,-16590,-52575,-10603,0,0,11742,60,0,0), (NULL,'Pagan Temple',1,22175,-16835,-52485,-10603,0,0,40331,60,0,0), (NULL,'Pagan Temple',1,22175,-17051,-52639,-10629,0,0,4607,60,0,0), (NULL,'Pagan Temple',1,22175,-17461,-52839,-10603,0,0,13423,60,0,0), (NULL,'Pagan Temple',1,22175,-17604,-53050,-10603,0,0,39469,60,0,0), (NULL,'Pagan Temple',1,22175,-17641,-53350,-10629,0,0,14056,60,0,0), (NULL,'Pagan Temple',1,22175,-17710,-53768,-10603,0,0,47067,60,0,0), (NULL,'Pagan Temple',1,22175,-17753,-53950,-10629,0,0,14260,60,0,0), (NULL,'Pagan Temple',1,22175,-17841,-54312,-10603,0,0,14180,60,0,0), (NULL,'Pagan Temple',1,22176,-16156,-47121,-10821,0,0,16129,60,0,0), (NULL,'Pagan Temple',1,22176,-16157,-46340,-10821,0,0,16468,60,0,0), (NULL,'Pagan Temple',1,22176,-16164,-48534,-10917,0,0,16405,60,0,0), (NULL,'Pagan Temple',1,22176,-16165,-49237,-10917,0,0,16091,60,0,0), (NULL,'Pagan Temple',1,22176,-16166,-47732,-10821,0,0,16430,60,0,0), (NULL,'Pagan Temple',1,22176,-16177,-49925,-10917,0,0,16622,60,0,0), (NULL,'Pagan Temple',1,22176,-16198,-44753,-10725,0,0,16583,60,0,0), (NULL,'Pagan Temple',1,22176,-16497,-48344,-10917,0,0,16215,60,0,0), (NULL,'Pagan Temple',1,22176,-16513,-49019,-10917,0,0,15756,60,0,0), (NULL,'Pagan Temple',1,22176,-16529,-46310,-10821,0,0,17047,60,0,0), (NULL,'Pagan Temple',1,22176,-16530,-47027,-10821,0,0,16487,60,0,0), (NULL,'Pagan Temple',1,22176,-16532,-47633,-10821,0,0,16242,60,0,0), (NULL,'Pagan Temple',1,22176,-16552,-49694,-10917,0,0,15784,60,0,0), (NULL,'Pagan Temple',1,22176,-16594,-45094,-10725,0,0,16166,60,0,0), (NULL,'Pagan Temple',1,22188,-16385,-52461,-10629,0,0,16384,60,0,0), (NULL,'Pagan Temple',1,29062,-16397,-53308,-10448,0,0,16384,172800,0,0), (NULL,'Pagan Temple',1,32038,-16397,-53199,-10448,0,0,16384,172800,0,0), (NULL,'Pagan Temple',1,22195,-16397,-53199,-10448,0,0,16384,172800,0,0), (NULL,'Pagan Temple',1,22191,-16397,-53199,-10448,0,0,16384,60,0,0);
Add this into grandboss_data.sql + (29062, -16397, -55200, -10449, 16384, 0, 400000, 9999, 0); -- Van Halter | |
| | | Willow Admin
Posts : 113 Join date : 2011-05-24
| Subject: Re: VanHalter Created and needs to fix someone help me! Sat Jun 25, 2011 11:49 pm | |
| Are there any html for 32068 and 32038?
diff patch http://www.megaupload.com/?d=VYLYL2N3 | |
| | | Sponsored content
| Subject: Re: VanHalter Created and needs to fix someone help me! | |
| |
| | | | VanHalter Created and needs to fix someone help me! | |
|
| Permissions in this forum: | You cannot reply to topics in this forum
| |
| |
| |