Sync with L2JServer Jan 24th 2015.

This commit is contained in:
mobius
2015-01-24 20:02:32 +00:00
parent d349bd3924
commit 1c6301c46d
1012 changed files with 23069 additions and 6307 deletions

View File

@ -74,12 +74,18 @@ public final class RebalanceHP extends AbstractEffect
currentHPs += member.getCurrentHp();
}
final L2Summon summon = member.getSummon();
final L2Summon summon = member.getPet();
if ((summon != null) && (!summon.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true)))
{
fullHP += summon.getMaxHp();
currentHPs += summon.getCurrentHp();
}
for (L2Summon servitors : member.getServitors().values())
{
fullHP += servitors.getMaxHp();
currentHPs += servitors.getCurrentHp();
}
}
double percentHP = currentHPs / fullHP;
@ -104,7 +110,7 @@ public final class RebalanceHP extends AbstractEffect
member.setCurrentHp(newHP);
}
final L2Summon summon = member.getSummon();
final L2Summon summon = member.getPet();
if ((summon != null) && (!summon.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true)))
{
double newHP = summon.getMaxHp() * percentHP;
@ -122,6 +128,27 @@ public final class RebalanceHP extends AbstractEffect
}
summon.setCurrentHp(newHP);
}
for (L2Summon servitors : member.getServitors().values())
{
if (!servitors.isDead() && Util.checkIfInRange(skill.getAffectRange(), effector, summon, true))
{
double newHP = servitors.getMaxHp() * percentHP;
if (newHP > servitors.getCurrentHp()) // The target gets healed
{
// The heal will be blocked if the current hp passes the limit
if (servitors.getCurrentHp() > servitors.getMaxRecoverableHp())
{
newHP = servitors.getCurrentHp();
}
else if (newHP > servitors.getMaxRecoverableHp())
{
newHP = servitors.getMaxRecoverableHp();
}
}
servitors.setCurrentHp(newHP);
}
}
}
}
}