diff --git a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_01.0_Ertheia/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_02.5_Underground/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_03.0_Helios/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_04.0_GrandCrusade/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_05.0_Salvation/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_05.5_EtinasFate/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_06.0_Fafurion/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 1b805a222f..9899e829bc 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index ad667b49bf..dc799a8229 100644 --- a/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_10.2_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_10.3_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_10.3_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index ad667b49bf..dc799a8229 100644 --- a/L2J_Mobius_10.3_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_10.3_MasterClass/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_1.0/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_1.0/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_1.0/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_1.0/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_2.5_Zaken/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_2.5_Zaken/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_2.5_Zaken/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_2.7_Antharas/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_2.7_Antharas/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_2.7_Antharas/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_2.9.5_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_2.9.5_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_2.9.5_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_2.9.5_Saviors/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/skill/CommonSkill.java b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/skill/CommonSkill.java index bd99261a59..5a1c972e86 100644 --- a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/skill/CommonSkill.java +++ b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/skill/CommonSkill.java @@ -58,8 +58,7 @@ public enum CommonSkill ALCHEMY_CUBE(17943, 1), ALCHEMY_CUBE_RANDOM_SUCCESS(17966, 1), PET_SWITCH_STANCE(6054, 1), - WEIGHT_PENALTY(4270, 1), - POTION_MASTERY(45184, 1); + WEIGHT_PENALTY(4270, 1); private final SkillHolder _holder; diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index a3b247cd0c..8e2b253994 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); // Classic Potion Mastery // TODO: Create an effect if more mastery skills are added. @@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 5a155cf823..f709ae63ed 100644 --- a/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Classic_Interlude/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -34,7 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -122,9 +122,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); } // Prevents overheal and negative amount @@ -137,10 +142,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -154,28 +156,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index a3b247cd0c..8e2b253994 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); // Classic Potion Mastery // TODO: Create an effect if more mastery skills are added. @@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index a3b247cd0c..8e2b253994 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); // Classic Potion Mastery // TODO: Create an effect if more mastery skills are added. @@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S1_CP_HAS_BEEN_RESTORED); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 59efdbca71..f51030b24b 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); // Classic Potion Mastery // TODO: Create an effect if more mastery skills are added. @@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } -} +} \ No newline at end of file diff --git a/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java b/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java index 59efdbca71..f51030b24b 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java +++ b/L2J_Mobius_Essence_6.3_Crusader/dist/game/data/scripts/handlers/effecthandlers/HpCpHeal.java @@ -35,7 +35,7 @@ import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; /** * HpCpHeal effect implementation. - * @author Sdw + * @author Sdw, Mobius */ public class HpCpHeal extends AbstractEffect { @@ -123,9 +123,14 @@ public class HpCpHeal extends AbstractEffect // Additional potion HP. double additionalHp = 0; + + // Additional potion CP. + double additionalCp = 0; + if ((item != null) && (item.isPotion() || item.isElixir())) { additionalHp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_HP, 0); + additionalCp = effected.getStat().getValue(Stat.ADDITIONAL_POTION_CP, 0); // Classic Potion Mastery // TODO: Create an effect if more mastery skills are added. @@ -142,10 +147,7 @@ public class HpCpHeal extends AbstractEffect additionalHp = Math.max(effected.getMaxRecoverableHp() - newHp, 0); } effected.setCurrentHp(newHp + additionalHp, false); - } - - if (effected.isPlayer()) - { + if (effector.isPlayer() && (effector != effected)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_HP_HAS_BEEN_RESTORED_BY_C1); @@ -159,28 +161,37 @@ public class HpCpHeal extends AbstractEffect sm.addInt((int) (healAmount + additionalHp)); effected.sendPacket(sm); } - + } + + // CP recovery. + if (effected.isPlayer()) + { amount = Math.max(Math.min(amount - healAmount, effected.getMaxRecoverableCp() - effected.getCurrentCp()), 0); if (amount != 0) { final double newCp = amount + effected.getCurrentCp(); - effected.setCurrentCp(newCp, false); - } - - if (effector.isPlayer() && (effector != effected)) - { - final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); - sm.addString(effector.getName()); - sm.addInt((int) amount); - effected.sendPacket(sm); - } - else - { - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); - sm.addInt((int) amount); - effected.sendPacket(sm); + if ((newCp + additionalCp) > effected.getMaxRecoverableCp()) + { + additionalCp = Math.max(effected.getMaxRecoverableCp() - newCp, 0); + } + effected.setCurrentCp(newCp + additionalCp, false); + + if (effector != effected) + { + final SystemMessage sm = new SystemMessage(SystemMessageId.S2_CP_HAS_BEEN_RESTORED_BY_C1); + sm.addString(effector.getName()); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } + else + { + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_RECOVER_S1_CP); + sm.addInt((int) (amount + additionalCp)); + effected.sendPacket(sm); + } } } + effected.broadcastStatusUpdate(effector); } -} +} \ No newline at end of file