Sfoglia il codice sorgente

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 anni fa
parent
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;