CitarCODE:
Index: java/com/l2jserver/gameserver/GameServer.java
===================================================================
--- java/com/l2jserver/gameserver/GameServer.java (revision 4060)
+++ java/com/l2jserver/gameserver/GameServer.java (working copy)
@@ -91,6 +91,7 @@
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
import com.l2jserver.gameserver.instancemanager.DayNightSpawnManager;
import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
+import com.l2jserver.gameserver.instancemanager.FenceBuilderManager;
import com.l2jserver.gameserver.instancemanager.FortManager;
import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
import com.l2jserver.gameserver.instancemanager.FourSepulchersManager;
@@ -100,6 +101,7 @@
import com.l2jserver.gameserver.instancemanager.ItemsOnGroundManager;
import com.l2jserver.gameserver.instancemanager.MailManager;
import com.l2jserver.gameserver.instancemanager.MercTicketManager;
+import com.l2jserver.gameserver.instancemanager.MovieMakerManager;
import com.l2jserver.gameserver.instancemanager.PetitionManager;
import com.l2jserver.gameserver.instancemanager.QuestManager;
import com.l2jserver.gameserver.instancemanager.RaidBossPointsManager;
@@ -410,6 +412,10 @@
TvTManager.getInstance();
KnownListUpdateTaskManager.getInstance();
+
+ MovieMakerManager.getInstance();
+ FenceBuilderManager.getInstance();
+
if (Config.DEADLOCK_DETECTOR)
{
_deadDetectThread = new DeadLockDetector();
Index: java/com/l2jserver/gameserver/instancemanager/FenceBuilderManager.java
===================================================================
--- java/com/l2jserver/gameserver/instancemanager/FenceBuilderManager.java (revision 0)
+++ java/com/l2jserver/gameserver/instancemanager/FenceBuilderManager.java (revision 0)
@@ -0,0 +1,127 @@
+package com.l2jserver.gameserver.instancemanager;
+
+import java.util.Map;
+
+import javolution.text.TextBuilder;
+import javolution.util.FastMap;
+import com.l2jserver.gameserver.idfactory.IdFactory;
+import com.l2jserver.gameserver.model.actor.instance.L2FenceInstance;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jserver.gameserver.model.L2World;
+import com.l2jserver.gameserver.model.L2WorldRegion;
+
+/**
+ * @author KKnD
+ */
+public class FenceBuilderManager
+{
+ private static FenceBuilderManager _instance;
+ private Map<Integer, L2FenceInstance> _fences = new FastMap<Integer, L2FenceInstance>();
+ private Map<Integer, L2FenceInstance> _fence = new FastMap<Integer, L2FenceInstance>();
+
+
+ public static FenceBuilderManager getInstance()
+ {
+ if ( _instance == null )
+ {
+ _instance = new FenceBuilderManager();
+ }
+
+ return _instance;
+ }
+
+ public void main_fence(L2PcInstance pc)
+ {
+ NpcHtmlMessage html = new NpcHtmlMessage(5);
+ TextBuilder sb = new TextBuilder();
+ sb.append("<html><title>KKnD's Fence Builder</title><body>");
+ sb.append("<table width=270>");
+ sb.append("<tr></tr>");
+ sb.append("<tr><td>New Fence:</td></tr>");
+ sb.append("<tr><td>Type: </td></tr>");
+ sb.append("<tr><td><combobox width=75 var=ts list=0;1;2></td></tr>");
+ sb.append("<tr><td>Width: (min 150)</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tdist\"></td></tr>");
+ sb.append("<tr><td>Lenght: (min 150)</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tyaw\"></td></tr>");
+ sb.append("<tr><td>Hight: </td></tr>");
+ sb.append("<tr><td><td><combobox width=75 var=tscreen list=1;2;3></td></tr>");
+ sb.append("<tr>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<BR>");
+ sb.append("<BR>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"spawn fence\" width=90 action=\"bypass -h admin_fence $ts $tdist $tyaw $tscreen\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"delete last created\" width=90 action=\"bypass -h admin_dellastspawned\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("<td><button value=\"delete all fences\" width=90 action=\"bypass -h admin_delallspawned\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("<tr>");
+ sb.append("</tr>");
+ sb.append("</table></body></html>");
+ html.setHtml(sb.toString());
+ pc.sendPacket(html);
+ }
+
+ public void spawn_fence(L2PcInstance pc, int type, int wid, int hi, int size)
+ {
+ _fence.clear();
+ for (int i = 0; i < size; i++)
+ {
+ int id = IdFactory.getInstance().getNextId();
+ L2FenceInstance inst = new L2FenceInstance(id, type, wid, hi);
+ inst.spawnMe(pc.getX(), pc.getY(), pc.getZ());
+ _fences.put(id, inst);
+ _fence.put(id, inst);
+ }
+ main_fence(pc);
+ }
+
+ public void del_last(L2PcInstance pc)
+ {
+ if (!_fence.isEmpty())
+ {
+ for (L2FenceInstance f : _fence.values())
+ {
+ if ( f != null )
+ {
+ L2WorldRegion region = f.getWorldRegion();
+ f.decayMe();
+ if (region != null)
+ region.removeVisibleObject(f);
+ f.getKnownList().removeAllKnownObjects();
+ L2World.getInstance().removeObject(f);
+ _fences.remove(f);
+ _fence.remove(f);
+ }
+ }
+ }
+ main_fence(pc);
+ }
+
+ public void del_all(L2PcInstance pc)
+ {
+ if (!_fences.isEmpty())
+ {
+ for (L2FenceInstance f : _fences.values())
+ {
+ if ( f != null )
+ {
+ L2WorldRegion region = f.getWorldRegion();
+ f.decayMe();
+ if (region != null)
+ region.removeVisibleObject(f);
+ f.getKnownList().removeAllKnownObjects();
+ L2World.getInstance().removeObject(f);
+ _fences.remove(f);
+ _fence.clear();
+ }
+ }
+ }
+ main_fence(pc);
+ }
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/instancemanager/MovieMakerManager.java
===================================================================
--- java/com/l2jserver/gameserver/instancemanager/MovieMakerManager.java (revision 0)
+++ java/com/l2jserver/gameserver/instancemanager/MovieMakerManager.java (revision 0)
@@ -0,0 +1,364 @@
+package com.l2jserver.gameserver.instancemanager;
+
+import java.util.Collection;
+import java.util.Map;
+
+import javolution.text.TextBuilder;
+import javolution.util.FastMap;
+import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.model.L2Object;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jserver.gameserver.network.serverpackets.SpecialCamera;
+
+/**
+ * @author KKnD
+ */
+public class MovieMakerManager
+{
+ private static MovieMakerManager _instance;
+ protected Map<Integer, Sequence> _sequence = new FastMap<Integer, Sequence>();
+
+
+ public static MovieMakerManager getInstance()
+ {
+ if ( _instance == null )
+ {
+ _instance = new MovieMakerManager();
+ }
+
+ return _instance;
+ }
+ protected class Sequence
+ {
+ protected int sequenceId;
+ protected int _objid;
+ protected int _dist;
+ protected int _yaw;
+ protected int _pitch;
+ protected int _time;
+ protected int _duration;
+ protected int _turn;
+ protected int _rise;
+ protected int _widescreen;
+ }
+
+ public void main_txt(L2PcInstance player)
+ {
+ NpcHtmlMessage html = new NpcHtmlMessage(5);
+ TextBuilder sb = new TextBuilder();
+ sb.append("<html><title>KKnD's Movie Maker</title><body>");
+ sb.append("<table width=270>");
+ sb.append("<tr><td>Sequences:</td></tr>");
+ if (!_sequence.isEmpty())
+ {
+ sb.append("</table>");
+ sb.append("<table width=270>");
+ for (Sequence s : _sequence.values())
+ {
+ sb.append("<tr>");
+ sb.append("<td>Sequence Id: "+s.sequenceId+"</td>");
+ sb.append("</tr>");
+ }
+ sb.append("</table>");
+ sb.append("<BR>");
+ sb.append("<BR>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td>Sequence Id:</td>");
+ sb.append("<td><edit var=\"tsId\" width=120 height=15></td>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"Edit\" width=80 action=\"bypass -h admin_editsequence $tsId\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("<td><button value=\"Delete\" width=80 action=\"bypass -h admin_delsequence $tsId\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("<td><button value=\"play\" width=80 action=\"bypass -h admin_playseqq $tsId\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<BR>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td>Brodcast to others near by</td>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"Brodcast\" width=80 action=\"bypass -h admin_brodcast $tsId\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<BR>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td>Brodcast movie to others near by or play to yourself</td>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"Brodcast\" width=80 action=\"bypass -h admin_brodmovie\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("<td><button value=\"Play\" width=80 action=\"bypass -h admin_playmovie\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ }
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"Add sequence\" width=80 action=\"bypass -h admin_addseq\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("</table></body></html>");
+ html.setHtml(sb.toString());
+ player.sendPacket(html);
+ }
+
+ public void play_sequence(int id, L2PcInstance pc)
+ {
+ if (_sequence.containsKey(id))
+ {
+ Sequence s = new Sequence();
+ s = _sequence.get(id);
+ pc.sendPacket(new SpecialCamera(s._objid, s._dist, s._yaw, s._pitch, s._time, s._duration, s._turn, s._rise, s._widescreen, 0));
+ }
+ else
+ {
+ pc.sendMessage("Wrong sequence Id.");
+ main_txt(pc);
+ }
+ }
+
+ public void brodcast_sequence(int id, L2PcInstance pc)
+ {
+ if (_sequence.containsKey(id))
+ {
+ Sequence s = new Sequence();
+ s = _sequence.get(id);
+ Collection<L2Object> objs = pc.getKnownList().getKnownObjects().values();
+
+ for (L2Object object : objs)
+ {
+ if (object instanceof L2PcInstance)
+ {
+ ((L2PcInstance) object).sendPacket(new SpecialCamera(s._objid, s._dist, s._yaw, s._pitch, s._time, s._duration, s._turn, s._rise, s._widescreen, 0));
+ }
+ }
+ pc.sendPacket(new SpecialCamera(s._objid, s._dist, s._yaw, s._pitch, s._time, s._duration, s._turn, s._rise, s._widescreen, 0));
+ }
+ else
+ {
+ pc.sendMessage("Wrong sequence Id.");
+ main_txt(pc);
+ }
+ }
+
+ public void play_sequence(L2PcInstance pc, int objid, int dist, int yaw, int pitch, int time, int duration, int turn, int rise, int screen)
+ {
+ pc.sendPacket(new SpecialCamera(objid, dist, yaw, pitch, time, duration, turn, rise, screen, 0));
+ }
+
+ public void add_sequence(L2PcInstance pc, int seqId, int objid, int dist, int yaw, int pitch, int time, int duration, int turn, int rise, int screen)
+ {
+ if (!_sequence.containsKey(seqId))
+ {
+ Sequence s = new Sequence();
+ s.sequenceId = seqId;
+ s._objid = objid;
+ s._dist = dist;
+ s._yaw = yaw;
+ s._pitch = pitch;
+ s._time = time;
+ s._duration = duration;
+ s._turn = turn;
+ s._rise = rise;
+ s._widescreen = screen;
+ _sequence.put(seqId, s);
+ main_txt(pc);
+ }
+ else
+ {
+ pc.sendMessage("Sequence already exists.");
+ main_txt(pc);
+ }
+ }
+
+ public void add_seq(L2PcInstance pc)
+ {
+ NpcHtmlMessage html = new NpcHtmlMessage(5);
+ TextBuilder sb = new TextBuilder();
+ sb.append("<html><title>KKnD's Movie Maker</title><body>");
+ sb.append("<table width=270>");
+ sb.append("<tr></tr>");
+ sb.append("<tr><td>New Sequence:</td></tr>");
+ sb.append("<tr><td>Sequence Id: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"tsId\"></td></tr>");
+ sb.append("<tr><td>Distance: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"tdist\"></td></tr>");
+ sb.append("<tr><td>Yaw: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"tyaw\"></td></tr>");
+ sb.append("<tr><td>Pitch: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"tpitch\"></td></tr>");
+ sb.append("<tr><td>Time: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"ttime\"></td></tr>");
+ sb.append("<tr><td>Duration: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"tdur\"></td></tr>");
+ sb.append("<tr><td>Turn: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"tturn\"></td></tr>");
+ sb.append("<tr><td>Rise: </td></tr>");
+ sb.append("<tr><td><td><edit var=\"trise\"></td></tr>");
+ sb.append("<tr><td>WideScreen: </td></tr>");
+ sb.append("<tr><td><td><combobox width=75 var=tscreen list=0;1></td></tr>");
+ sb.append("<tr>");
+ sb.append("</tr>");
+ sb.append("</table>");
+ sb.append("<BR>");
+ sb.append("<BR>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"Add sequence\" width=90 action=\"bypass -h admin_addsequence $tsId $tdist $tyaw $tpitch $ttime $tdur $tturn $trise $tscreen\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("<td><button value=\"Play sequence\" width=90 action=\"bypass -h admin_playsequence $tdist $tyaw $tpitch $ttime $tdur $tturn $trise $tscreen\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("<tr>");
+ sb.append("</tr>");
+ sb.append("</table></body></html>");
+ html.setHtml(sb.toString());
+ pc.sendPacket(html);
+ }
+
+ public void edit_seq(int id, L2PcInstance pc)
+ {
+ if (_sequence.containsKey(id))
+ {
+ Sequence s = new Sequence();
+ s = _sequence.get(id);
+ NpcHtmlMessage html = new NpcHtmlMessage(5);
+ TextBuilder sb = new TextBuilder();
+ sb.append("<html><title>KKnD's Movie Maker</title><body>");
+ sb.append("<table width=270>");
+ sb.append("<tr></tr>");
+ sb.append("<tr><td>Modyfy Sequence:</td></tr>");
+ sb.append("<tr><td>Sequence Id: "+s.sequenceId+"</td></tr>");
+ sb.append("<tr><td>Distance: "+s._dist+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tdist\"></td></tr>");
+ sb.append("<tr><td>Yaw: "+s._yaw+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tyaw\"></td></tr>");
+ sb.append("<tr><td>Pitch: "+s._pitch+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tpitch\"></td></tr>");
+ sb.append("<tr><td>Time: "+s._time+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"ttime\"></td></tr>");
+ sb.append("<tr><td>Duration: "+s._duration+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tdur\"></td></tr>");
+ sb.append("<tr><td>Turn: "+s._turn+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"tturn\"></td></tr>");
+ sb.append("<tr><td>Rise: "+s._rise+"</td></tr>");
+ sb.append("<tr><td><td><edit var=\"trise\"></td></tr>");
+ sb.append("<tr><td>WideScreen: "+s._widescreen+"</td></tr>");
+ sb.append("<tr><td><td><combobox width=75 var=tscreen list=0;1></td></tr>");
+ sb.append("</table>");
+ sb.append("<BR>");
+ sb.append("<BR>");
+ sb.append("<table width=270>");
+ sb.append("<tr>");
+ sb.append("<td><button value=\"Update sequence\" width=90 action=\"bypass -h admin_updatesequence "+s.sequenceId+" $tdist $tyaw $tpitch $ttime $tdur $tturn $trise $tscreen\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("<td><button value=\"Play sequence\" width=90 action=\"bypass -h admin_playsequence $tdist $tyaw $tpitch $ttime $tdur $tturn $trise $tscreen\" height=21 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>");
+ sb.append("</tr>");
+ sb.append("</table></body></html>");
+ html.setHtml(sb.toString());
+ pc.sendPacket(html);
+ }
+ }
+
+ public void update_sequence(L2PcInstance pc, int seqId, int objid, int dist, int yaw, int pitch, int time, int duration, int turn, int rise, int screen)
+ {
+ if (_sequence.containsKey(seqId))
+ {
+ _sequence.remove(seqId);
+ Sequence s = new Sequence();
+ s.sequenceId = seqId;
+ s._objid = objid;
+ s._dist = dist;
+ s._yaw = yaw;
+ s._pitch = pitch;
+ s._time = time;
+ s._duration = duration;
+ s._turn = turn;
+ s._rise = rise;
+ s._widescreen = screen;
+ _sequence.put(seqId, s);
+ main_txt(pc);
+ }
+ else
+ {
+ pc.sendMessage("Sequence dont exists.");
+ main_txt(pc);
+ }
+ }
+
+ public void delete_sequence(int id, L2PcInstance pc)
+ {
+ if (_sequence.containsKey(id))
+ {
+ _sequence.remove(id);
+ main_txt(pc);
+ }
+ else
+ {
+ pc.sendMessage("sequence Id dont exists.");
+ main_txt(pc);
+ }
+ }
+
+ public void play_movie(int brodcast, L2PcInstance pc)
+ {
+ if (!_sequence.isEmpty())
+ {
+ ThreadPoolManager.getInstance().scheduleGeneral(new play(1,brodcast,pc), 500);
+ }
+ else
+ {
+ pc.sendMessage("There is nothing to play");
+ main_txt(pc);
+ }
+ }
+
+ private class play implements Runnable
+ {
+ private int _id;
+ private int brod;
+ private L2PcInstance _pc;
+ public play(int id, int brodcast, L2PcInstance pc)
+ {
+ _id = id;
+ brod = brodcast;
+ _pc = pc;
+ }
+ public void run()
+ {
+ int id = 0;
+ Sequence sec = new Sequence();
+ if (_sequence.containsKey(_id))
+ {
+ id = _id+1;
+ sec = _sequence.get(_id);
+ if (brod == 1)
+ {
+ Collection<L2Object> objs = _pc.getKnownList().getKnownObjects().values();
+
+ for (L2Object object : objs)
+ {
+ if (object instanceof L2PcInstance)
+ {
+ ((L2PcInstance) object).sendPacket(new SpecialCamera(sec._objid, sec._dist, sec._yaw, sec._pitch, sec._time, sec._duration, sec._turn, sec._rise, sec._widescreen, 0));
+ }
+ }
+ _pc.sendPacket(new SpecialCamera(sec._objid, sec._dist, sec._yaw, sec._pitch, sec._time, sec._duration, sec._turn, sec._rise, sec._widescreen, 0));
+ }
+ else
+ _pc.sendPacket(new SpecialCamera(sec._objid, sec._dist, sec._yaw, sec._pitch, sec._time, sec._duration, sec._turn, sec._rise, sec._widescreen, 0));
+
+ ThreadPoolManager.getInstance().scheduleGeneral(new play(id,brod,_pc), (sec._duration - 100));
+ }
+ else
+ {
+ _pc.sendMessage("Movie ended on "+(_id - 1)+" Sequence.");
+ main_txt(_pc);
+ }
+ }
+ }
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/model/actor/instance/L2FenceInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2FenceInstance.java (revision 0)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2FenceInstance.java (revision 0)
@@ -0,0 +1,50 @@
+package com.l2jserver.gameserver.model.actor.instance;
+
+import com.l2jserver.gameserver.model.L2Object;
+import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.network.serverpackets.ExColosseumFenceInfoPacket;
+
+/**
+ * @author KKnD
+ */
+public final class L2FenceInstance extends L2Object
+{
+ private int _type;
+ private int _width;
+ private int _height;
+
+ public L2FenceInstance(int objectId, int type, int width, int height)
+ {
+ super(objectId);
+ _type = type;
+ _width = width;
+ _height = height;
+ }
+
+ @Override
+ public void sendInfo(L2PcInstance activeChar)
+ {
+ activeChar.sendPacket(new ExColosseumFenceInfoPacket(this));
+ }
+
+ public int getType()
+ {
+ return _type;
+ }
+
+ public int getWidth()
+ {
+ return _width;
+ }
+
+ public int getHeight()
+ {
+ return _height;
+ }
+
+ @Override
+ public boolean isAutoAttackable(L2Character attacker)
+ {
+ return false;
+ }
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/network/serverpackets/ExColosseumFenceInfoPacket.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/ExColosseumFenceInfoPacket.java (revision 0)
+++ java/com/l2jserver/gameserver/network/serverpackets/ExColosseumFenceInfoPacket.java (revision 0)
@@ -0,0 +1,140 @@
+/*
+
+ * This program is free software: you can redistribute it and/or modify it under
+
+ * the terms of the GNU General Public License as published by the Free Software
+
+ * Foundation, either version 3 of the License, or (at your option) any later
+
+ * version.
+
+ *
+
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+
+ * details.
+
+ *
+
+ * You should have received a copy of the GNU General Public License along with
+
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+
+ */
+
+package com.l2jserver.gameserver.network.serverpackets;
+
+import com.l2jserver.gameserver.model.actor.instance.L2FenceInstance;
+
+
+
+
+
+/**
+
+ * Format: (ch)dddddd
+
+ * d: object id
+
+ * d: type (00 - no fence, 01 - only 4 columns, 02 - columns with fences)
+
+ * d: x coord
+
+ * d: y coord
+
+ * d: z coord
+
+ * d: width
+
+ * d: height
+
+ */
+
+public class ExColosseumFenceInfoPacket extends L2GameServerPacket {
+
+
+
+ private static final String _S__FE_03_EXCOLOSSEUMFENCEINFOPACKET = "[S] FE:03 ExColosseumFenceInfoPacket";
+
+ private int _type;
+
+ private L2FenceInstance _activeChar;
+
+ private int _width;
+
+ private int _height;
+
+
+
+ public ExColosseumFenceInfoPacket(L2FenceInstance activeChar)
+
+ {
+ _activeChar = activeChar;
+
+ _type = activeChar.getType();
+
+ _width = activeChar.getWidth();
+
+ _height = activeChar.getHeight();
+
+ }
+
+
+
+ /* (non-Javadoc)
+
+ * @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#writeImpl()
+
+ */
+
+ @Override
+
+ protected void writeImpl()
+
+ {
+
+ writeC(0xfe);
+
+ writeH(0x03);
+
+
+
+ writeD(_activeChar.getObjectId()); // ?
+
+ writeD(_type);
+
+ writeD(_activeChar.getX());
+
+ writeD(_activeChar.getY());
+
+ writeD(_activeChar.getZ());
+
+ writeD(_width);
+
+ writeD(_height);
+
+ }
+
+
+
+ /* (non-Javadoc)
+
+ * @see net.sf.l2j.gameserver.BasePacket#getType()
+
+ */
+
+ @Override
+
+ public String getType()
+
+ {
+
+ return _S__FE_03_EXCOLOSSEUMFENCEINFOPACKET;
+
+ }
+
+}
\ No newline at end of file
CitarDATA:
Index: data/scripts/handlers/admincommandhandlers/AdminFence.java
===================================================================
--- data/scripts/handlers/admincommandhandlers/AdminFence.java (revision 0)
+++ data/scripts/handlers/admincommandhandlers/AdminFence.java (revision 0)
@@ -0,0 +1,52 @@
+package handlers.admincommandhandlers;
+
+import com.l2jserver.gameserver.handler.IAdminCommandHandler;
+import com.l2jserver.gameserver.instancemanager.FenceBuilderManager;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+
+
+/**
+ * @author KKnD
+ */
+public class AdminFence implements IAdminCommandHandler
+{
+ private static final String[] ADMIN_COMMANDS =
+ {
+ "admin_fence",
+ "admin_fbuilder",
+ "admin_delallspawned",
+ "admin_dellastspawned"
+ };
+
+ public boolean useAdminCommand(String command, L2PcInstance activeChar)
+ {
+ if (command.startsWith("admin_fence"))
+ {
+ String[] args = command.split(" ");
+ if (args.length < 5)
+ {
+ activeChar.sendMessage("Not all arguments was set");
+ return false;
+ }
+ FenceBuilderManager.getInstance().spawn_fence(activeChar, Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3]), Integer.parseInt(args[4]));
+ }
+ else if (command.equals("admin_delallspawned"))
+ {
+ FenceBuilderManager.getInstance().del_all(activeChar);
+ }
+ else if (command.equals("admin_dellastspawned"))
+ {
+ FenceBuilderManager.getInstance().del_last(activeChar);
+ }
+ else if (command.equals("admin_fbuilder"))
+ {
+ FenceBuilderManager.getInstance().main_fence(activeChar);
+ }
+ return true;
+ }
+
+ public String[] getAdminCommandList()
+ {
+ return ADMIN_COMMANDS;
+ }
+}
\ No newline at end of file
Index: data/scripts/handlers/admincommandhandlers/AdminMovieMaker.java
===================================================================
--- data/scripts/handlers/admincommandhandlers/AdminMovieMaker.java (revision 0)
+++ data/scripts/handlers/admincommandhandlers/AdminMovieMaker.java (revision 0)
@@ -0,0 +1,139 @@
+package handlers.admincommandhandlers;
+
+import com.l2jserver.gameserver.handler.IAdminCommandHandler;
+import com.l2jserver.gameserver.instancemanager.MovieMakerManager;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+
+/**
+ * @author KKnD
+ */
+public class AdminMovieMaker implements IAdminCommandHandler
+{
+ private static final String[] ADMIN_COMMANDS =
+ {
+ "admin_addseq",//
+ "admin_playseqq",//
+ "admin_delsequence",//
+ "admin_editsequence",//
+ "admin_addsequence",//
+ "admin_playsequence",//
+ "admin_movie",//
+ "admin_updatesequence",//
+ "admin_brodcast",//
+ "admin_playmovie",//
+ "admin_brodmovie"//
+ };
+
+ public boolean useAdminCommand(String command, L2PcInstance activeChar)
+ {
+ if (command.equals("admin_movie"))
+ {
+ MovieMakerManager.getInstance().main_txt(activeChar);
+ }
+ else if (command.startsWith("admin_playseqq"))
+ {
+ String val = command.substring(15);
+ int id = Integer.parseInt(val);
+ MovieMakerManager.getInstance().play_sequence(id, activeChar);
+ }
+ else if (command.equals("admin_addseq"))
+ {
+ MovieMakerManager.getInstance().add_seq(activeChar);
+ }
+ else if (command.startsWith("admin_addsequence"))
+ {
+ String[] args = command.split(" ");
+ int targ = 0;
+ if (args.length < 10)
+ {
+ activeChar.sendMessage("Not all arguments was set");
+ return false;
+ }
+ if (activeChar.getTarget() != null)
+ {
+ targ = activeChar.getTarget().getObjectId();
+ }
+ else
+ {
+ activeChar.sendMessage("Target for camera is missing");
+ MovieMakerManager.getInstance().main_txt(activeChar);
+ return false;
+ }
+ MovieMakerManager.getInstance().add_sequence(activeChar, Integer.parseInt(args[1]), targ, Integer.parseInt(args[2]), Integer.parseInt(args[3]), Integer.parseInt(args[4]), Integer.parseInt(args[5]), Integer.parseInt(args[6]), Integer.parseInt(args[7]), Integer.parseInt(args[8]), Integer.parseInt(args[9]));
+ }
+ else if (command.startsWith("admin_playsequence"))
+ {
+ String[] args = command.split(" ");
+ int targ = 0;
+ if (args.length < 10)
+ {
+ activeChar.sendMessage("Not all arguments was set");
+ return false;
+ }
+ if (activeChar.getTarget() != null)
+ {
+ targ = activeChar.getTarget().getObjectId();
+ }
+ else
+ {
+ activeChar.sendMessage("Target for camera is missing");
+ MovieMakerManager.getInstance().main_txt(activeChar);
+ return false;
+ }
+ MovieMakerManager.getInstance().play_sequence(activeChar, targ, Integer.parseInt(args[1]), Integer.parseInt(args[2]), Integer.parseInt(args[3]), Integer.parseInt(args[4]), Integer.parseInt(args[5]), Integer.parseInt(args[6]), Integer.parseInt(args[7]), Integer.parseInt(args[8]));
+ }
+ else if (command.startsWith("admin_editsequence"))
+ {
+ String val = command.substring(19);
+ int id = Integer.parseInt(val);
+ MovieMakerManager.getInstance().edit_seq(id, activeChar);
+ }
+ else if (command.startsWith("admin_updatesequence"))
+ {
+ String[] args = command.split(" ");
+ int targ = 0;
+