Advertisement
Guest User

Untitled

a guest
Jul 3rd, 2014
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ### Eclipse Workspace Patch 1.0
  2. #P L2J_Server_BETA
  3. Index: java/com/l2jserver/gameserver/model/actor/status/CharStatus.java
  4. ===================================================================
  5. --- java/com/l2jserver/gameserver/model/actor/status/CharStatus.java    (revision 6577)
  6. +++ java/com/l2jserver/gameserver/model/actor/status/CharStatus.java    (working copy)
  7. @@ -28,6 +28,7 @@
  8.  import com.l2jserver.Config;
  9.  import com.l2jserver.gameserver.ThreadPoolManager;
  10.  import com.l2jserver.gameserver.model.actor.L2Character;
  11. +import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;
  12.  import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  13.  import com.l2jserver.gameserver.model.actor.stat.CharStat;
  14.  import com.l2jserver.gameserver.model.stats.Formulas;
  15. @@ -170,7 +171,7 @@
  16.             setCurrentHp(Math.max(getCurrentHp() - value, 0));
  17.         }
  18.        
  19. -       if ((getActiveChar().getCurrentHp() < 0.5) && getActiveChar().isMortal()) // Die
  20. +       if ((getActiveChar().getCurrentHp() < 0.5) && getActiveChar().isMortal() && !(getActiveChar() instanceof L2NpcInstance)) // Die
  21.         {
  22.             getActiveChar().abortAttack();
  23.             getActiveChar().abortCast();
  24. Index: java/com/l2jserver/gameserver/model/actor/status/FolkStatus.java
  25. ===================================================================
  26. --- java/com/l2jserver/gameserver/model/actor/status/FolkStatus.java    (revision 6577)
  27. +++ java/com/l2jserver/gameserver/model/actor/status/FolkStatus.java    (working copy)
  28. @@ -34,12 +34,13 @@
  29.     @Override
  30.     public final void reduceHp(double value, L2Character attacker)
  31.     {
  32. -       reduceHp(value, attacker, true, false, false);
  33. +       super.reduceHp(value, attacker);
  34.     }
  35.    
  36.     @Override
  37.     public final void reduceHp(double value, L2Character attacker, boolean awake, boolean isDOT, boolean isHpConsumption)
  38.     {
  39. +       super.reduceHp(value, attacker, awake, isDOT, isHpConsumption);
  40.     }
  41.    
  42.     @Override
  43. Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
  44. ===================================================================
  45. --- java/com/l2jserver/gameserver/model/actor/L2Character.java  (revision 6577)
  46. +++ java/com/l2jserver/gameserver/model/actor/L2Character.java  (working copy)
  47. @@ -5049,16 +5049,6 @@
  48.                 }
  49.             }
  50.            
  51. -           // reduce targets HP
  52. -           target.reduceCurrentHp(damage, this, null);
  53. -           target.notifyDamageReceived(damage, this, null, crit, false);
  54. -          
  55. -           if (reflectedDamage > 0)
  56. -           {
  57. -               reduceCurrentHp(reflectedDamage, target, true, false, null);
  58. -               notifyDamageReceived(reflectedDamage, target, null, crit, false);
  59. -           }
  60. -          
  61.             if (!isBow) // Do not absorb if weapon is of type bow
  62.             {
  63.                 // Absorb HP from the damage inflicted
  64. @@ -5066,15 +5056,15 @@
  65.                
  66.                 if (absorbPercent > 0)
  67.                 {
  68. -                   int maxCanAbsorb = (int) (getMaxRecoverableHp() - getCurrentHp());
  69. -                   int absorbDamage = (int) ((absorbPercent / 100.) * damage);
  70. +                   final double targetCurrentHp = target.getCurrentHp();
  71. +                   double vampiricDamage = damage > targetCurrentHp ? targetCurrentHp : damage;
  72. +                   double absorbDamage = (absorbPercent / 100.) * vampiricDamage;
  73.                    
  74. -                   if (absorbDamage > maxCanAbsorb)
  75. +                   if ((getCurrentHp() + absorbDamage) > getMaxRecoverableHp())
  76.                     {
  77. -                       absorbDamage = maxCanAbsorb; // Can't absord more than max hp
  78. +                       setCurrentHp(getMaxRecoverableHp());
  79.                     }
  80. -                  
  81. -                   if (absorbDamage > 0)
  82. +                   else
  83.                     {
  84.                         setCurrentHp(getCurrentHp() + absorbDamage);
  85.                     }
  86. @@ -5085,22 +5075,32 @@
  87.                
  88.                 if (absorbPercent > 0)
  89.                 {
  90. -                   int maxCanAbsorb = (int) (getMaxRecoverableMp() - getCurrentMp());
  91. -                   int absorbDamage = (int) ((absorbPercent / 100.) * damage);
  92. +                   final double targetCurrentHp = target.getCurrentHp();
  93. +                   double vampiricDamage = damage > targetCurrentHp ? targetCurrentHp : damage;
  94. +                   double absorbDamage = (absorbPercent / 100.) * vampiricDamage;
  95.                    
  96. -                   if (absorbDamage > maxCanAbsorb)
  97. +                   if ((getCurrentMp() + absorbDamage) > getMaxRecoverableMp())
  98.                     {
  99. -                       absorbDamage = maxCanAbsorb; // Can't absord more than max hp
  100. +                       setCurrentHp(getMaxRecoverableMp());
  101.                     }
  102. -                  
  103. -                   if (absorbDamage > 0)
  104. +                   else
  105.                     {
  106. -                       setCurrentMp(getCurrentMp() + absorbDamage);
  107. +                       setCurrentHp(getCurrentMp() + absorbDamage);
  108.                     }
  109.                 }
  110.                
  111.             }
  112.            
  113. +           // reduce targets HP
  114. +           target.reduceCurrentHp(damage, this, null);
  115. +           target.notifyDamageReceived(damage, this, null, crit, false);
  116. +          
  117. +           if (reflectedDamage > 0)
  118. +           {
  119. +               reduceCurrentHp(reflectedDamage, target, true, false, null);
  120. +               notifyDamageReceived(reflectedDamage, target, null, crit, false);
  121. +           }
  122. +          
  123.             // Notify AI with EVT_ATTACKED
  124.             if (target.hasAI())
  125.             {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement