소스 검색

Retail like damage messages for summons and pets, thanks Gnacik for info.
Also fixed stupid bug with wrong argument.

_DS_ 15 년 전
부모
커밋
81b77470ea

+ 0 - 14
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/L2Character.java

@@ -5205,20 +5205,6 @@ public abstract class L2Character extends L2Object
 		              enemy.sendPacket(new SystemMessage(SystemMessageId.SHIELD_DEFENCE_SUCCESSFULL)); 
 				}*/
 			}
-            else if (target instanceof L2Summon)
-            {
-                L2Summon activeSummon = (L2Summon)target;
-                L2PcInstance owner = activeSummon.getOwner();
-
-                if (owner != null)
-                {
-                	owner.getAI().clientStartAutoAttack();
-                	SystemMessage sm = new SystemMessage(SystemMessageId.PET_RECEIVED_S2_DAMAGE_BY_C1);
-                	sm.addString(getName());
-                	sm.addNumber(damage);
-                	owner.sendPacket(sm);
-                }
-            }
 
 			if (!miss && damage > 0)
 			{

+ 15 - 16
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/L2Summon.java

@@ -767,7 +767,8 @@ public abstract class L2Summon extends L2Playable
 	@Override
 	public void sendDamageMessage(L2Character target, int damage, boolean mcrit, boolean pcrit, boolean miss)
 	{
-		if (miss) return;
+		if (miss || getOwner() == null)
+			return;
 
 		// Prevents the double spam of system messages, if the target is the owning player.
 		if (target.getObjectId() != getOwner().getObjectId())
@@ -792,11 +793,9 @@ public abstract class L2Summon extends L2Playable
 				sm = new SystemMessage(SystemMessageId.ATTACK_WAS_BLOCKED);
 			else
 			{
-				if (this instanceof L2SummonInstance)
-					sm = new SystemMessage(SystemMessageId.SUMMON_GAVE_DAMAGE_S1);
-				else
-					sm = new SystemMessage(SystemMessageId.PET_HIT_FOR_S1_DAMAGE);
-				
+				sm = new SystemMessage(SystemMessageId.C1_RECEIVED_DAMAGE_OF_S3_FROM_C2);
+				sm.addCharName(target);
+				sm.addNpcName(this);
 				sm.addNumber(damage);
 			}
 			
@@ -804,18 +803,18 @@ public abstract class L2Summon extends L2Playable
 		}
 	}
 
-	public void reduceCurrentHp(int damage, L2Character attacker, L2Skill skill)
+	@Override
+	public void reduceCurrentHp(double damage, L2Character attacker, L2Skill skill)
 	{
 		super.reduceCurrentHp(damage, attacker, skill);
-		SystemMessage sm;
-		if (this instanceof L2SummonInstance)
-			sm = new SystemMessage(SystemMessageId.SUMMON_RECEIVED_DAMAGE_S2_BY_S1);
-		else
-			sm = new SystemMessage(SystemMessageId.PET_RECEIVED_S2_DAMAGE_BY_C1);
-
-		sm.addCharName(attacker);
-		sm.addNumber(damage);
-		getOwner().sendPacket(sm);
+		if (getOwner() != null)
+		{
+			SystemMessage sm = new SystemMessage(SystemMessageId.C1_RECEIVED_DAMAGE_OF_S3_FROM_C2);
+			sm.addNpcName(this);
+			sm.addCharName(attacker);
+			sm.addNumber((int)damage);
+			getOwner().sendPacket(sm);
+		}
     }
 
 	@Override

+ 1 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2MerchantSummonInstance.java

@@ -131,7 +131,7 @@ public class L2MerchantSummonInstance extends L2SummonInstance
 	}
 
 	@Override
-	public void reduceCurrentHp(int damage, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHp(double i, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
 	{
 
 	}