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