Advertisement
Nik

Seal of Limit fix DP

Nik
Jun 7th, 2011
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 6.19 KB | None | 0 0
  1. Index: data/scripts/handlers/skillhandlers/BalanceLife.java
  2. ===================================================================
  3. --- data/scripts/handlers/skillhandlers/BalanceLife.java    (revision 8048)
  4. +++ data/scripts/handlers/skillhandlers/BalanceLife.java    (working copy)
  5. @@ -95,8 +95,17 @@
  6.            
  7.             double newHP = target.getMaxHp() * percentHP;
  8.            
  9. -           target.setCurrentHp(newHP);
  10. +           if (newHP > target.getCurrentHp()) // The target gets healed
  11. +           {
  12. +               // The heal will be blocked if the current hp passes the limit
  13. +               if (target.getCurrentHp() > target.getMaxRecoverableHp())
  14. +                   newHP = target.getCurrentHp();
  15. +               // Else dont let the newHP pass the limit
  16. +               else if (newHP > target.getMaxRecoverableHp())
  17. +                   newHP = target.getMaxRecoverableHp();
  18. +           }
  19.            
  20. +           target.setCurrentHp(newHP);
  21.             StatusUpdate su = new StatusUpdate(target);
  22.             su.addAttribute(StatusUpdate.CUR_HP, (int) target.getCurrentHp());
  23.             target.sendPacket(su);
  24. Index: data/scripts/handlers/skillhandlers/CombatPointHeal.java
  25. ===================================================================
  26. --- data/scripts/handlers/skillhandlers/CombatPointHeal.java    (revision 8048)
  27. +++ data/scripts/handlers/skillhandlers/CombatPointHeal.java    (working copy)
  28. @@ -56,8 +56,11 @@
  29.            
  30.             double cp = skill.getPower();
  31.            
  32. -           if ((target.getCurrentCp() + cp) >= target.getMaxCp())
  33. -               cp = target.getMaxCp() - target.getCurrentCp();
  34. +           cp = Math.min(cp, target.getMaxRecoverableCp() - target.getCurrentCp());
  35. +          
  36. +           // Prevent negative amounts
  37. +           if (cp < 0)
  38. +               cp = 0;
  39.            
  40.             SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
  41.             sm.addNumber((int) cp);
  42. Index: data/scripts/handlers/skillhandlers/Heal.java
  43. ===================================================================
  44. --- data/scripts/handlers/skillhandlers/Heal.java   (revision 8048)
  45. +++ data/scripts/handlers/skillhandlers/Heal.java   (working copy)
  46. @@ -174,8 +174,7 @@
  47.                 hp *= 3;
  48.            
  49.             //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
  50. -           if ((target.getCurrentHp() + hp) >= target.getMaxHp())
  51. -               hp = target.getMaxHp() - target.getCurrentHp();
  52. +           hp = Math.min(hp, target.getMaxRecoverableHp() - target.getCurrentHp());
  53.            
  54.             if (hp < 0)
  55.                 hp = 0;
  56. Index: data/scripts/handlers/skillhandlers/HealPercent.java
  57. ===================================================================
  58. --- data/scripts/handlers/skillhandlers/HealPercent.java    (revision 8048)
  59. +++ data/scripts/handlers/skillhandlers/HealPercent.java    (working copy)
  60. @@ -117,8 +117,15 @@
  61.                 else
  62.                     amount = target.getMaxCp() * skill.getPower() / 100.0;
  63.                
  64. -               amount = Math.min(amount, target.getMaxCp() - target.getCurrentCp());
  65. -               target.setCurrentCp(amount + target.getCurrentCp());
  66. +               amount = Math.min(amount, target.getMaxRecoverableCp() - target.getCurrentCp());
  67. +              
  68. +               // Prevent negative amounts
  69. +               if (amount < 0)
  70. +                   amount = 0;
  71. +              
  72. +               // To prevent -value heals, set the value only if current cp is less than max recoverable.
  73. +               if (target.getCurrentCp() < target.getMaxRecoverableCp())
  74. +                   target.setCurrentCp(amount + target.getCurrentCp());
  75.                
  76.                 sm = SystemMessage.getSystemMessage(SystemMessageId.S1_CP_WILL_BE_RESTORED);
  77.                 sm.addNumber((int)amount);
  78. @@ -133,8 +140,15 @@
  79.                 else
  80.                     amount = target.getMaxHp() * skill.getPower() / 100.0;
  81.                
  82. -               amount = Math.min(amount, target.getMaxHp() - target.getCurrentHp());
  83. -               target.setCurrentHp(amount + target.getCurrentHp());
  84. +               amount = Math.min(amount, target.getMaxRecoverableHp() - target.getCurrentHp());
  85. +              
  86. +               // Prevent negative amounts
  87. +               if (amount < 0)
  88. +                   amount = 0;
  89. +              
  90. +               // To prevent -value heals, set the value only if current hp is less than max recoverable.
  91. +               if (target.getCurrentHp() < target.getMaxRecoverableHp())
  92. +                   target.setCurrentHp(amount + target.getCurrentHp());
  93.                
  94.                 if (targetPlayer)
  95.                 {
  96. @@ -158,8 +172,15 @@
  97.                 else
  98.                     amount = target.getMaxMp() * skill.getPower() / 100.0;
  99.                
  100. -               amount = Math.min(amount, target.getMaxMp() - target.getCurrentMp());
  101. -               target.setCurrentMp(amount + target.getCurrentMp());
  102. +               amount = Math.min(amount, target.getMaxRecoverableMp() - target.getCurrentMp());
  103. +              
  104. +               // Prevent negative amounts
  105. +               if (amount < 0)
  106. +                   amount = 0;
  107. +              
  108. +               // To prevent -value heals, set the value only if current mp is less than max recoverable.
  109. +               if (target.getCurrentMp() < target.getMaxRecoverableMp())
  110. +                   target.setCurrentMp(amount + target.getCurrentMp());
  111.                
  112.                 if (targetPlayer)
  113.                 {
  114. Index: data/scripts/handlers/skillhandlers/ManaHeal.java
  115. ===================================================================
  116. --- data/scripts/handlers/skillhandlers/ManaHeal.java   (revision 8048)
  117. +++ data/scripts/handlers/skillhandlers/ManaHeal.java   (working copy)
  118. @@ -93,8 +93,11 @@
  119.             }
  120.            
  121.             //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
  122. -           if ((target.getCurrentMp() + mp) >= target.getMaxMp())
  123. -               mp = target.getMaxMp() - target.getCurrentMp();
  124. +           mp = Math.min(mp, target.getMaxRecoverableMp() - target.getCurrentMp());
  125. +          
  126. +           // Prevent negative amounts
  127. +           if (mp < 0)
  128. +               mp = 0;
  129.            
  130.             target.setCurrentMp(mp + target.getCurrentMp());
  131.             StatusUpdate sump = new StatusUpdate(target);
  132. Index: data/stats/skills/01500-01599.xml
  133. ===================================================================
  134. --- data/stats/skills/01500-01599.xml   (revision 8048)
  135. +++ data/stats/skills/01500-01599.xml   (working copy)
  136. @@ -202,9 +202,9 @@
  137.         <set name="operateType" val="OP_ACTIVE" />
  138.         <for>
  139.             <effect name="Debuff" abnormalTime="300" val="0" abnormalLvl="3" abnormalType="limit">
  140. -               <mul order="0x30" stat="regHp" val="0.3" />
  141. -               <mul order="0x30" stat="regCp" val="0.3" />
  142. -               <mul order="0x30" stat="regMp" val="0.3" />
  143. +               <mul order="0x30" stat="maxRecoverableHp" val="0.3" />
  144. +               <mul order="0x30" stat="maxRecoverableMp" val="0.3" />
  145. +               <mul order="0x30" stat="maxRecoverableCp" val="0.3" />
  146.             </effect>
  147.         </for>
  148.     </skill>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement