From 7ee3d49f004c77d3da599b55005be0aa4d4e36fc Mon Sep 17 00:00:00 2001
From: Adry_85 <Adrya85@hotmail.it>
Date: Tue, 9 Apr 2013 08:43:58 +0000
Subject: [PATCH] BETA: Avoid status update when amount of heal (cp, hp and mp)
 is 0. 	Reviewed by: UnAfraid

---
 .../scripts/handlers/effecthandlers/CpHeal.java   | 13 +++++++------
 .../handlers/effecthandlers/CpHealPercent.java    | 15 ++++++++-------
 .../scripts/handlers/effecthandlers/Heal.java     | 11 +++++++----
 .../handlers/effecthandlers/HealOverTime.java     |  6 +-----
 .../handlers/effecthandlers/HealPercent.java      | 15 +++++++--------
 .../scripts/handlers/effecthandlers/ManaHeal.java | 14 +++++++-------
 .../handlers/effecthandlers/ManaHealByLevel.java  | 13 +++++++------
 .../handlers/effecthandlers/ManaHealPercent.java  | 15 ++++++++-------
 8 files changed, 52 insertions(+), 50 deletions(-)

diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java
index 24e34ecc11..d258c439f9 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHeal.java
@@ -52,19 +52,20 @@ public class CpHeal extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
 		double amount = calc();
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
-		
-		target.setCurrentCp(amount + target.getCurrentCp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentCp(amount + target.getCurrentCp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java
index f0f6d74fbc..a841de31dc 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/CpHealPercent.java
@@ -51,23 +51,24 @@ public class CpHealPercent extends L2Effect
 		{
 			return false;
 		}
-		StatusUpdate su = new StatusUpdate(target);
+		
 		double amount = 0;
 		double power = calc();
 		boolean full = (power == 100.0);
 		
 		amount = full ? target.getMaxCp() : (target.getMaxCp() * power) / 100.0;
-		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp()), 0);
-		
-		target.setCurrentCp(amount + target.getCurrentCp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentCp(amount + target.getCurrentCp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_CP, (int) target.getCurrentCp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java
index 25d8d5c966..17b165076a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/Heal.java
@@ -101,10 +101,13 @@ public class Heal extends L2Effect
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0);
-		target.setCurrentHp(amount + target.getCurrentHp());
-		StatusUpdate su = new StatusUpdate(target);
-		su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
-		target.sendPacket(su);
+		if (amount != 0)
+		{
+			target.setCurrentHp(amount + target.getCurrentHp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
+			target.sendPacket(su);
+		}
 		
 		if (target.isPlayer())
 		{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java
index 020ccd094b..44c56e5e5a 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealOverTime.java
@@ -63,11 +63,7 @@ public class HealOverTime extends L2Effect
 	@Override
 	public boolean onActionTime()
 	{
-		if (getEffected().isDead())
-		{
-			return false;
-		}
-		else if (getEffected().isDoor())
+		if (getEffected().isDead() || getEffected().isDoor())
 		{
 			return false;
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java
index 76cafbf10f..8653a3e167 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java
@@ -52,18 +52,20 @@ public class HealPercent extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
 		double amount = 0;
 		double power = calc();
 		boolean full = (power == 100.0);
 		
 		amount = full ? target.getMaxHp() : (target.getMaxHp() * power) / 100.0;
-		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp()), 0);
-		
-		target.setCurrentHp(amount + target.getCurrentHp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentHp(amount + target.getCurrentHp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -74,11 +76,8 @@ public class HealPercent extends L2Effect
 		{
 			sm = SystemMessage.getSystemMessage(SystemMessageId.S1_HP_RESTORED);
 		}
-		
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java
index 48ffb3c485..194738dce7 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHeal.java
@@ -53,8 +53,6 @@ public class ManaHeal extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
-		
 		double amount = calc();
 		
 		if (!getSkill().isStatic())
@@ -64,9 +62,13 @@ public class ManaHeal extends L2Effect
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
-		
-		target.setCurrentMp(amount + target.getCurrentMp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentMp(amount + target.getCurrentMp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -79,8 +81,6 @@ public class ManaHeal extends L2Effect
 		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java
index 18f3d77365..8f6d822b4d 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealByLevel.java
@@ -53,7 +53,6 @@ public class ManaHealByLevel extends L2Effect
 			return false;
 		}
 		
-		StatusUpdate su = new StatusUpdate(target);
 		double amount = calc();
 		
 		// recharged mp influenced by difference between target level and skill level
@@ -107,9 +106,13 @@ public class ManaHealByLevel extends L2Effect
 		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
-		
-		target.setCurrentMp(amount + target.getCurrentMp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentMp(amount + target.getCurrentMp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -122,8 +125,6 @@ public class ManaHealByLevel extends L2Effect
 		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
-		target.sendPacket(su);
 		return true;
 	}
 	
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java
index 06cd62f7af..36589ca335 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java
@@ -51,18 +51,21 @@ public class ManaHealPercent extends L2Effect
 		{
 			return false;
 		}
-		StatusUpdate su = new StatusUpdate(target);
+		
 		double amount = 0;
 		double power = calc();
 		boolean full = (power == 100.0);
 		
 		amount = full ? target.getMaxMp() : (target.getMaxMp() * power) / 100.0;
-		
 		// Prevents overheal and negative amount
 		amount = Math.max(Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp()), 0);
-		
-		target.setCurrentMp(amount + target.getCurrentMp());
-		
+		if (amount != 0)
+		{
+			target.setCurrentMp(amount + target.getCurrentMp());
+			StatusUpdate su = new StatusUpdate(target);
+			su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
+			target.sendPacket(su);
+		}
 		SystemMessage sm;
 		if (getEffector().getObjectId() != target.getObjectId())
 		{
@@ -75,8 +78,6 @@ public class ManaHealPercent extends L2Effect
 		}
 		sm.addNumber((int) amount);
 		target.sendPacket(sm);
-		su.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp());
-		target.sendPacket(su);
 		return true;
 	}
 	
-- 
GitLab