瀏覽代碼

BETA: Minor updates and cleanup:
* Unhardcoded Adena Id in ExEnchantSkillInfoDetail.
* Cleanup for invalid task in PetStat.
* Cleanup and code format in L2NpcAIData.
* Code refactoring in L2Npc.

Zoey76 13 年之前
父節點
當前提交
e866d05608

+ 43 - 67
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2NpcAIData.java

@@ -21,18 +21,12 @@ package com.l2jserver.gameserver.model;
 import com.l2jserver.gameserver.templates.chars.L2NpcTemplate.AIType;
 
 /**
- * Author: ShanSoft
- * By L2JTW
- * 
- * 
+ * This Data is for NPC Attributes and AI related stuffs.<br>
+ * @author ShanSoft
  */
-
-// This Data is for NPC Attributes and AI relate stuffs...
-// Still need to finish...Update later...
 public class L2NpcAIData
 {
-	
-	//Basic AI
+	// Basic AI
 	private int _primarySkillId;
 	private int _minskillChance;
 	private int _maxskillChance;
@@ -46,8 +40,6 @@ public class L2NpcAIData
 	private int _clanRange;
 	private String _enemyClan = null;
 	private int _enemyRange;
-	//private int _baseShldRate;
-	//private int _baseShldDef;
 	private int _dodge;
 	private int _longRangeSkill;
 	private int _shortRangeSkill;
@@ -56,16 +48,13 @@ public class L2NpcAIData
 	private int _switchRangeChance;
 	private AIType _aiType = AIType.FIGHTER;
 	
-	//--------------------------------------------------------------------------------------------------------------
-	//Setting....
-	//--------------------------------------------------------------------------------------------------------------
 	public void setPrimarySkillId(int primarySkillId)
 	{
 		_primarySkillId = primarySkillId;
 	}
 	
 	public void setMinSkillChance(int skill_chance)
-	{	
+	{
 		_minskillChance = skill_chance;
 	}
 	
@@ -76,12 +65,12 @@ public class L2NpcAIData
 	
 	public void setCanMove(int canMove)
 	{
-		_canMove = canMove;	
+		_canMove = canMove;
 	}
 	
 	public void setSoulShot(int soulshot)
 	{
-		_soulshot = soulshot;	
+		_soulshot = soulshot;
 	}
 	
 	public void setSpiritShot(int spiritshot)
@@ -91,12 +80,12 @@ public class L2NpcAIData
 	
 	public void setSoulShotChance(int soulshotchance)
 	{
-		_soulshotChance = soulshotchance;	
+		_soulshotChance = soulshotchance;
 	}
 	
 	public void setSpiritShotChance(int spiritshotchance)
 	{
-		_spiritshotChance = spiritshotchance;	
+		_spiritshotChance = spiritshotchance;
 	}
 	
 	public void setShortRangeSkill(int shortrangeskill)
@@ -111,7 +100,7 @@ public class L2NpcAIData
 	
 	public void setLongRangeSkill(int longrangeskill)
 	{
-		_longRangeSkill = longrangeskill;	
+		_longRangeSkill = longrangeskill;
 	}
 	
 	public void setLongRangeChance(int longrangechance)
@@ -131,8 +120,10 @@ public class L2NpcAIData
 	
 	public void setClan(String clan)
 	{
-		if (clan != null && !clan.equals("") && !clan.equalsIgnoreCase("null"))
+		if ((clan != null) && !clan.equals("") && !clan.equalsIgnoreCase("null"))
+		{
 			_clan = clan.intern();
+		}
 	}
 	
 	public void setClanRange(int clanRange)
@@ -142,13 +133,15 @@ public class L2NpcAIData
 	
 	public void setEnemyClan(String enemyClan)
 	{
-		if (enemyClan != null && !enemyClan.equals("") && !enemyClan.equalsIgnoreCase("null"))
+		if ((enemyClan != null) && !enemyClan.equals("") && !enemyClan.equalsIgnoreCase("null"))
+		{
 			_enemyClan = enemyClan.intern();
+		}
 	}
 	
 	public void setEnemyRange(int enemyRange)
 	{
-		_enemyRange = enemyRange;	
+		_enemyRange = enemyRange;
 	}
 	
 	public void setDodge(int dodge)
@@ -159,35 +152,31 @@ public class L2NpcAIData
 	public void setAi(String ai)
 	{
 		if (ai.equalsIgnoreCase("archer"))
+		{
 			_aiType = AIType.ARCHER;
+		}
 		else if (ai.equalsIgnoreCase("balanced"))
+		{
 			_aiType = AIType.BALANCED;
+		}
 		else if (ai.equalsIgnoreCase("mage"))
+		{
 			_aiType = AIType.MAGE;
+		}
 		else if (ai.equalsIgnoreCase("healer"))
+		{
 			_aiType = AIType.HEALER;
+		}
 		else if (ai.equalsIgnoreCase("corpse"))
+		{
 			_aiType = AIType.CORPSE;
+		}
 		else
+		{
 			_aiType = AIType.FIGHTER;
+		}
 	}
 	
-	/*
-	
-	public void setBaseShldRate(int baseShldRate)
-	{
-		_baseShldRate = baseShldRate;	
-	}
-	
-	public void setBaseShldDef(int baseShldDef)
-	{
-		_baseShldDef = baseShldDef;	
-	}
-	 */
-	
-	//--------------------------------------------------------------------------------------------------------------
-	//Data Recall....
-	//--------------------------------------------------------------------------------------------------------------
 	public int getPrimarySkillId()
 	{
 		return _primarySkillId;
@@ -205,62 +194,62 @@ public class L2NpcAIData
 	
 	public int getCanMove()
 	{
-		return _canMove;	
+		return _canMove;
 	}
 	
 	public int getSoulShot()
 	{
-		return _soulshot;	
+		return _soulshot;
 	}
 	
 	public int getSpiritShot()
 	{
-		return _spiritshot;	
+		return _spiritshot;
 	}
 	
 	public int getSoulShotChance()
 	{
-		return _soulshotChance;	
+		return _soulshotChance;
 	}
 	
 	public int getSpiritShotChance()
 	{
-		return _spiritshotChance;	
+		return _spiritshotChance;
 	}
 	
 	public int getShortRangeSkill()
 	{
-		return _shortRangeSkill;	
+		return _shortRangeSkill;
 	}
 	
 	public int getShortRangeChance()
 	{
-		return _shortRangeChance;	
+		return _shortRangeChance;
 	}
 	
 	public int getLongRangeSkill()
 	{
-		return _longRangeSkill;	
+		return _longRangeSkill;
 	}
 	
 	public int getLongRangeChance()
 	{
-		return _longRangeChance;	
+		return _longRangeChance;
 	}
 	
 	public int getSwitchRangeChance()
 	{
-		return _switchRangeChance;	
+		return _switchRangeChance;
 	}
 	
 	public int getIsChaos()
 	{
-		return _isChaos;	
+		return _isChaos;
 	}
 	
 	public String getClan()
 	{
-		return _clan;	
+		return _clan;
 	}
 	
 	public int getClanRange()
@@ -270,34 +259,21 @@ public class L2NpcAIData
 	
 	public String getEnemyClan()
 	{
-		return _enemyClan;	
+		return _enemyClan;
 	}
 	
 	public int getEnemyRange()
 	{
-		return _enemyRange;	
+		return _enemyRange;
 	}
 	
 	public int getDodge()
 	{
-		return _dodge;	
+		return _dodge;
 	}
 	
 	public AIType getAiType()
 	{
 		return _aiType;
 	}
-	
-	/*
-	
-	public int getBaseShldRate()
-	{
-		return _baseShldRate;	
-	}
-	
-	public int getBaseShldDef()
-	{
-		return _baseShldDef;	
-	}
-	 */
 }

+ 35 - 63
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -139,33 +139,27 @@ public class L2Npc extends L2Character
 	protected boolean _isHideName = false;
 	private int _displayEffect = 0;
 	
+	private final L2NpcAIData _staticAIData = getTemplate().getAIDataStatic();
+	
 	//AI Recall
 	public int getSoulShot()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getSoulShot();
-		
+		return _staticAIData.getSoulShot();
 	}
 	
 	public int getSpiritShot()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getSpiritShot();
-		
+		return _staticAIData.getSpiritShot();
 	}
 	
 	public int getSoulShotChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getSoulShotChance();
-		
+		return _staticAIData.getSoulShotChance();
 	}
 	
 	public int getSpiritShotChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getSpiritShotChance();
-		
+		return _staticAIData.getSpiritShotChance();
 	}
 	
 	public boolean useSoulShot()
@@ -220,97 +214,82 @@ public class L2Npc extends L2Character
 	
 	public int getEnemyRange()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getEnemyRange();
+		return _staticAIData.getEnemyRange();
 	}
 	
 	public String getEnemyClan()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getEnemyClan();
+		return _staticAIData.getEnemyClan();
 	}
 	
 	public int getClanRange()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getClanRange();
+		return _staticAIData.getClanRange();
 	}
 	
 	public String getClan()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getClan();
+		return _staticAIData.getClan();
 	}
 	
-	// GET THE PRIMARY ATTACK
+	/**
+	 * @return the primary attack.
+	 */
 	public int getPrimarySkillId()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getPrimarySkillId();	
+		return _staticAIData.getPrimarySkillId();	
 	}
 	
 	public int getMinSkillChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getMinSkillChance();
+		return _staticAIData.getMinSkillChance();
 	}
 	
 	public int getMaxSkillChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getMaxSkillChance();
+		return _staticAIData.getMaxSkillChance();
 	}
 	
 	public int getCanMove()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getCanMove();
+		return _staticAIData.getCanMove();
 	}
 	
 	public int getIsChaos()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getIsChaos();
+		return _staticAIData.getIsChaos();
 	}
 	
 	public int getCanDodge()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getDodge();
+		return _staticAIData.getDodge();
 	}
 	
 	public int getSSkillChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getShortRangeChance();
+		return _staticAIData.getShortRangeChance();
 	}
 	
 	public int getLSkillChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getLongRangeChance();
+		return _staticAIData.getLongRangeChance();
 	}
 	
 	public int getSwitchRangeChance()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		return AI.getSwitchRangeChance();	
+		return _staticAIData.getSwitchRangeChance();	
 	}
 	
 	public boolean hasLSkill()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		
-		if (AI.getLongRangeSkill() == 0)
+		if (_staticAIData.getLongRangeSkill() == 0)
 			return false;
 		return true;
 	}
 	
 	public boolean hasSSkill()
 	{
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		
-		if (AI.getShortRangeSkill() == 0)
+		if (_staticAIData.getShortRangeSkill() == 0)
 			return false;
 		return true;
 	}
@@ -319,12 +298,10 @@ public class L2Npc extends L2Character
 	{
 		FastList<L2Skill> skilldata = new FastList<L2Skill>();
 		boolean hasLrange = false;
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		
-		if (AI == null || AI.getLongRangeSkill() == 0)
+		if (_staticAIData == null || _staticAIData.getLongRangeSkill() == 0)
 			return null;
 		
-		switch (AI.getLongRangeSkill())
+		switch (_staticAIData.getLongRangeSkill())
 		{
 			case -1:
 			{
@@ -365,7 +342,7 @@ public class L2Npc extends L2Character
 			{
 				for (L2Skill sk : getAllSkills())
 				{
-					if (sk.getId() == AI.getLongRangeSkill())
+					if (sk.getId() == _staticAIData.getLongRangeSkill())
 					{
 						skilldata.add(sk);
 						hasLrange = true;
@@ -381,12 +358,10 @@ public class L2Npc extends L2Character
 	{
 		FastList<L2Skill> skilldata = new FastList<L2Skill>();
 		boolean hasSrange = false;
-		L2NpcAIData AI = getTemplate().getAIDataStatic();
-		
-		if (AI == null || AI.getShortRangeSkill() == 0)
+		if (_staticAIData == null || _staticAIData.getShortRangeSkill() == 0)
 			return null;
 		
-		switch (AI.getShortRangeSkill())
+		switch (_staticAIData.getShortRangeSkill())
 		{
 			case -1:
 			{
@@ -427,7 +402,7 @@ public class L2Npc extends L2Character
 			{
 				for (L2Skill sk : getAllSkills())
 				{
-					if (sk.getId() == AI.getShortRangeSkill())
+					if (sk.getId() == _staticAIData.getShortRangeSkill())
 					{
 						skilldata.add(sk);
 						hasSrange = true;
@@ -782,8 +757,7 @@ public class L2Npc extends L2Character
 	}
 	
 	/**
-	 * Set the busy status of this L2NpcInstance.<BR><BR>
-	 * @param isBusy 
+	 * @param isBusy the busy status of this L2Npc
 	 */
 	public void setBusy(boolean isBusy)
 	{
@@ -799,8 +773,7 @@ public class L2Npc extends L2Character
 	}
 	
 	/**
-	 * Set the busy message of this L2NpcInstance.<BR><BR>
-	 * @param message 
+	 * @param message the busy message of this L2Npc.
 	 */
 	public void setBusyMessage(String message)
 	{
@@ -835,8 +808,6 @@ public class L2Npc extends L2Character
 	
 	public boolean canInteract(L2PcInstance player)
 	{
-		// TODO: NPC busy check etc...
-		
 		if (player.isCastingNow() || player.isCastingSimultaneouslyNow())
 			return false;
 		if (player.isDead() || player.isFakeDeath())
@@ -849,7 +820,8 @@ public class L2Npc extends L2Character
 			return false;
 		if (player.getInstanceId() != getInstanceId() && player.getInstanceId() != -1)
 			return false;
-		
+		if (isBusy())
+			return false;
 		return true;
 	}
 	
@@ -1695,7 +1667,7 @@ public class L2Npc extends L2Character
 	
 	public AIType getAiType()
 	{
-		return getTemplate().getAIDataStatic().getAiType();
+		return _staticAIData.getAiType();
 	}
 	
 	public void setDisplayEffect(int val)

+ 0 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/stat/PetStat.java

@@ -66,9 +66,6 @@ public class PetStat extends SummonStat
 		// Sync up exp with current level
 		//if (getExp() > getExpForLevel(getLevel() + 1) || getExp() < getExpForLevel(getLevel())) setExp(Experience.LEVEL[getLevel()]);
 		
-		//TODO : proper system msg if is any
-		//if (levelIncreased) getActiveChar().getOwner().sendMessage("Your pet has increased it's level.");
-		
 		StatusUpdate su = new StatusUpdate(getActiveChar());
 		su.addAttribute(StatusUpdate.LEVEL, getLevel());
 		su.addAttribute(StatusUpdate.MAX_HP, getMaxHp());

+ 3 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExEnchantSkillInfoDetail.java

@@ -19,6 +19,7 @@ import com.l2jserver.gameserver.datatables.EnchantGroupsTable;
 import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillDetail;
 import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 
 /**
  * 
@@ -123,8 +124,8 @@ public class ExEnchantSkillInfoDetail extends L2GameServerPacket
 		writeD(_sp * multi); // sp
 		writeD(_chance); // exp
 		writeD(2); // items count?
-		writeD(57); // adena //TODO unhardcode me
-		writeD(_adenacount); // adena count
+		writeD(PcInventory.ADENA_ID); // Adena
+		writeD(_adenacount); // Adena count
 		writeD(bookId); // ItemId Required
 		writeD(reqCount);
 	}