Browse Source

BETA: Moved aggro, targetable, showName to npcaidata and particly added VlLight's 'Implementation of "showName" and "targetable" properties' others requires better testing

Rumen Nikiforov 13 năm trước cách đây
mục cha
commit
919b010d26

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcTable.java

@@ -105,14 +105,11 @@ public class NpcTable
 		npcDat.set("rewardSp", NpcData.getInt("sp"));
 		npcDat.set("basePAtkSpd", NpcData.getInt("atkspd"));
 		npcDat.set("baseMAtkSpd", NpcData.getInt("matkspd"));
-		npcDat.set("aggroRange", NpcData.getInt("aggro"));
 		npcDat.set("rhand", NpcData.getInt("rhand"));
 		npcDat.set("lhand", NpcData.getInt("lhand"));
 		npcDat.set("enchant", NpcData.getInt("enchant"));
 		npcDat.set("baseWalkSpd", NpcData.getInt("walkspd"));
 		npcDat.set("baseRunSpd", NpcData.getInt("runspd"));
-		npcDat.set("targetable", NpcData.getBoolean("targetable"));
-		npcDat.set("show_name", NpcData.getBoolean("show_name"));
 		
 		// constants, until we have stats in DB
 		npcDat.safeSet("baseSTR", NpcData.getInt("str"), 0, BaseStats.MAX_STAT_VALUE, "Loading npc template id: " + NpcData.getInt("idTemplate"));
@@ -884,6 +881,9 @@ public class NpcTable
 				npcAIDat.setEnemyRange(rset.getInt("enemyRange"));
 				npcAIDat.setDodge(rset.getInt("dodge"));
 				npcAIDat.setAi(rset.getString("aiType"));
+				npcAIDat.setAggro(rset.getInt("aggro"));
+				npcAIDat.setShowName(rset.getBoolean("showName"));
+				npcAIDat.setTargetable(rset.getBoolean("targetable"));
 				
 				npcDat.setAIData(npcAIDat);
 				cont++;

+ 39 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2NpcAIData.java

@@ -47,6 +47,9 @@ public class L2NpcAIData
 	private int _shortRangeChance;
 	private int _switchRangeChance;
 	private AIType _aiType = AIType.FIGHTER;
+	private int _aggroRange;
+	private boolean _showName;
+	private boolean _targetable;
 	
 	public void setPrimarySkillId(int primarySkillId)
 	{
@@ -177,6 +180,21 @@ public class L2NpcAIData
 		}
 	}
 	
+	public void setAggro(int val)
+	{
+		_aggroRange = val;
+	}
+	
+	public void setTargetable(boolean val)
+	{
+		_targetable = val;
+	}
+	
+	public void setShowName(boolean val)
+	{
+		_showName = val;
+	}
+	
 	public int getPrimarySkillId()
 	{
 		return _primarySkillId;
@@ -276,4 +294,25 @@ public class L2NpcAIData
 	{
 		return _aiType;
 	}
+	
+	public int getAggroRange()
+	{
+		return _aggroRange;
+	}
+	
+	/**
+	 * @return {@code true} if the NPC name should shows above NPC, {@code false} otherwise.
+	 */
+	public boolean showName()
+	{
+		return _showName;
+	}
+	
+	/**
+	 * @return {@code true} if the NPC can be targeted, {@code false} otherwise.
+	 */
+	public boolean isTargetable()
+	{
+		return _targetable;
+	}
 }

+ 5 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -135,7 +135,6 @@ public class L2Npc extends L2Character
 	private int _spiritshotamount = 0;
 	public boolean _ssrecharged = true;
 	public boolean _spsrecharged = true;
-	protected boolean _isHideName = false;
 	private int _displayEffect = 0;
 	
 	private final L2NpcAIData _staticAIData = getTemplate().getAIDataStatic();
@@ -612,7 +611,7 @@ public class L2Npc extends L2Character
 	 */
 	public int getAggroRange()
 	{
-		return getTemplate().getAggroRange();
+		return _staticAIData.getAggroRange();
 	}
 	
 	/**
@@ -1542,14 +1541,14 @@ public class L2Npc extends L2Character
 		updateAbnormalEffect();
 	}
 	
-	public void setHideName(boolean val)
+	public boolean isShowName()
 	{
-		_isHideName = val;
+		return _staticAIData.showName();
 	}
 	
-	public boolean isHideName()
+	public boolean isTargetable()
 	{
-		return _isHideName;
+		return _staticAIData.isTargetable();
 	}
 	
 	public void setCollisionHeight(double height)

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2BlockInstance.java

@@ -43,7 +43,6 @@ public class L2BlockInstance extends L2MonsterInstance
 	public L2BlockInstance(int objectId, L2NpcTemplate template)
 	{
 		super(objectId, template);
-		this.setHideName(true);
 	}
 	
 	/**

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FlyTerrainObjectInstance.java

@@ -25,7 +25,6 @@ public final class L2FlyTerrainObjectInstance extends L2Npc
 	{
 		super(objectId, template);
 		setInstanceType(InstanceType.L2FlyTerrainObjectInstance);
-		_isHideName = true;
 	}
 	
 	@Override

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2MonsterInstance.java

@@ -93,7 +93,7 @@ public class L2MonsterInstance extends L2Attackable
 	@Override
 	public boolean isAggressive()
 	{
-		return (getTemplate().getAggroRange() > 0) && !isEventMob;
+		return (getAggroRange() > 0) && !isEventMob;
 	}
 	
 	@Override

+ 0 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2TerrainObjectInstance.java

@@ -24,7 +24,6 @@ public final class L2TerrainObjectInstance extends L2Npc
 	{
 		super(objectId, template);
 		setInstanceType(InstanceType.L2TerrainObjectInstance);
-		_isHideName = true;
 	}
 	
 	@Override

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/AbstractNpcInfo.java

@@ -82,7 +82,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 	 */
 	public static class NpcInfo extends AbstractNpcInfo
 	{
-		private L2Npc _npc;
+		private final L2Npc _npc;
 		private int _clanCrest = 0;
 		private int _allyCrest = 0;
 		private int _allyId = 0;
@@ -192,8 +192,8 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 			writeD(_npc.isFlying() ? 1 : 0); // C6
 			writeD(0x00);
 			writeD(_npc.getColorEffect());// CT1.5 Pet form and skills, Color effect
-			writeC(_npc.isHideName() ? 0x00 : 0x01);
-			writeC(_npc.isHideName() ? 0x00 : 0x01);
+			writeC(_npc.isShowName() ? 0x01 : 0x00);
+			writeC(_npc.isTargetable() ? 0x01 : 0x00);
 			writeD(_npc.getSpecialEffect());
 			writeD(_displayEffect);
 		}
@@ -201,7 +201,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 	
 	public static class TrapInfo extends AbstractNpcInfo
 	{
-		private L2Trap _trap;
+		private final L2Trap _trap;
 		
 		public TrapInfo(L2Trap cha, L2Character attacker)
 		{
@@ -290,7 +290,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
 	 */
 	public static class SummonInfo extends AbstractNpcInfo
 	{
-		private L2Summon _summon;
+		private final L2Summon _summon;
 		private int _form = 0;
 		private int _val = 0;
 		

+ 0 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/templates/chars/L2NpcTemplate.java

@@ -53,7 +53,6 @@ public final class L2NpcTemplate extends L2CharTemplate
 	private final byte _level;
 	private final int _rewardExp;
 	private final int _rewardSp;
-	private final int _aggroRange;
 	private final int _rHand;
 	private final int _lHand;
 	private final int _enchantEffect;
@@ -215,7 +214,6 @@ public final class L2NpcTemplate extends L2CharTemplate
 		_level = set.getByte("level");
 		_rewardExp = set.getInteger("rewardExp");
 		_rewardSp = set.getInteger("rewardSp");
-		_aggroRange = set.getInteger("aggroRange");
 		_rHand = set.getInteger("rhand");
 		_lHand = set.getInteger("lhand");
 		_enchantEffect = set.getInteger("enchant");
@@ -573,14 +571,6 @@ public final class L2NpcTemplate extends L2CharTemplate
 		_categories.clear();
 	}
 	
-	/**
-	 * @return the aggro range value.
-	 */
-	public int getAggroRange()
-	{
-		return _aggroRange;
-	}
-	
 	public L2NpcAIData getAIDataStatic()
 	{
 		return _AIdataStatic;