Сборка L2Open, Ситуация:
Все скиллы использующие параметр:
Код:
<add order="0x40" stat="reflectDam" val="N" />
На мобах работают, на персонажах нет. Т.е. если на мобе (РБ) скилл ID:4214 и его бьет персонаж - то возвращается 20% нанесенного урона обратно персонажу.
Если же на персонаже скилл или ДС с возвратом урона - когда бьют мобы этого персонажа, им урон не возвращается.
L2Character.java не трогал, там все как было еще с фениксов:
Код:
if(skill != null && skill.isMagic())
value = target.calcStat(Stats.REFLECT_MSKILL_DAMAGE_PERCENT, 0, this, skill);
else if(skill != null && skill.getCastRange() <= 200)
value = target.calcStat(Stats.REFLECT_PSKILL_DAMAGE_PERCENT, 0, this, skill);
else if(skill == null && !bow)
value = target.calcStat(Stats.REFLECT_DAMAGE_PERCENT, 0, this, null);
if(value > 0)
applyReflectDamage(target, damage, value);
if(skill != null || bow)
return false;
public void applyReflectDamage(L2Character target, double damage, double reflect)
{
double rdmg = damage * reflect / 100.;
rdmg = Math.min(rdmg, target.getCurrentHp());
if(isPlayable() && !target.isNpc())
reduceCurrentHp(rdmg, this, null, true, true, false, false);
else
reduceCurrentHp(rdmg, target, null, true, true, false, false);
if(target.isPlayer() && rdmg >= 1.)
target.sendPacket(new SystemMessage(SystemMessage.C1_HAS_GIVEN_C2_DAMAGE_OF_S3).addName(target).addName(this).addNumber((long) rdmg));
}
Подскажите где копать? Может я где-то в датапаке косякнул?