From 727fca98275cee3b03bdc156d3bbd4b5f9f2bc0c Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sun, 28 Jun 2020 00:14:49 +0000 Subject: [PATCH] Fixed negative healing when player has limiting effects. Contributed by Sahar. --- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Cp.java | 4 ++-- .../dist/game/data/scripts/handlers/effecthandlers/Heal.java | 2 +- .../data/scripts/handlers/effecthandlers/HealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Hp.java | 4 ++-- .../data/scripts/handlers/effecthandlers/ManaHealPercent.java | 2 +- .../dist/game/data/scripts/handlers/effecthandlers/Mp.java | 4 ++-- 90 files changed, 135 insertions(+), 135 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_5.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_5.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_6.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 431f7647d9..dc8abd913c 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_7.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Heal.java index b0f0d08e09..d4e2f93045 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Heal.java index b0f0d08e09..d4e2f93045 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Heal.java index b0f0d08e09..d4e2f93045 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Heal.java index b0f0d08e09..d4e2f93045 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index fc2bd62ddd..b92b18065d 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Hp.java index d977d0c4a3..c9a9771ac9 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Heal.java index b0f0d08e09..d4e2f93045 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index fc2bd62ddd..b92b18065d 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Hp.java index d977d0c4a3..c9a9771ac9 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Heal.java index 80a9b8826f..25fb03469a 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -130,7 +130,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index fff03c405e..2d248a42d5 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -75,7 +75,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Hp.java index 169c81477c..4a6d2342fe 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -71,12 +71,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Cp.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Cp.java index 4af3d76b58..b75794fe7a 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Cp.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Cp.java @@ -66,12 +66,12 @@ public class Cp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } case PER: { - amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, effected.getMaxRecoverableCp() - effected.getCurrentCp()); + amount = Math.min((effected.getMaxCp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableCp() - effected.getCurrentCp())); break; } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Heal.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Heal.java index b0f0d08e09..d4e2f93045 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Heal.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Heal.java @@ -125,7 +125,7 @@ public class Heal extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount != 0) { final double newHp = amount + effected.getCurrentHp(); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java index 924285a2bc..d985e4f723 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HealPercent.java @@ -70,7 +70,7 @@ public class HealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); if (amount >= 0) { if (amount != 0) diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Hp.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Hp.java index e24a1a7887..473d494b37 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Hp.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Hp.java @@ -66,12 +66,12 @@ public class Hp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } case PER: { - amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, effected.getMaxRecoverableHp() - effected.getCurrentHp()); + amount = Math.min((effected.getMaxHp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableHp() - effected.getCurrentHp())); break; } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java index 0a667c33d1..44215790d1 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/ManaHealPercent.java @@ -70,7 +70,7 @@ public class ManaHealPercent extends AbstractEffect } // Prevents overheal - amount = Math.min(amount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(amount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); if (amount != 0) { final double newMp = amount + effected.getCurrentMp(); diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Mp.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Mp.java index 2563f11eaa..6a71cd6569 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Mp.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/Mp.java @@ -66,12 +66,12 @@ public class Mp extends AbstractEffect { case DIFF: { - amount = Math.min(basicAmount, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min(basicAmount, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } case PER: { - amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, effected.getMaxRecoverableMp() - effected.getCurrentMp()); + amount = Math.min((effected.getMaxMp() * basicAmount) / 100.0, Math.max(0, effected.getMaxRecoverableMp() - effected.getCurrentMp())); break; } }