Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: data/scripts/handlers/skillhandlers/BalanceLife.java
- ===================================================================
- --- data/scripts/handlers/skillhandlers/BalanceLife.java (revision 8048)
- +++ data/scripts/handlers/skillhandlers/BalanceLife.java (working copy)
- @@ -95,8 +95,17 @@
- double newHP = target.getMaxHp() * percentHP;
- - target.setCurrentHp(newHP);
- + if (newHP > target.getCurrentHp()) // The target gets healed
- + {
- + // The heal will be blocked if the current hp passes the limit
- + if (target.getCurrentHp() > target.getMaxRecoverableHp())
- + newHP = target.getCurrentHp();
- + // Else dont let the newHP pass the limit
- + else if (newHP > target.getMaxRecoverableHp())
- + newHP = target.getMaxRecoverableHp();
- + }
- + target.setCurrentHp(newHP);
- StatusUpdate su = new StatusUpdate(target);
- su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
- target.sendPacket(su);
- Index: data/scripts/handlers/skillhandlers/CombatPointHeal.java
- ===================================================================
- --- data/scripts/handlers/skillhandlers/CombatPointHeal.java (revision 8048)
- +++ data/scripts/handlers/skillhandlers/CombatPointHeal.java (working copy)
- @@ -56,8 +56,11 @@
- double cp = skill.getPower();
- - if ((target.getCurrentCp() + cp) >= target.getMaxCp())
- - cp = target.getMaxCp() - target.getCurrentCp();
- + cp = Math.min(cp, target.getMaxRecoverableCp() - target.getCurrentCp());
- +
- + // Prevent negative amounts
- + if (cp < 0)
- + cp = 0;
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
- sm.addNumber((int) cp);
- Index: data/scripts/handlers/skillhandlers/Heal.java
- ===================================================================
- --- data/scripts/handlers/skillhandlers/Heal.java (revision 8048)
- +++ data/scripts/handlers/skillhandlers/Heal.java (working copy)
- @@ -174,8 +174,7 @@
- hp *= 3;
- //from CT2 u will receive exact HP, u can't go over it, if u have full HP and u get HP buff, u will receive 0HP restored message
- - if ((target.getCurrentHp() + hp) >= target.getMaxHp())
- - hp = target.getMaxHp() - target.getCurrentHp();
- + hp = Math.min(hp, target.getMaxRecoverableHp() - target.getCurrentHp());
- if (hp < 0)
- hp = 0;
- Index: data/scripts/handlers/skillhandlers/HealPercent.java
- ===================================================================
- --- data/scripts/handlers/skillhandlers/HealPercent.java (revision 8048)
- +++ data/scripts/handlers/skillhandlers/HealPercent.java (working copy)
- @@ -117,8 +117,15 @@
- else
- amount = target.getMaxCp() * skill.getPower() / 100.0;
- - amount = Math.min(amount, target.getMaxCp() - target.getCurrentCp());
- - target.setCurrentCp(amount + target.getCurrentCp());
- + amount = Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp());
- +
- + // Prevent negative amounts
- + if (amount < 0)
- + amount = 0;
- +
- + // To prevent -value heals, set the value only if current cp is less than max recoverable.
- + if (target.getCurrentCp() < target.getMaxRecoverableCp())
- + target.setCurrentCp(amount + target.getCurrentCp());
- sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
- sm.addNumber((int)amount);
- @@ -133,8 +140,15 @@
- else
- amount = target.getMaxHp() * skill.getPower() / 100.0;
- - amount = Math.min(amount, target.getMaxHp() - target.getCurrentHp());
- - target.setCurrentHp(amount + target.getCurrentHp());
- + amount = Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp());
- +
- + // Prevent negative amounts
- + if (amount < 0)
- + amount = 0;
- +
- + // To prevent -value heals, set the value only if current hp is less than max recoverable.
- + if (target.getCurrentHp() < target.getMaxRecoverableHp())
- + target.setCurrentHp(amount + target.getCurrentHp());
- if (targetPlayer)
- {
- @@ -158,8 +172,15 @@
- else
- amount = target.getMaxMp() * skill.getPower() / 100.0;
- - amount = Math.min(amount, target.getMaxMp() - target.getCurrentMp());
- - target.setCurrentMp(amount + target.getCurrentMp());
- + amount = Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp());
- +
- + // Prevent negative amounts
- + if (amount < 0)
- + amount = 0;
- +
- + // To prevent -value heals, set the value only if current mp is less than max recoverable.
- + if (target.getCurrentMp() < target.getMaxRecoverableMp())
- + target.setCurrentMp(amount + target.getCurrentMp());
- if (targetPlayer)
- {
- Index: data/scripts/handlers/skillhandlers/ManaHeal.java
- ===================================================================
- --- data/scripts/handlers/skillhandlers/ManaHeal.java (revision 8048)
- +++ data/scripts/handlers/skillhandlers/ManaHeal.java (working copy)
- @@ -93,8 +93,11 @@
- }
- //from CT2 u will receive exact MP, u can't go over it, if u have full MP and u get MP buff, u will receive 0MP restored message
- - if ((target.getCurrentMp() + mp) >= target.getMaxMp())
- - mp = target.getMaxMp() - target.getCurrentMp();
- + mp = Math.min(mp, target.getMaxRecoverableMp() - target.getCurrentMp());
- +
- + // Prevent negative amounts
- + if (mp < 0)
- + mp = 0;
- target.setCurrentMp(mp + target.getCurrentMp());
- StatusUpdate sump = new StatusUpdate(target);
- Index: data/stats/skills/01500-01599.xml
- ===================================================================
- --- data/stats/skills/01500-01599.xml (revision 8048)
- +++ data/stats/skills/01500-01599.xml (working copy)
- @@ -202,9 +202,9 @@
- <set name="operateType" val="OP_ACTIVE" />
- <for>
- <effect name="Debuff" abnormalTime="300" val="0" abnormalLvl="3" abnormalType="limit">
- - <mul order="0x30" stat="regHp" val="0.3" />
- - <mul order="0x30" stat="regCp" val="0.3" />
- - <mul order="0x30" stat="regMp" val="0.3" />
- + <mul order="0x30" stat="maxRecoverableHp" val="0.3" />
- + <mul order="0x30" stat="maxRecoverableMp" val="0.3" />
- + <mul order="0x30" stat="maxRecoverableCp" val="0.3" />
- </effect>
- </for>
- </skill>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement