Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### Eclipse Workspace Patch 1.0
- #P L2J_Server_BETA
- Index: java/com/l2jserver/gameserver/model/actor/status/CharStatus.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/status/CharStatus.java (revision 6577)
- +++ java/com/l2jserver/gameserver/model/actor/status/CharStatus.java (working copy)
- @@ -28,6 +28,7 @@
- import com.l2jserver.Config;
- import com.l2jserver.gameserver.ThreadPoolManager;
- import com.l2jserver.gameserver.model.actor.L2Character;
- +import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.actor.stat.CharStat;
- import com.l2jserver.gameserver.model.stats.Formulas;
- @@ -170,7 +171,7 @@
- setCurrentHp(Math.max(getCurrentHp() - value, 0));
- }
- - if ((getActiveChar().getCurrentHp() < 0.5) && getActiveChar().isMortal()) // Die
- + if ((getActiveChar().getCurrentHp() < 0.5) && getActiveChar().isMortal() && !(getActiveChar() instanceof L2NpcInstance)) // Die
- {
- getActiveChar().abortAttack();
- getActiveChar().abortCast();
- Index: java/com/l2jserver/gameserver/model/actor/status/FolkStatus.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/status/FolkStatus.java (revision 6577)
- +++ java/com/l2jserver/gameserver/model/actor/status/FolkStatus.java (working copy)
- @@ -34,12 +34,13 @@
- @Override
- public final void reduceHp(double value, L2Character attacker)
- {
- - reduceHp(value, attacker, true, false, false);
- + super.reduceHp(value, attacker);
- }
- @Override
- public final void reduceHp(double value, L2Character attacker, boolean awake, boolean isDOT, boolean isHpConsumption)
- {
- + super.reduceHp(value, attacker, awake, isDOT, isHpConsumption);
- }
- @Override
- Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
- ===================================================================
- --- java/com/l2jserver/gameserver/model/actor/L2Character.java (revision 6577)
- +++ java/com/l2jserver/gameserver/model/actor/L2Character.java (working copy)
- @@ -5049,16 +5049,6 @@
- }
- }
- - // reduce targets HP
- - target.reduceCurrentHp(damage, this, null);
- - target.notifyDamageReceived(damage, this, null, crit, false);
- -
- - if (reflectedDamage > 0)
- - {
- - reduceCurrentHp(reflectedDamage, target, true, false, null);
- - notifyDamageReceived(reflectedDamage, target, null, crit, false);
- - }
- -
- if (!isBow) // Do not absorb if weapon is of type bow
- {
- // Absorb HP from the damage inflicted
- @@ -5066,15 +5056,15 @@
- if (absorbPercent > 0)
- {
- - int maxCanAbsorb = (int) (getMaxRecoverableHp() - getCurrentHp());
- - int absorbDamage = (int) ((absorbPercent / 100.) * damage);
- + final double targetCurrentHp = target.getCurrentHp();
- + double vampiricDamage = damage > targetCurrentHp ? targetCurrentHp : damage;
- + double absorbDamage = (absorbPercent / 100.) * vampiricDamage;
- - if (absorbDamage > maxCanAbsorb)
- + if ((getCurrentHp() + absorbDamage) > getMaxRecoverableHp())
- {
- - absorbDamage = maxCanAbsorb; // Can't absord more than max hp
- + setCurrentHp(getMaxRecoverableHp());
- }
- -
- - if (absorbDamage > 0)
- + else
- {
- setCurrentHp(getCurrentHp() + absorbDamage);
- }
- @@ -5085,22 +5075,32 @@
- if (absorbPercent > 0)
- {
- - int maxCanAbsorb = (int) (getMaxRecoverableMp() - getCurrentMp());
- - int absorbDamage = (int) ((absorbPercent / 100.) * damage);
- + final double targetCurrentHp = target.getCurrentHp();
- + double vampiricDamage = damage > targetCurrentHp ? targetCurrentHp : damage;
- + double absorbDamage = (absorbPercent / 100.) * vampiricDamage;
- - if (absorbDamage > maxCanAbsorb)
- + if ((getCurrentMp() + absorbDamage) > getMaxRecoverableMp())
- {
- - absorbDamage = maxCanAbsorb; // Can't absord more than max hp
- + setCurrentHp(getMaxRecoverableMp());
- }
- -
- - if (absorbDamage > 0)
- + else
- {
- - setCurrentMp(getCurrentMp() + absorbDamage);
- + setCurrentHp(getCurrentMp() + absorbDamage);
- }
- }
- }
- + // reduce targets HP
- + target.reduceCurrentHp(damage, this, null);
- + target.notifyDamageReceived(damage, this, null, crit, false);
- +
- + if (reflectedDamage > 0)
- + {
- + reduceCurrentHp(reflectedDamage, target, true, false, null);
- + notifyDamageReceived(reflectedDamage, target, null, crit, false);
- + }
- +
- // Notify AI with EVT_ATTACKED
- if (target.hasAI())
- {
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement