Freya World
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Freya World

Open Source Java Project
 
HomeHome  Latest imagesLatest images  SearchSearch  RegisterRegister  Log inLog in  

 

 VanHalter Created and needs to fix someone help me!

Go down 
2 posters
AuthorMessage
janiko




Posts : 33
Join date : 2011-05-29

VanHalter Created and needs to fix someone help me! Empty
PostSubject: VanHalter Created and needs to fix someone help me!   VanHalter Created and needs to fix someone help me! Icon_minitimeTue 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");
    }
}

Back to top Go down
janiko




Posts : 33
Join date : 2011-05-29

VanHalter Created and needs to fix someone help me! Empty
PostSubject: RE   VanHalter Created and needs to fix someone help me! Icon_minitimeTue 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
Back to top Go down
Willow
Admin
Willow


Posts : 113
Join date : 2011-05-24

VanHalter Created and needs to fix someone help me! Empty
PostSubject: Re: VanHalter Created and needs to fix someone help me!   VanHalter Created and needs to fix someone help me! Icon_minitimeSat Jun 25, 2011 11:49 pm

Are there any html for 32068 and 32038?

diff patch
http://www.megaupload.com/?d=VYLYL2N3
Back to top Go down
Sponsored content





VanHalter Created and needs to fix someone help me! Empty
PostSubject: Re: VanHalter Created and needs to fix someone help me!   VanHalter Created and needs to fix someone help me! Icon_minitime

Back to top Go down
 
VanHalter Created and needs to fix someone help me!
Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Freya World :: Development :: User Contributions-
Jump to: