All pastes #809425 Raw Edit

Someone

public text v1 · immutable
·published 2007-12-08 22:05 UTC
rendered paste body
Index: java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java	(revision 1408)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2NpcInstance.java	(working copy)
@@ -130,7 +130,8 @@
     protected RandomAnimationTask _rAniTask = null;
     private int _currentLHandId;  // normally this shouldn't change from the template, but there exist exceptions
     private int _currentRHandId;  // normally this shouldn't change from the template, but there exist exceptions
-
+    private int _currentCollisionHeight; // used for npc grow effect skills
+    private int _currentCollisionRadius; // used for npc grow effect skills
     /** Task launching the function onRandomAnimation() */
     protected class RandomAnimationTask implements Runnable
     {
@@ -265,7 +266,10 @@
         // initialize the "current" equipment
         _currentLHandId = getTemplate().lhand;
         _currentRHandId = getTemplate().rhand;
-
+        // initialize the "current" collisions
+        _currentCollisionHeight = getTemplate().collisionHeight;
+        _currentCollisionRadius = getTemplate().collisionRadius;
+        
         if (template == null)
         {
             _log.severe("No template for Npc. Please check your datapack is setup correctly.");
@@ -2136,7 +2140,8 @@
         // we do need to reset the weapons back to the initial templated weapon.
         _currentLHandId = getTemplate().lhand;
         _currentRHandId = getTemplate().rhand;
-
+        _currentCollisionHeight = getTemplate().collisionHeight;
+        _currentCollisionRadius = getTemplate().collisionRadius;
     	DecayTaskManager.getInstance().addDecayTask(this);
     	return true;
     }
@@ -2260,5 +2265,21 @@
     public void setRHandId(int newWeaponId)
     {
         _currentRHandId = newWeaponId;
-    }    
+    }
+    public void setCollisionHeight(int height)
+    {
+        _currentCollisionHeight = height;
+    }
+    public void setCollisionRadius(int radius)
+    {
+    	_currentCollisionRadius = radius;
+    }
+    public int getCollisionHeight()
+    {
+    	return _currentCollisionHeight;
+    }
+    public int getColisionRadius()
+    {
+    	return _currentCollisionRadius;
+    }
 }
Index: java/net/sf/l2j/gameserver/serverpackets/NpcInfo.java
===================================================================
--- java/net/sf/l2j/gameserver/serverpackets/NpcInfo.java	(revision 1408)
+++ java/net/sf/l2j/gameserver/serverpackets/NpcInfo.java	(working copy)
@@ -58,8 +58,8 @@
 		_rhand = cha.getRightHandItem(); 
 		_lhand = cha.getLeftHandItem(); 
 		_isSummoned = false;
-        _collisionHeight = _activeChar.getTemplate().collisionHeight;
-        _collisionRadius = _activeChar.getTemplate().collisionRadius;
+        _collisionHeight = cha.getCollisionHeight();
+        _collisionRadius = cha.getColisionRadius();
         if (cha.getTemplate().serverSideName)
         	_name = cha.getTemplate().name;
 
@@ -172,8 +172,8 @@
 		writeC(0000);  // C2
 
 		writeC(0x00);  // C3  team circle 1-blue, 2-red
-		writeF(_collisionRadius);  // C4 collisionRadius a second time
-		writeF(_collisionHeight);  // C4 collisionHeight     "
+		writeF(_collisionRadius);
+		writeF(_collisionHeight);
 		writeD(0x00);  // C4
 		writeD(0x00);  // C6
 	}