Ну лично у меня mdam выглядит так:
Свернуть ↑
if ((skill.getSkillType() == L2SkillType.MDAM) || (skill.getSkillType() == L2SkillType.DEATHLINK))
{
// Absorb HP from the damage inflicted
double absorbPercent = activeChar.getStat().calcStat(Stats.ABSORB_DAMAGE_ PERCENT, 0, null, null);
if (absorbPercent > 0)
{
int maxCanAbsorb = (int) (activeChar.getMaxRecoverableHp() - activeChar.getCurrentHp());
int absorbDamage = (int) (damage*(absorbPercent / 60.));
if (absorbDamage > maxCanAbsorb)
{
absorbDamage = maxCanAbsorb; // Can't absord more than max hp
}
if (absorbDamage > 0)
{
activeChar.setCurrentHp(activeChar.getCurrentHp() + absorbDamage);
}
}
// Absorb MP from the damage inflicted
absorbPercent = activeChar.getStat().calcStat(Stats.ABSORB_MANA_DA MAGE_PERCENT, 0, null, null);
if (absorbPercent > 0)
{
int maxCanAbsorb = (int) (activeChar.getMaxRecoverableMp() - activeChar.getCurrentMp());
int absorbDamage = (int) (damage*(absorbPercent / 100.));
if (absorbDamage > maxCanAbsorb)
{
absorbDamage = maxCanAbsorb; // Can't absord more than max hp
}
if (absorbDamage > 0)
{
activeChar.setCurrentMp(activeChar.getCurrentMp() + absorbDamage);
}
}Code: Java
Свернуть ↑Развернуть ↓
Проблем с вампириком нет.