Преглед изворни кода

Unhardcoding onAction() and onActionShift() from most instances.
Require DP update !

_DS_ пре 15 година
родитељ
комит
dfb488fe85

+ 88 - 0
L2_GameServer/java/com/l2jserver/gameserver/handler/ActionHandler.java

@@ -0,0 +1,88 @@
+/*
+ * 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.handler;
+
+import java.util.Map;
+
+import javolution.util.FastMap;
+
+import com.l2jserver.gameserver.model.L2Object.InstanceType;
+
+public class ActionHandler
+{
+	private Map<InstanceType, IActionHandler> _actions;
+	private Map<InstanceType, IActionHandler> _actionsShift;
+
+	public static ActionHandler getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+
+	private ActionHandler()
+	{
+		_actions = new FastMap<InstanceType, IActionHandler>();
+		_actionsShift = new FastMap<InstanceType, IActionHandler>();
+	}
+
+	public void registerActionHandler(IActionHandler handler)
+	{
+		_actions.put(handler.getInstanceType(), handler);
+	}
+
+	public void registerActionShiftHandler(IActionHandler handler)
+	{
+		_actionsShift.put(handler.getInstanceType(), handler);
+	}
+
+	public IActionHandler getActionHandler(InstanceType iType)
+	{
+		IActionHandler result = null;
+		for (InstanceType t = iType; t != null; t = t.getParent())
+		{
+			result = _actions.get(t);
+			if (result != null)
+				break;
+		}
+		return result;
+	}
+
+	public IActionHandler getActionShiftHandler(InstanceType iType)
+	{
+		IActionHandler result = null;
+		for (InstanceType t = iType; t != null; t = t.getParent())
+		{
+			result = _actionsShift.get(t);
+			if (result != null)
+				break;
+		}
+		return result;
+	}
+
+	public int size()
+	{
+		return _actions.size();
+	}
+
+	public int sizeShift()
+	{
+		return _actionsShift.size();
+	}
+
+	@SuppressWarnings("synthetic-access")
+	private static class SingletonHolder
+	{
+		protected static final ActionHandler _instance = new ActionHandler();
+	}
+}

+ 30 - 0
L2_GameServer/java/com/l2jserver/gameserver/handler/IActionHandler.java

@@ -0,0 +1,30 @@
+/*
+ * 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.handler;
+
+import java.util.logging.Logger;
+
+import com.l2jserver.gameserver.model.L2Object.InstanceType;
+import com.l2jserver.gameserver.model.actor.L2Character;
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+
+public interface IActionHandler
+{
+	public static Logger _log = Logger.getLogger(IActionHandler.class.getName());
+
+	public boolean action(L2PcInstance activeChar, L2Character target, boolean interact);
+
+	public InstanceType getInstanceType();
+}

+ 24 - 1
L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -37,6 +37,8 @@ import com.l2jserver.gameserver.datatables.DoorTable;
 import com.l2jserver.gameserver.datatables.MapRegionTable;
 import com.l2jserver.gameserver.datatables.MapRegionTable;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.MapRegionTable.TeleportWhereType;
 import com.l2jserver.gameserver.datatables.MapRegionTable.TeleportWhereType;
+import com.l2jserver.gameserver.handler.ActionHandler;
+import com.l2jserver.gameserver.handler.IActionHandler;
 import com.l2jserver.gameserver.handler.ISkillHandler;
 import com.l2jserver.gameserver.handler.ISkillHandler;
 import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
 import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
@@ -2411,7 +2413,28 @@ public abstract class L2Character extends L2Object
     {
     {
     	setObjectPosition(new CharPosition(this));
     	setObjectPosition(new CharPosition(this));
     }
     }
-    
+
+    @Override
+	public void onAction(L2PcInstance player, boolean interact)
+    {
+		IActionHandler handler = ActionHandler.getInstance().getActionHandler(getInstanceType());
+		if (handler != null)
+			handler.action(player, this, interact);
+
+		player.sendPacket(ActionFailed.STATIC_PACKET);
+    }
+
+	@Override
+	public void onActionShift(L2PcInstance player)
+	{
+		IActionHandler handler = ActionHandler.getInstance().getActionShiftHandler(getInstanceType());
+		if (handler != null)
+			handler.action(player, this, true);
+
+		// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
+		player.sendPacket(ActionFailed.STATIC_PACKET);
+	}
+
 	public L2CharTemplate getTemplate() { return _template; }
 	public L2CharTemplate getTemplate() { return _template; }
 	/**
 	/**
 	 * Set the template of the L2Character.<BR><BR>
 	 * Set the template of the L2Character.<BR><BR>

+ 0 - 21
L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Decoy.java

@@ -19,11 +19,7 @@ import java.util.Collection;
 
 
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.templates.chars.L2CharTemplate;
 import com.l2jserver.gameserver.templates.chars.L2CharTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
@@ -50,23 +46,6 @@ public abstract class L2Decoy extends L2Character
         this.getOwner().sendPacket(new AbstractNpcInfo.DecoyInfo(this));
         this.getOwner().sendPacket(new AbstractNpcInfo.DecoyInfo(this));
     }
     }
     
     
-    @Override
-	public void onAction(L2PcInstance player, boolean interact)
-    {
-    	// Aggression target lock effect
-    	if (player.isLockedTarget() && player.getLockedTarget() != this)
-    	{
-    		player.sendPacket(new SystemMessage(SystemMessageId.FAILED_CHANGE_TARGET));
-    		player.sendPacket(ActionFailed.STATIC_PACKET);
-    		return;
-    	}
-
-		player.setTarget(this);
-        MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel()
-                - getLevel());
-        player.sendPacket(my);
-    }
-    
     @Override
     @Override
     public void updateAbnormalEffect()
     public void updateAbnormalEffect()
     {
     {

+ 4 - 455
L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -25,7 +25,6 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.SevenSignsFestival;
 import com.l2jserver.gameserver.SevenSignsFestival;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ThreadPoolManager;
-import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.cache.HtmCache;
 import com.l2jserver.gameserver.cache.HtmCache;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.handler.BypassHandler;
 import com.l2jserver.gameserver.handler.BypassHandler;
@@ -33,8 +32,6 @@ import com.l2jserver.gameserver.handler.IBypassHandler;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.instancemanager.TownManager;
 import com.l2jserver.gameserver.instancemanager.TownManager;
-import com.l2jserver.gameserver.model.L2DropCategory;
-import com.l2jserver.gameserver.model.L2DropData;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2NpcAIData;
 import com.l2jserver.gameserver.model.L2NpcAIData;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Object;
@@ -42,9 +39,7 @@ import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.L2WorldRegion;
 import com.l2jserver.gameserver.model.L2WorldRegion;
-import com.l2jserver.gameserver.model.MobGroupTable;
 import com.l2jserver.gameserver.model.actor.instance.L2ClanHallManagerInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2ClanHallManagerInstance;
-import com.l2jserver.gameserver.model.actor.instance.L2ControllableMobInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2DoormenInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2DoormenInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2FestivalGuideInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2FestivalGuideInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2FishermanInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2FishermanInstance;
@@ -59,7 +54,6 @@ import com.l2jserver.gameserver.model.actor.stat.NpcStat;
 import com.l2jserver.gameserver.model.actor.status.NpcStatus;
 import com.l2jserver.gameserver.model.actor.status.NpcStatus;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.Fort;
-import com.l2jserver.gameserver.model.entity.L2Event;
 import com.l2jserver.gameserver.model.olympiad.Olympiad;
 import com.l2jserver.gameserver.model.olympiad.Olympiad;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.zone.type.L2TownZone;
 import com.l2jserver.gameserver.model.zone.type.L2TownZone;
@@ -67,13 +61,10 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.ServerObjectInfo;
 import com.l2jserver.gameserver.network.serverpackets.ServerObjectInfo;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
-import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.skills.Stats;
 import com.l2jserver.gameserver.skills.Stats;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
@@ -472,7 +463,7 @@ public class L2Npc extends L2Character
 				}
 				}
 
 
 				if (!(isDead() || isStunned() || isSleeping() || isParalyzed()))
 				if (!(isDead() || isStunned() || isSleeping() || isParalyzed()))
-					onRandomAnimation();
+					onRandomAnimation(Rnd.get(2, 3));
 
 
 				startRandomAnimationTimer();
 				startRandomAnimationTimer();
 			}
 			}
@@ -486,14 +477,14 @@ public class L2Npc extends L2Character
 	/**
 	/**
 	 * Send a packet SocialAction to all L2PcInstance in the _KnownPlayers of the L2NpcInstance and create a new RandomAnimation Task.<BR><BR>
 	 * Send a packet SocialAction to all L2PcInstance in the _KnownPlayers of the L2NpcInstance and create a new RandomAnimation Task.<BR><BR>
 	 */
 	 */
-	public void onRandomAnimation()
+	public void onRandomAnimation(int animationId)
 	{
 	{
 		// Send a packet SocialAction to all L2PcInstance in the _KnownPlayers of the L2NpcInstance
 		// Send a packet SocialAction to all L2PcInstance in the _KnownPlayers of the L2NpcInstance
 		long now = System.currentTimeMillis();
 		long now = System.currentTimeMillis();
 		if (now - _lastSocialBroadcast > _minimalSocialInterval)
 		if (now - _lastSocialBroadcast > _minimalSocialInterval)
 		{
 		{
 			_lastSocialBroadcast = now;
 			_lastSocialBroadcast = now;
-			broadcastPacket(new SocialAction(getObjectId(), Rnd.get(2, 3)));
+			broadcastPacket(new SocialAction(getObjectId(), animationId));
 		}
 		}
 	}
 	}
 
 
@@ -832,7 +823,7 @@ public class L2Npc extends L2Character
 		return false;
 		return false;
 	}
 	}
 
 
-	protected boolean canTarget(L2PcInstance player)
+	public boolean canTarget(L2PcInstance player)
 	{
 	{
 		if (player.isOutOfControl())
 		if (player.isOutOfControl())
 		{
 		{
@@ -871,448 +862,6 @@ public class L2Npc extends L2Character
 		return true;
 		return true;
 	}
 	}
 
 
-	/**
-	 * Manage actions when a player click on the L2NpcInstance.<BR><BR>
-	 *
-	 * <B><U> Actions on first click on the L2NpcInstance (Select it)</U> :</B><BR><BR>
-	 * <li>Set the L2NpcInstance as target of the L2PcInstance player (if necessary)</li>
-	 * <li>Send a Server->Client packet MyTargetSelected to the L2PcInstance player (display the select window)</li>
-	 * <li>If L2NpcInstance is autoAttackable, send a Server->Client packet StatusUpdate to the L2PcInstance in order to update L2NpcInstance HP bar </li>
-	 * <li>Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client </li><BR><BR>
-	 *
-	 * <B><U> Actions on second click on the L2NpcInstance (Attack it/Intercat with it)</U> :</B><BR><BR>
-	 * <li>Send a Server->Client packet MyTargetSelected to the L2PcInstance player (display the select window)</li>
-	 * <li>If L2NpcInstance is autoAttackable, notify the L2PcInstance AI with AI_INTENTION_ATTACK (after a height verification)</li>
-	 * <li>If L2NpcInstance is NOT autoAttackable, notify the L2PcInstance AI with AI_INTENTION_INTERACT (after a distance verification) and show message</li><BR><BR>
-	 *
-	 * <FONT COLOR=#FF0000><B> <U>Caution</U> : Each group of Server->Client packet must be terminated by a ActionFailed packet in order to avoid
-	 * that client wait an other packet</B></FONT><BR><BR>
-	 *
-	 * <B><U> Example of use </U> :</B><BR><BR>
-	 * <li> Client packet : Action, AttackRequest</li><BR><BR>
-	 *
-	 * <B><U> Overridden in </U> :</B><BR><BR>
-	 * <li> L2ArtefactInstance : Manage only fisrt click to select Artefact</li><BR><BR>
-	 * <li> L2GuardInstance : </li><BR><BR>
-	 *
-	 * @param player The L2PcInstance that start an action on the L2NpcInstance
-	 *
-	 */
-	@Override
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		if (!canTarget(player))
-			return;
-
-		player.setLastFolkNPC(this);
-
-		// Check if the L2PcInstance already target the L2NpcInstance
-		if (this != player.getTarget())
-		{
-			if (Config.DEBUG)
-				_log.fine("new target selected:" + getObjectId());
-
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
-
-			// Check if the player is attackable (without a forced attack)
-			if (isAutoAttackable(player))
-			{
-				// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-				// The player.getLevel() - getLevel() permit to display the correct color in the select window
-				MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
-				player.sendPacket(my);
-
-				// Send a Server->Client packet StatusUpdate of the L2NpcInstance to the L2PcInstance to update its HP bar
-				StatusUpdate su = new StatusUpdate(getObjectId());
-				su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
-				su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
-				player.sendPacket(su);
-			}
-			else
-			{
-				// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-				MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
-				player.sendPacket(my);
-			}
-
-			// Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
-			player.sendPacket(new ValidateLocation(this));
-		}
-		else if (interact)
-		{
-			player.sendPacket(new ValidateLocation(this));
-			// Check if the player is attackable (without a forced attack) and isn't dead
-			if (isAutoAttackable(player) && !isAlikeDead())
-			{
-				// Check the height difference
-				if (Math.abs(player.getZ() - getZ()) < 400) // this max heigth difference might need some tweaking
-				{
-					// Set the L2PcInstance Intention to AI_INTENTION_ATTACK
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-					// player.startAttack(this);
-				}
-				else
-				{
-					// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
-					player.sendPacket(ActionFailed.STATIC_PACKET);
-				}
-			}
-			else if (!isAutoAttackable(player))
-			{
-				// Calculate the distance between the L2PcInstance and the L2NpcInstance
-				if (!canInteract(player))
-				{
-					// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-				}
-				else
-				{
-					// Send a Server->Client packet SocialAction to the all L2PcInstance on the _knownPlayer of the L2NpcInstance
-					// to display a social action of the L2NpcInstance on their client
-					long now = System.currentTimeMillis();
-					if (now - _lastSocialBroadcast > _minimalSocialInterval && !getAiType().equals(AIType.CORPSE))
-					{
-						_lastSocialBroadcast = now;
-						broadcastPacket(new SocialAction(getObjectId(), Rnd.get(8)));
-					}
-
-					// Open a chat window on client with the text of the L2NpcInstance
-					if (isEventMob)
-					{
-						L2Event.showEventHtml(player, String.valueOf(getObjectId()));
-					}
-					else
-					{
-						Quest[] qlsa = getTemplate().getEventQuests(Quest.QuestEventType.QUEST_START);
-						if ((qlsa != null) && qlsa.length > 0)
-							player.setLastQuestNpcObject(getObjectId());
-						Quest[] qlst = getTemplate().getEventQuests(Quest.QuestEventType.ON_FIRST_TALK);
-						if ((qlst != null) && qlst.length == 1)
-							qlst[0].notifyFirstTalk(this, player);
-						else
-							showChatWindow(player);
-					}
-				}
-			}
-		}
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-
-	/**
-	 * Manage and Display the GM console to modify the L2NpcInstance (GM only).<BR><BR>
-	 * 
-	 * <B><U> Actions (If the L2PcInstance is a GM only)</U> :</B><BR><BR>
-	 * <li>Set the L2NpcInstance as target of the L2PcInstance player (if necessary)</li>
-	 * <li>Send a Server->Client packet MyTargetSelected to the L2PcInstance player (display the select window)</li>
-	 * <li>If L2NpcInstance is autoAttackable, send a Server->Client packet StatusUpdate to the L2PcInstance in order to update L2NpcInstance HP bar </li>
-	 * <li>Send a Server->Client NpcHtmlMessage() containing the GM console about this L2NpcInstance </li><BR><BR>
-	 * 
-	 * <FONT COLOR=#FF0000><B> <U>Caution</U> : Each group of Server->Client packet must be terminated by a ActionFailed packet in order to avoid
-	 * that client wait an other packet</B></FONT><BR><BR>
-	 * 
-	 * <B><U> Example of use </U> :</B><BR><BR>
-	 * <li> Client packet : Action</li><BR><BR>
-	 * 
-	 * @param client The thread that manage the player that pessed Shift and click on the L2NpcInstance
-	 * 
-	 */
-	@Override
-	public void onActionShift(L2PcInstance player)
-	{
-		if (player == null)
-			return;
-
-		// Check if the L2PcInstance is a GM
-		if (player.getAccessLevel().isGm())
-		{
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
-
-			// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-			// The player.getLevel() - getLevel() permit to display the correct color in the select window
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
-			player.sendPacket(my);
-
-			// Check if the player is attackable (without a forced attack)
-			if (isAutoAttackable(player))
-			{
-				// Send a Server->Client packet StatusUpdate of the L2NpcInstance to the L2PcInstance to update its HP bar
-				StatusUpdate su = new StatusUpdate(getObjectId());
-				su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
-				su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
-				player.sendPacket(su);
-			}
-
-			// Send a Server->Client NpcHtmlMessage() containing the GM console about this L2NpcInstance
-			NpcHtmlMessage html = new NpcHtmlMessage(0);
-                        final StringBuilder html1 = StringUtil.startAppend(500,
-                                "<html><body><center><font color=\"LEVEL\">NPC Info</font></center><br>" +
-                                "Instance Type: ",
-                                getClass().getSimpleName(),
-                                "<br1>Faction: ",
-                                getFactionId() != null ? getFactionId() : "null"
-                                );
-                        StringUtil.append(html1,
-                        		"<br1>Coords: ",
-                        		String.valueOf(getX()),
-                        		", ",
-                        		String.valueOf(getY()),
-                        		", ",
-                        		String.valueOf(getZ())
-                        		);
-                        if (getSpawn() != null)
-                        	StringUtil.append(html1,
-                        			"<br1>Spawn: ",
-                        			String.valueOf(getSpawn().getLocx()),
-                        			", ",
-                        			String.valueOf(getSpawn().getLocy()),
-                        			", ",
-                        			String.valueOf(getSpawn().getLocz()),
-                                    " ; Loc ID: ",
-                                    String.valueOf(getSpawn().getLocation()),
-                                    "<br1>Distance from spawn 2D: ",
-                                    String.valueOf((int)Math.sqrt(getPlanDistanceSq(getSpawn().getLocx(), getSpawn().getLocy()))),
-                                    " ; 3D: ",
-                                    String.valueOf((int)Math.sqrt(getDistanceSq(getSpawn().getLocx(), getSpawn().getLocy(), getSpawn().getLocz())))
-                            );
-
-			if (this instanceof L2ControllableMobInstance)
-			{
-				StringUtil.append(html1,
-						"<br1>Mob Group: ",
-						String.valueOf(MobGroupTable.getInstance().getGroupForMob((L2ControllableMobInstance) this).getGroupId()),
-						"<br>"
-				);
-			}
-			else
-			{
-				StringUtil.append(html1,
-						"<br1>Respawn Time: ",
-						(getSpawn() != null ? String.valueOf(getSpawn().getRespawnDelay() / 1000) : "?"),
-						"  Seconds<br>"
-				);
-			}
-
-			StringUtil.append(html1,
-					"<table border=\"0\" width=\"100%\">" +
-					"<tr><td>Level</td><td>",
-					String.valueOf(getLevel()),
-					"</td><td>    </td><td>NPC ID</td><td>",
-					String.valueOf(getTemplate().npcId),
-					"</td></tr>" +
-					"<tr><td>Aggro</td><td>" +
-					String.valueOf((this instanceof L2Attackable) ? ((L2Attackable) this).getAggroRange() : 0),
-					"</td><td>    </td><td>Object ID</td><td>",
-					String.valueOf(getObjectId()),
-					"</td></tr>" +
-					"<tr><td>Castle</td><td>",
-					String.valueOf(getCastle().getCastleId()),
-					"</td><td>    </td><td>AI </td><td>",
-					(hasAI() ? String.valueOf(getAI().getIntention().name()) : "NULL"),
-					"</td></tr>" +
-					"</table><br>" +
-					"<font color=\"LEVEL\">Combat</font>" +
-					"<table border=\"0\" width=\"100%\">" +
-					"<tr><td>Current HP</td><td>",
-					String.valueOf(getCurrentHp()),
-					"</td><td>Current MP</td><td>",
-					String.valueOf(getCurrentMp()),
-					"</td></tr>" +
-					"<tr><td>Max.HP</td><td>",
-					String.valueOf((int) (getMaxHp() / getStat().calcStat(Stats.MAX_HP, 1, this, null))),
-					"*",
-					String.valueOf((int) (getStat().calcStat(Stats.MAX_HP, 1, this, null))),
-					"</td><td>Max.MP</td><td>",
-					String.valueOf(getMaxMp()),
-					"</td></tr>" +
-					"<tr><td>P.Atk.</td><td>",
-					String.valueOf(getPAtk(null)),
-					"</td><td>M.Atk.</td><td>",
-					String.valueOf(getMAtk(null, null)),
-					"</td></tr>" +
-					"<tr><td>P.Def.</td><td>",
-					String.valueOf(getPDef(null)),
-					"</td><td>M.Def.</td><td>",
-					String.valueOf(getMDef(null, null)),
-					"</td></tr>" +
-					"<tr><td>Accuracy</td><td>" +
-					String.valueOf(getAccuracy()),
-					"</td><td>Evasion</td><td>",
-					String.valueOf(getEvasionRate(null)),
-					"</td></tr>" +
-					"<tr><td>Critical</td><td>",
-					String.valueOf(getCriticalHit(null, null)),
-					"</td><td>Speed</td><td>",
-					String.valueOf(getRunSpeed()),
-					"</td></tr>" +
-					"<tr><td>Atk.Speed</td><td>",
-					String.valueOf(getPAtkSpd()),
-					"</td><td>Cast.Speed</td><td>",
-					String.valueOf(getMAtkSpd()),
-					"</td></tr>" +
-					"</table><br>" +
-					"<font color=\"LEVEL\">Basic Stats</font>" +
-					"<table border=\"0\" width=\"100%\">" +
-					"<tr><td>STR</td><td>",
-					String.valueOf(getSTR()),
-					"</td><td>DEX</td><td>",
-					String.valueOf(getDEX()),
-					"</td><td>CON</td><td>",
-					String.valueOf(getCON()),
-					"</td></tr>" +
-					"<tr><td>INT</td><td>",
-					String.valueOf(getINT()),
-					"</td><td>WIT</td><td>",
-					String.valueOf(getWIT()),
-					"</td><td>MEN</td><td>",
-					String.valueOf(getMEN()),
-					"</td></tr>" +
-					"</table>" +
-					"<br><center><table><tr><td><button value=\"Edit NPC\" action=\"bypass -h admin_edit_npc ",
-					String.valueOf(getTemplate().npcId),
-					"\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"><br1></td>" +
-					"<td><button value=\"Kill\" action=\"bypass -h admin_kill\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><br1></tr>" +
-					"<tr><td><button value=\"Show DropList\" action=\"bypass -h admin_show_droplist ",
-					String.valueOf(getTemplate().npcId),
-					"\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>" +
-					"<td><button value=\"Delete\" action=\"bypass -h admin_delete\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>" +
-					"<tr><td><button value=\"Show SkillList\" action=\"bypass -h admin_show_skilllist_npc ",
-					String.valueOf(getTemplate().npcId),
-				 	"\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td></td></tr></table></center><br></body></html>"
-					);
-
-			html.setHtml(html1.toString());
-			player.sendPacket(html);
-		}
-		else if (Config.ALT_GAME_VIEWNPC)
-		{
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
-
-			// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-			// The player.getLevel() - getLevel() permit to display the correct color in the select window
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
-			player.sendPacket(my);
-
-			// Check if the player is attackable (without a forced attack)
-			if (isAutoAttackable(player))
-			{
-				// Send a Server->Client packet StatusUpdate of the L2NpcInstance to the L2PcInstance to update its HP bar
-				StatusUpdate su = new StatusUpdate(getObjectId());
-				su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
-				su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
-				player.sendPacket(su);
-			}
-
-			NpcHtmlMessage html = new NpcHtmlMessage(0);
-			final StringBuilder html1 = StringUtil.startAppend(
-					1000,
-					"<html><body>" +
-					"<br><center><font color=\"LEVEL\">[Combat Stats]</font></center>" +
-					"<table border=0 width=\"100%\">" +
-					"<tr><td>Max.HP</td><td>",
-					String.valueOf((int) (getMaxHp() / getStat().calcStat(Stats.MAX_HP, 1, this, null))),
-					"*",
-					String.valueOf((int) getStat().calcStat(Stats.MAX_HP, 1, this, null)),
-					"</td><td>Max.MP</td><td>",
-					String.valueOf(getMaxMp()),
-					"</td></tr>" +
-					"<tr><td>P.Atk.</td><td>",
-					String.valueOf(getPAtk(null)),
-					"</td><td>M.Atk.</td><td>",
-					String.valueOf(getMAtk(null, null)),
-					"</td></tr>" +
-					"<tr><td>P.Def.</td><td>",
-					String.valueOf(getPDef(null)),
-					"</td><td>M.Def.</td><td>",
-					String.valueOf(getMDef(null, null)),
-					"</td></tr>" +
-					"<tr><td>Accuracy</td><td>",
-					String.valueOf(getAccuracy()),
-					"</td><td>Evasion</td><td>",
-					String.valueOf(getEvasionRate(null)),
-					"</td></tr>" +
-					"<tr><td>Critical</td><td>",
-					String.valueOf(getCriticalHit(null, null)),
-					"</td><td>Speed</td><td>",
-					String.valueOf(getRunSpeed()),
-					"</td></tr>" +
-					"<tr><td>Atk.Speed</td><td>",
-					String.valueOf(getPAtkSpd()),
-					"</td><td>Cast.Speed</td><td>",
-					String.valueOf(getMAtkSpd()),
-					"</td></tr>" +
-					"<tr><td>Race</td><td>",
-					getTemplate().getRace().toString(),
-					"</td><td></td><td></td></tr>" +
-					"</table>" +
-					"<br><center><font color=\"LEVEL\">[Basic Stats]</font></center>" +
-					"<table border=0 width=\"100%\">" +
-					"<tr><td>STR</td><td>",
-					String.valueOf(getSTR()),
-					"</td><td>DEX</td><td>",
-					String.valueOf(getDEX()),
-					"</td><td>CON</td><td>",
-					String.valueOf(getCON()),
-					"</td></tr>" +
-					"<tr><td>INT</td><td>",
-					String.valueOf(getINT()),
-					"</td><td>WIT</td><td>",
-					String.valueOf(getWIT()),
-					"</td><td>MEN</td><td>",
-					String.valueOf(getMEN()),
-					"</td></tr>" +
-					"</table>"
-					);
-
-			if (getTemplate().getDropData() != null)
-			{
-				StringUtil.append(html1,
-						"<br><center><font color=\"LEVEL\">[Drop Info]</font></center>" +
-						"<br>Rates legend: <font color=\"ff0000\">50%+</font> <font color=\"00ff00\">30%+</font> <font color=\"0000ff\">less than 30%</font>" +
-						"<table border=0 width=\"100%\">"
-						);
-				for (L2DropCategory cat : getTemplate().getDropData())
-				{
-					for (L2DropData drop : cat.getAllDrops())
-					{
-						final L2Item item = ItemTable.getInstance().getTemplate(drop.getItemId());
-						if (item == null)
-							continue;
-
-						final String color;
-
-						if (drop.getChance() >= 500000)
-							color = "ff0000";
-						else if (drop.getChance() >= 300000)
-							color = "00ff00";
-						else
-							color = "0000ff";
-
-						StringUtil.append(html1,
-								"<tr><td><font color=\"",
-								color,
-								"\">",
-								item.getName(),
-								"</font></td><td>",
-								(drop.isQuestDrop() ? "Quest" : (cat.isSweep() ? "Sweep" : "Drop")),
-								"</td></tr>"
-								);
-					}
-				}
-				html1.append("</table>");
-			}
-			html1.append("</body></html>");
-
-			html.setHtml(html1.toString());
-			player.sendPacket(html);
-		}
-
-		// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-
 	/** Return the L2Castle this L2NpcInstance belongs to. */
 	/** Return the L2Castle this L2NpcInstance belongs to. */
 	public final Castle getCastle()
 	public final Castle getCastle()
 	{
 	{

+ 0 - 100
L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Summon.java

@@ -16,14 +16,10 @@ package com.l2jserver.gameserver.model.actor;
 
 
 import java.util.Collection;
 import java.util.Collection;
 
 
-import com.l2jserver.Config;
-import com.l2jserver.gameserver.GeoData;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2SummonAI;
 import com.l2jserver.gameserver.ai.L2SummonAI;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
-import com.l2jserver.gameserver.handler.AdminCommandHandler;
-import com.l2jserver.gameserver.handler.IAdminCommandHandler;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Party;
 import com.l2jserver.gameserver.model.L2Party;
@@ -50,16 +46,12 @@ import com.l2jserver.gameserver.network.serverpackets.ExPartyPetWindowAdd;
 import com.l2jserver.gameserver.network.serverpackets.ExPartyPetWindowDelete;
 import com.l2jserver.gameserver.network.serverpackets.ExPartyPetWindowDelete;
 import com.l2jserver.gameserver.network.serverpackets.ExPartyPetWindowUpdate;
 import com.l2jserver.gameserver.network.serverpackets.ExPartyPetWindowUpdate;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
 import com.l2jserver.gameserver.network.serverpackets.PetDelete;
 import com.l2jserver.gameserver.network.serverpackets.PetDelete;
 import com.l2jserver.gameserver.network.serverpackets.PetInfo;
 import com.l2jserver.gameserver.network.serverpackets.PetInfo;
 import com.l2jserver.gameserver.network.serverpackets.PetItemList;
 import com.l2jserver.gameserver.network.serverpackets.PetItemList;
-import com.l2jserver.gameserver.network.serverpackets.PetStatusShow;
 import com.l2jserver.gameserver.network.serverpackets.PetStatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.PetStatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.RelationChanged;
 import com.l2jserver.gameserver.network.serverpackets.RelationChanged;
-import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.item.L2EtcItem;
 import com.l2jserver.gameserver.templates.item.L2EtcItem;
@@ -216,98 +208,6 @@ public abstract class L2Summon extends L2Playable
 		return false;
 		return false;
 	}
 	}
 
 
-	@Override
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		// Aggression target lock effect
-		if (player.isLockedTarget() && player.getLockedTarget() != this)
-		{
-			player.sendPacket(new SystemMessage(SystemMessageId.FAILED_CHANGE_TARGET));
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-			return;
-		}
-
-
-		if (player == _owner && player.getTarget() == this)
-		{
-			player.sendPacket(new PetStatusShow(this));
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-		}
-		else if (player.getTarget() != this)
-		{
-			if (Config.DEBUG) _log.fine("new target selected:"+getObjectId());
-			player.setTarget(this);
-			player.sendPacket(new ValidateLocation(this));
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
-			player.sendPacket(my);
-
-			//sends HP/MP status of the summon to other characters
-			StatusUpdate su = new StatusUpdate(getObjectId());
-			su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
-			su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
-			player.sendPacket(su);
-		}
-		else if (interact)
-		{
-			player.sendPacket(new ValidateLocation(this));
-			if (isAutoAttackable(player))
-			{
-				if (Config.GEODATA > 0)
-				{
-					if (GeoData.getInstance().canSeeTarget(player, this))
-					{
-						player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-						player.onActionRequest();
-					}
-				}
-				else
-				{
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-					player.onActionRequest();
-				}
-			}
-			else
-			{
-				// This Action Failed packet avoids player getting stuck when clicking three or more times
-				player.sendPacket(ActionFailed.STATIC_PACKET);
-				if (Config.GEODATA > 0)
-				{
-					if (GeoData.getInstance().canSeeTarget(player, this))
-						player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
-				}
-				else
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
-			}
-		}
-	}
-
-	@Override
-	public void onActionShift(L2PcInstance player)
-	{
-		if (player == null)
-			return;
-
-		if (player.isGM())
-		{
-			if (player.getTarget() != this)
-			{
-				// Set the target of the L2PcInstance player
-				player.setTarget(this);
-
-				// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-				player.sendPacket(new MyTargetSelected(getObjectId(), 0));
-			}
-
-			// Send a Server->Client packet ValidateLocation to correct the L2PcInstance position and heading on the client
-			player.sendPacket(new ValidateLocation(this));
-
-			IAdminCommandHandler ach = AdminCommandHandler.getInstance().getAdminCommandHandler("admin_summon_info");
-			if (ach != null)
-				ach.useAdminCommand("admin_summon_info", player);
-		}
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-
 	public long getExpForThisLevel()
 	public long getExpForThisLevel()
     {
     {
         if(getLevel() >= Experience.LEVEL.length)
         if(getLevel() >= Experience.LEVEL.length)

+ 0 - 20
L2_GameServer/java/com/l2jserver/gameserver/model/actor/L2Trap.java

@@ -22,13 +22,9 @@ import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.knownlist.TrapKnownList;
 import com.l2jserver.gameserver.model.actor.knownlist.TrapKnownList;
-import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
-import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.item.L2Weapon;
 import com.l2jserver.gameserver.templates.item.L2Weapon;
@@ -116,22 +112,6 @@ public class L2Trap extends L2Character
 		return getTemplate().npcId;
 		return getTemplate().npcId;
 	}
 	}
 	
 	
-	@Override
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		// Aggression target lock effect
-		if (player.isLockedTarget() && player.getLockedTarget() != this)
-		{
-			player.sendPacket(new SystemMessage(SystemMessageId.FAILED_CHANGE_TARGET));
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-			return;
-		}
-
-		player.setTarget(this);
-		MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel()- getLevel());
-		player.sendPacket(my);
-	}
-
     /**
     /**
 	 * 
 	 * 
 	 * @see com.l2jserver.gameserver.model.actor.L2Character#doDie(com.l2jserver.gameserver.model.actor.L2Character)
 	 * @see com.l2jserver.gameserver.model.actor.L2Character#doDie(com.l2jserver.gameserver.model.actor.L2Character)

+ 0 - 57
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2ArtefactInstance.java

@@ -14,13 +14,10 @@
  */
  */
 package com.l2jserver.gameserver.model.actor.instance;
 package com.l2jserver.gameserver.model.actor.instance;
 
 
-import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
-import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 
 
 /**
 /**
@@ -82,60 +79,6 @@ public final class L2ArtefactInstance extends L2Npc
 		return false;
 		return false;
 	}
 	}
 
 
-	/**
-	 * Manage actions when a player click on the L2ArtefactInstance.<BR>
-	 * <BR>
-	 * 
-	 * <B><U> Actions</U> :</B><BR>
-	 * <BR>
-	 * <li>Set the L2NpcInstance as target of the L2PcInstance player (if
-	 * necessary)</li> <li>Send a Server->Client packet MyTargetSelected to the
-	 * L2PcInstance player (display the select window)</li> <li>Send a
-	 * Server->Client packet ValidateLocation to correct the L2NpcInstance
-	 * position and heading on the client</li><BR>
-	 * <BR>
-	 * 
-	 * <B><U> Example of use </U> :</B><BR>
-	 * <BR>
-	 * <li>Client packet : Action, AttackRequest</li><BR>
-	 * <BR>
-	 * 
-	 * @param player
-	 *            The L2PcInstance that start an action on the
-	 *            L2ArtefactInstance
-	 * 
-	 */
-	@Override
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		if (!canTarget(player))
-			return;
-
-		if (this != player.getTarget())
-		{
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
-
-			// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
-			player.sendPacket(my);
-
-			// Send a Server->Client packet ValidateLocation to correct the L2ArtefactInstance position and heading on the client
-			player.sendPacket(new ValidateLocation(this));
-		}
-		else if (interact)
-		{
-			// Calculate the distance between the L2PcInstance and the L2NpcInstance
-			if (!canInteract(player))
-			{
-				// Notify the L2PcInstance AI with AI_INTENTION_INTERACT
-				player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-			}
-		}
-		// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-
 	@Override
 	@Override
 	public void onForcedAttack(L2PcInstance player)
 	public void onForcedAttack(L2PcInstance player)
 	{
 	{

+ 0 - 141
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2DoorInstance.java

@@ -21,7 +21,6 @@ import java.util.logging.Logger;
 
 
 import com.l2jserver.Config;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ThreadPoolManager;
-import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2DoorAI;
 import com.l2jserver.gameserver.ai.L2DoorAI;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
@@ -32,7 +31,6 @@ import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.knownlist.DoorKnownList;
 import com.l2jserver.gameserver.model.actor.knownlist.DoorKnownList;
 import com.l2jserver.gameserver.model.actor.stat.DoorStat;
 import com.l2jserver.gameserver.model.actor.stat.DoorStat;
@@ -41,17 +39,11 @@ import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.ClanHall;
 import com.l2jserver.gameserver.model.entity.ClanHall;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.SystemMessageId;
-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
-import com.l2jserver.gameserver.network.serverpackets.ConfirmDlg;
 import com.l2jserver.gameserver.network.serverpackets.DoorStatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.DoorStatusUpdate;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.StaticObject;
 import com.l2jserver.gameserver.network.serverpackets.StaticObject;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.templates.chars.L2CharTemplate;
 import com.l2jserver.gameserver.templates.chars.L2CharTemplate;
 import com.l2jserver.gameserver.templates.item.L2Weapon;
 import com.l2jserver.gameserver.templates.item.L2Weapon;
-import com.l2jserver.gameserver.util.StringUtil;
 
 
 import javolution.util.FastList;
 import javolution.util.FastList;
 
 
@@ -481,139 +473,6 @@ public class L2DoorInstance extends L2Character
 		return null;
 		return null;
 	}
 	}
 	
 	
-	@Override
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		if (player == null)
-			return;
-		
-		// Check if the L2PcInstance already target the L2NpcInstance
-		if (this != player.getTarget())
-		{
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
-			
-			// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
-			player.sendPacket(my);
-			
-			StaticObject su = new StaticObject(this, false);
-			
-			// send HP amount if doors are inside castle/fortress zone
-			// TODO: needed to be added here doors from conquerable clanhalls
-			if ((getCastle() != null && getCastle().getCastleId() > 0) || (getFort() != null && getFort().getFortId() > 0 && !getIsCommanderDoor()))
-				su = new StaticObject(this, true);
-			player.sendPacket(su);
-			
-			// Send a Server->Client packet ValidateLocation to correct the L2NpcInstance position and heading on the client
-			player.sendPacket(new ValidateLocation(this));
-		}
-		else if (interact)
-		{
-			//            MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel());
-			//            player.sendPacket(my);
-			if (isAutoAttackable(player))
-			{
-				if (Math.abs(player.getZ() - getZ()) < 400) // this max heigth difference might need some tweaking
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-			}
-			else if (player.getClan() != null && getClanHall() != null && player.getClanId() == getClanHall().getOwnerId())
-			{
-				if (!isInsideRadius(player, L2Npc.INTERACTION_DISTANCE, false, false))
-				{
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-				}
-				else
-				{
-					player.gatesRequest(this);
-					if (!getOpen())
-						player.sendPacket(new ConfirmDlg(1140));
-					else
-						player.sendPacket(new ConfirmDlg(1141));
-				}
-			}
-			else if (player.getClan() != null && getFort() != null && player.getClan() == getFort().getOwnerClan() && isUnlockable() && !getFort().getSiege().getIsInProgress())
-			{
-				if (!isInsideRadius(player, L2Npc.INTERACTION_DISTANCE, false, false))
-				{
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-				}
-				else
-				{
-					player.gatesRequest(this);
-					if (!getOpen())
-						player.sendPacket(new ConfirmDlg(1140));
-					else
-						player.sendPacket(new ConfirmDlg(1141));
-				}
-			}
-		}
-		// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-	
-	@Override
-	public void onActionShift(L2PcInstance player)
-	{
-		if (player == null)
-			return;
-		
-		if (player.getAccessLevel().isGm())
-		{
-			player.setTarget(this);
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel());
-			player.sendPacket(my);
-			
-			StaticObject su = new StaticObject(this, false);
-			
-			// send HP amount if doors are inside castle/fortress zone
-			// TODO: needed to be added here doors from conquerable clanhalls
-			if ((getCastle() != null && getCastle().getCastleId() > 0) || (getFort() != null && getFort().getFortId() > 0 && !getIsCommanderDoor()))
-				su = new StaticObject(this, true);
-			
-			player.sendPacket(su);
-			
-			NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-                        final String html1 = StringUtil.concat(
-                                "<html><body><center><font color=\"LEVEL\">Door Info</font></center><br><table border=0><tr><td>HP: </td><td>",
-                                String.valueOf(getCurrentHp()),
-                                " / ",
-                                String.valueOf(getMaxHp()),
-                                "</td></tr><tr><td>Max X,Y,Z: </td><td>",
-                                String.valueOf(getXMax()),
-                                ", ",
-                                String.valueOf(getYMax()),
-                                ", ",
-                                String.valueOf(getZMax()),
-                                "</td></tr><tr><td>Min X,Y,Z: </td><td>",
-                                String.valueOf(getXMin()),
-                                ", ",
-                                String.valueOf(getYMin()),
-                                ", ",
-                                String.valueOf(getZMin()),
-                                "</td></tr><tr><td>Object ID: </td><td>",
-                                String.valueOf(getObjectId()),
-                                "</td></tr><tr><td>Door ID: </td><td>",
-                                String.valueOf(getDoorId()),
-                                "</td></tr><tr><td><br></td></tr><tr><td>Class: </td><td>",
-                                getClass().getSimpleName(),
-                                "</td></tr></table><br><table><tr><td><button value=\"Open\" action=\"bypass -h admin_open ",
-                                String.valueOf(getDoorId()),
-                                "\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Close\" action=\"bypass -h admin_close ",
-                                String.valueOf(getDoorId()),
-                                "\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Kill\" action=\"bypass -h admin_kill\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td><td><button value=\"Delete\" action=\"bypass -h admin_delete\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table></body></html>"
-                                );
-			html.setHtml(html1);
-			player.sendPacket(html);
-		}
-		else
-		{
-			// ATTACK the mob without moving?
-		}
-		
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-	
 	@Override
 	@Override
 	public void broadcastStatusUpdate()
 	public void broadcastStatusUpdate()
 	{
 	{

+ 0 - 75
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2MerchantInstance.java

@@ -21,11 +21,7 @@ import com.l2jserver.gameserver.datatables.MerchantPriceConfigTable.MerchantPric
 import com.l2jserver.gameserver.model.L2TradeList;
 import com.l2jserver.gameserver.model.L2TradeList;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ExBuySellListPacket;
 import com.l2jserver.gameserver.network.serverpackets.ExBuySellListPacket;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
-import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
-import com.l2jserver.gameserver.util.StringUtil;
 
 
 /**
 /**
  * This class ...
  * This class ...
@@ -94,75 +90,4 @@ public class L2MerchantInstance extends L2NpcInstance
 
 
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 	}
 	}
-
-	@Override
-	public final void onActionShift(L2PcInstance player)
-	{
-		if (player == null)
-			return;
-
-		if (player.isGM())
-		{
-			player.setTarget(this);
-
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
-			player.sendPacket(my);
-
-			if (isAutoAttackable(player))
-			{
-				StatusUpdate su = new StatusUpdate(getObjectId());
-				su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
-				su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
-				player.sendPacket(su);
-			}
-
-			NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-			final StringBuilder html1 = StringUtil.startAppend(2000,
-					"<html><body><center><font color=\"LEVEL\">Merchant Info</font></center><br><table border=0><tr><td>Object ID: </td><td>",
-					String.valueOf(getObjectId()),
-					"</td></tr><tr><td>Template ID: </td><td>",
-					String.valueOf(getTemplate().npcId),
-					"</td></tr><tr><td><br></td></tr><tr><td>HP: </td><td>",
-					String.valueOf(getCurrentHp()),
-					"</td></tr><tr><td>MP: </td><td>",
-					String.valueOf(getCurrentMp()),
-					"</td></tr><tr><td>Level: </td><td>",
-					String.valueOf(getLevel()),
-					"</td></tr><tr><td><br></td></tr><tr><td>Class: </td><td>",
-					getClass().getSimpleName(),
-					"</td></tr><tr><td><br></td></tr></table><table><tr><td><button value=\"Edit NPC\" action=\"bypass -h admin_edit_npc ",
-					String.valueOf(getTemplate().npcId),
-					"\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td>" +
-					"<td><button value=\"Kill\" action=\"bypass -h admin_kill\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>" +
-					"<tr><td><button value=\"Show DropList\" action=\"bypass -h admin_show_droplist ",
-					String.valueOf(getTemplate().npcId),
-					"\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>" +
-					"<td><button value=\"Delete\" action=\"bypass -h admin_delete\" width=40 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr>" +
-					"<tr><td><button value=\"View Shop\" action=\"bypass -h admin_showShop ",
-					String.valueOf(getTemplate().npcId),
-					"\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"></td></tr></table>"
-			);
-
-			/** Lease doesn't work at all for now!!!
-			StringUtil.append(html1,
-				"<button value=\"Lease next week\" action=\"bypass -h npc_",
-				String.valueOf(getObjectId()),
-				"_Lease\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">" +
-				"<button value=\"Abort current leasing\" action=\"bypass -h npc_",
-				String.valueOf(getObjectId()),
-				"_Lease next\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">" +
-				"<button value=\"Manage items\" action=\"bypass -h npc_",
-				String.valueOf(getObjectId()),
-				"_Lease manage\" width=100 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\">"
-			);
-			 */
-
-			html1.append("</body></html>");
-
-			html.setHtml(html1.toString());
-			player.sendPacket(html);
-		}
-
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
 }
 }

+ 0 - 141
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -72,8 +72,6 @@ import com.l2jserver.gameserver.datatables.NpcTable;
 import com.l2jserver.gameserver.datatables.PetDataTable;
 import com.l2jserver.gameserver.datatables.PetDataTable;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SkillTreeTable;
 import com.l2jserver.gameserver.datatables.SkillTreeTable;
-import com.l2jserver.gameserver.handler.AdminCommandHandler;
-import com.l2jserver.gameserver.handler.IAdminCommandHandler;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.handler.ItemHandler;
 import com.l2jserver.gameserver.handler.ItemHandler;
 import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
 import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
@@ -189,7 +187,6 @@ import com.l2jserver.gameserver.network.serverpackets.ItemList;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 import com.l2jserver.gameserver.network.serverpackets.LeaveWorld;
 import com.l2jserver.gameserver.network.serverpackets.LeaveWorld;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
 import com.l2jserver.gameserver.network.serverpackets.NicknameChanged;
 import com.l2jserver.gameserver.network.serverpackets.NicknameChanged;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.ObservationMode;
 import com.l2jserver.gameserver.network.serverpackets.ObservationMode;
@@ -226,7 +223,6 @@ import com.l2jserver.gameserver.network.serverpackets.TradeDone;
 import com.l2jserver.gameserver.network.serverpackets.TradeOtherDone;
 import com.l2jserver.gameserver.network.serverpackets.TradeOtherDone;
 import com.l2jserver.gameserver.network.serverpackets.TradeStart;
 import com.l2jserver.gameserver.network.serverpackets.TradeStart;
 import com.l2jserver.gameserver.network.serverpackets.UserInfo;
 import com.l2jserver.gameserver.network.serverpackets.UserInfo;
-import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.skills.Formulas;
 import com.l2jserver.gameserver.skills.Formulas;
 import com.l2jserver.gameserver.skills.Stats;
 import com.l2jserver.gameserver.skills.Stats;
 import com.l2jserver.gameserver.skills.l2skills.L2SkillSiegeFlag;
 import com.l2jserver.gameserver.skills.l2skills.L2SkillSiegeFlag;
@@ -4234,143 +4230,6 @@ public final class L2PcInstance extends L2Playable
 		return true;
 		return true;
 	}
 	}
 
 
-	/**
-	 * Manage actions when a player click on this L2PcInstance.<BR><BR>
-	 *
-	 * <B><U> Actions on first click on the L2PcInstance (Select it)</U> :</B><BR><BR>
-	 * <li>Set the target of the player</li>
-	 * <li>Send a Server->Client packet MyTargetSelected to the player (display the select window)</li><BR><BR>
-	 *
-	 * <B><U> Actions on second click on the L2PcInstance (Follow it/Attack it/Intercat with it)</U> :</B><BR><BR>
-	 * <li>Send a Server->Client packet MyTargetSelected to the player (display the select window)</li>
-	 * <li>If this L2PcInstance has a Private Store, notify the player AI with AI_INTENTION_INTERACT</li>
-	 * <li>If this L2PcInstance is autoAttackable, notify the player AI with AI_INTENTION_ATTACK</li><BR><BR>
-	 * <li>If this L2PcInstance is NOT autoAttackable, notify the player AI with AI_INTENTION_FOLLOW</li><BR><BR>
-	 *
-	 * <B><U> Example of use </U> :</B><BR><BR>
-	 * <li> Client packet : Action, AttackRequest</li><BR><BR>
-	 *
-	 * @param player The player that start an action on this L2PcInstance
-	 *
-	 */
-
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		// See description in TvTEvent.java
-		if (!TvTEvent.onAction( player, getObjectId()))
-		{
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-			return;
-		}
-
-		// Check if the L2PcInstance is confused
-		if (player.isOutOfControl())
-		{
-			// Send a Server->Client packet ActionFailed to the player
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-			return;
-		}
-
-		// Aggression target lock effect
-		if (player.isLockedTarget() && player.getLockedTarget() != this)
-		{
-			player.sendPacket(new SystemMessage(SystemMessageId.FAILED_CHANGE_TARGET));
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-			return;
-		}
-
-		// Check if the player already target this L2PcInstance
-		if (player.getTarget() != this)
-		{
-			// Set the target of the player
-			player.setTarget(this);
-
-			// Send a Server->Client packet MyTargetSelected to the player
-			// The color to display in the select window is White
-			player.sendPacket(new MyTargetSelected(getObjectId(), 0));
-			if (player != this) player.sendPacket(new ValidateLocation(this));
-		}
-		else if (interact)
-		{
-			if (player != this) player.sendPacket(new ValidateLocation(this));
-			// Check if this L2PcInstance has a Private Store
-			if (getPrivateStoreType() != 0)
-            {
-				player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-            }
-			else
-			{
-				// Check if this L2PcInstance is autoAttackable
-				if (isAutoAttackable(player))
-				{
-					// Player with lvl < 21 can't attack a cursed weapon holder
-					// And a cursed weapon holder  can't attack players with lvl < 21
-					if ((isCursedWeaponEquipped() && player.getLevel() < 21)
-							|| (player.isCursedWeaponEquipped() && getLevel() < 21))
-					{
-						player.sendPacket(ActionFailed.STATIC_PACKET);
-					} else
-					{
-						if (Config.GEODATA > 0)
-						{
-							if (GeoData.getInstance().canSeeTarget(player, this))
-							{
-								player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-								player.onActionRequest();
-							}
-						}
-						else
-						{
-							player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-							player.onActionRequest();
-						}
-					}
-				} else
-				{
-					// This Action Failed packet avoids player getting stuck when clicking three or more times
-					player.sendPacket(ActionFailed.STATIC_PACKET);
-					if (Config.GEODATA > 0)
-					{
-						if(GeoData.getInstance().canSeeTarget(player, this))
-							player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
-					}
-					else
-						player.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, this);
-				}
-			}
-		}
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-	
-	@Override
-	public void onActionShift(L2PcInstance player)
-	{
-		if (player == null)
-			return;
-		
-		if (player.isGM())
-		{
-			// Check if the gm already target this l2pcinstance
-			if (player.getTarget() != this)
-			{
-				// Set the target of the L2PcInstance player
-				player.setTarget(this);
-				
-				// Send a Server->Client packet MyTargetSelected to the L2PcInstance player
-				player.sendPacket(new MyTargetSelected(getObjectId(), 0));
-			}
-			
-			// Send a Server->Client packet ValidateLocation to correct the L2PcInstance position and heading on the client
-			if (player != this)
-				player.sendPacket(new ValidateLocation(this));
-			
-			IAdminCommandHandler ach = AdminCommandHandler.getInstance().getAdminCommandHandler("admin_character_info");
-			if (ach != null)
-				ach.useAdminCommand("admin_character_info " + getName(), player);
-		}
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-	
 	/**
 	/**
 	 * Returns true if cp update should be done, false if not
 	 * Returns true if cp update should be done, false if not
 	 * @return boolean
 	 * @return boolean

+ 0 - 82
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java

@@ -23,7 +23,6 @@ import java.util.logging.Logger;
 
 
 import com.l2jserver.Config;
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.GeoData;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
@@ -49,14 +48,11 @@ import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
 import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
 import com.l2jserver.gameserver.network.serverpackets.ItemList;
 import com.l2jserver.gameserver.network.serverpackets.ItemList;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
 import com.l2jserver.gameserver.network.serverpackets.PetInventoryUpdate;
 import com.l2jserver.gameserver.network.serverpackets.PetInventoryUpdate;
 import com.l2jserver.gameserver.network.serverpackets.PetItemList;
 import com.l2jserver.gameserver.network.serverpackets.PetItemList;
-import com.l2jserver.gameserver.network.serverpackets.PetStatusShow;
 import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.StopMove;
 import com.l2jserver.gameserver.network.serverpackets.StopMove;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
-import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
 import com.l2jserver.gameserver.skills.Stats;
 import com.l2jserver.gameserver.skills.Stats;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
@@ -279,84 +275,6 @@ public class L2PetInstance extends L2Summon
     @Override
     @Override
 	public int getSummonType() { return 2; }
 	public int getSummonType() { return 2; }
 
 
-	@Override
-	public void onAction(L2PcInstance player, boolean interact)
-	{
-		// Aggression target lock effect
-		if (player.isLockedTarget() && player.getLockedTarget() != this)
-		{
-			player.sendPacket(new SystemMessage(SystemMessageId.FAILED_CHANGE_TARGET));
-			player.sendPacket(ActionFailed.STATIC_PACKET);
-			return;
-		}
-
-		boolean isOwner = player.getObjectId() == getOwner().getObjectId();
-
-		player.sendPacket(new ValidateLocation(this));
-		if(isOwner && player != getOwner())
-			updateRefOwner(player);
-		if (this != player.getTarget())
-		{
-			if (Config.DEBUG)
-				_log.fine("new target selected:" + getObjectId());
-			
-			// Set the target of the L2PcInstance player
-			player.setTarget(this);
-			
-			MyTargetSelected my = new MyTargetSelected(getObjectId(), player.getLevel() - getLevel());
-			player.sendPacket(my);
-			
-			// Send a Server->Client packet StatusUpdate of the L2PetInstance to the L2PcInstance to update its HP bar
-			StatusUpdate su = new StatusUpdate(getObjectId());
-			su.addAttribute(StatusUpdate.CUR_HP, (int) getCurrentHp());
-			su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());
-			player.sendPacket(su);
-		}
-		else if (interact)
-		{
-			// Check if the pet is attackable (without a forced attack) and isn't dead
-			if (isAutoAttackable(player) && !isOwner)
-			{
-				if (Config.GEODATA > 0)
-				{
-					if (GeoData.getInstance().canSeeTarget(player, this))
-					{
-						// Set the L2PcInstance Intention to AI_INTENTION_ATTACK
-						player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-						player.onActionRequest();
-					}
-				}
-				else
-				{
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_ATTACK, this);
-					player.onActionRequest();
-				}
-			}
-			else if (!isInsideRadius(player, 150, false, false))
-			{
-				if (Config.GEODATA > 0)
-				{
-					if (GeoData.getInstance().canSeeTarget(player, this))
-					{
-						player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-						player.onActionRequest();
-					}
-				}
-				else
-				{
-					player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-					player.onActionRequest();
-				}
-			}
-			else 
-			{
-				if (isOwner)
-					player.sendPacket(new PetStatusShow(this));
-			}
-		}
-		player.sendPacket(ActionFailed.STATIC_PACKET);
-	}
-
 	@Override
 	@Override
 	public int getControlItemId() { return _controlItemId; }
 	public int getControlItemId() { return _controlItemId; }
 
 

+ 4 - 110
L2_GameServer/java/com/l2jserver/gameserver/model/actor/instance/L2StaticObjectInstance.java

@@ -19,9 +19,7 @@ package com.l2jserver.gameserver.model.actor.instance;
 
 
 import java.util.logging.Logger;
 import java.util.logging.Logger;
 
 
-import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
-import com.l2jserver.gameserver.cache.HtmCache;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2ItemInstance;
 import com.l2jserver.gameserver.model.L2Skill;
 import com.l2jserver.gameserver.model.L2Skill;
@@ -29,14 +27,10 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.knownlist.StaticObjectKnownList;
 import com.l2jserver.gameserver.model.actor.knownlist.StaticObjectKnownList;
 import com.l2jserver.gameserver.model.actor.stat.StaticObjStat;
 import com.l2jserver.gameserver.model.actor.stat.StaticObjStat;
 import com.l2jserver.gameserver.model.actor.status.StaticObjStatus;
 import com.l2jserver.gameserver.model.actor.status.StaticObjStatus;
-import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
-import com.l2jserver.gameserver.network.serverpackets.MyTargetSelected;
-import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.ShowTownMap;
 import com.l2jserver.gameserver.network.serverpackets.ShowTownMap;
 import com.l2jserver.gameserver.network.serverpackets.StaticObject;
 import com.l2jserver.gameserver.network.serverpackets.StaticObject;
 import com.l2jserver.gameserver.templates.chars.L2CharTemplate;
 import com.l2jserver.gameserver.templates.chars.L2CharTemplate;
 import com.l2jserver.gameserver.templates.item.L2Weapon;
 import com.l2jserver.gameserver.templates.item.L2Weapon;
-import com.l2jserver.gameserver.util.StringUtil;
 
 
 /**
 /**
  * GODSON ROX!
  * GODSON ROX!
@@ -51,9 +45,7 @@ public class L2StaticObjectInstance extends L2Character
     private int _staticObjectId;
     private int _staticObjectId;
     private int _meshIndex = 0;     // 0 - static objects, alternate static objects
     private int _meshIndex = 0;     // 0 - static objects, alternate static objects
     private int _type = -1;         // 0 - map signs, 1 - throne , 2 - arena signs
     private int _type = -1;         // 0 - map signs, 1 - throne , 2 - arena signs
-    private int _x;
-    private int _y;
-    private String _texture;
+    private ShowTownMap _map;
 
 
     /** This class may be created only by L2Character and only for AI */
     /** This class may be created only by L2Character and only for AI */
     public class AIAccessor extends L2Character.AIAccessor
     public class AIAccessor extends L2Character.AIAccessor
@@ -143,19 +135,12 @@ public class L2StaticObjectInstance extends L2Character
 
 
     public void setMap(String texture, int x, int y)
     public void setMap(String texture, int x, int y)
     {
     {
-        _texture = "town_map."+texture;
-        _x = x;
-        _y = y;
+    	_map = new ShowTownMap("town_map."+texture, x, y);
     }
     }
 
 
-    private int getMapX()
+    public ShowTownMap getMap()
     {
     {
-	return _x;
-    }
-
-    private int getMapY()
-    {
-	return _y;
+    	return _map;
     }
     }
 
 
     @Override
     @Override
@@ -191,97 +176,6 @@ public class L2StaticObjectInstance extends L2Character
         return null;
         return null;
     }
     }
 
 
-    /**
-     * this is called when a player interacts with this NPC
-     * @param player
-     */
-    @Override
-    public void onAction(L2PcInstance player, boolean interact)
-    {
-    	if(_type < 0) _log.info("L2StaticObjectInstance: StaticObject with invalid type! StaticObjectId: "+getStaticObjectId());
-        // Check if the L2PcInstance already target the L2NpcInstance
-        if (this != player.getTarget())
-        {
-            // Set the target of the L2PcInstance player
-            player.setTarget(this);
-            player.sendPacket(new MyTargetSelected(getObjectId(), 0));
-
-        }
-        else if (interact)
-        {
-            MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
-            player.sendPacket(my);
-
-            // Calculate the distance between the L2PcInstance and the L2NpcInstance
-            if (!player.isInsideRadius(this, INTERACTION_DISTANCE, false, false))
-            {
-                // Notify the L2PcInstance AI with AI_INTENTION_INTERACT
-                player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
-
-                // Send a Server->Client packet ActionFailed (target is out of interaction range) to the L2PcInstance player
-                player.sendPacket(ActionFailed.STATIC_PACKET);
-            } else {
-			if(_type == 2) {
-				String filename = "data/html/signboard.htm";
-				String content = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), filename);
-				NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-
-				if (content == null) html.setHtml("<html><body>Signboard is missing:<br>"+filename+"</body></html>");
-				else html.setHtml(content);
-
-				player.sendPacket(html);
-				player.sendPacket(ActionFailed.STATIC_PACKET);
-			} else if(_type == 0) player.sendPacket(new ShowTownMap(_texture, getMapX(), getMapY()));
-                    // Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
-                    player.sendPacket(ActionFailed.STATIC_PACKET);
-            }
-        }
-
-    }
-
-    @Override
-    public void onActionShift(L2PcInstance player)
-    {
-        if (player == null) return;
-
-        if (player.getAccessLevel().isGm())
-        {
-            player.setTarget(this);
-            MyTargetSelected my = new MyTargetSelected(getObjectId(), player
-                    .getLevel());
-            player.sendPacket(my);
-
-            StaticObject su = new StaticObject(this);
-
-            player.sendPacket(su);
-
-            NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-            final String html1 = StringUtil.concat(
-                    "<html><body><center><font color=\"LEVEL\">Static Object Info</font></center><br><table border=0><tr><td>Coords X,Y,Z: </td><td>",
-                    String.valueOf(getX()),
-                    ", ",
-                    String.valueOf(getY()),
-                    ", ",
-                    String.valueOf(getZ()),
-                    "</td></tr><tr><td>Object ID: </td><td>",
-                    String.valueOf(getObjectId()),
-                    "</td></tr><tr><td>Static Object ID: </td><td>",
-                    String.valueOf(getStaticObjectId()),
-                    "</td></tr><tr><td>Mesh Index: </td><td>",
-                    String.valueOf(getMeshIndex()),
-                    "</td></tr><tr><td><br></td></tr><tr><td>Class: </td><td>",
-                    getClass().getSimpleName(),
-                    "</td></tr></table></body></html>"
-                    );
-            html.setHtml(html1);
-            player.sendPacket(html);
-        } else {
-            // ATTACK the mob without moving?
-        }
-
-        player.sendPacket(ActionFailed.STATIC_PACKET);
-    }
-
     /* (non-Javadoc)
     /* (non-Javadoc)
      * @see com.l2jserver.gameserver.model.L2Object#isAttackable()
      * @see com.l2jserver.gameserver.model.L2Object#isAttackable()
      */
      */