Подскажите, когда срабатывает спелл к примеру: безрассудство - ид1719,то я так понимаю ,что накладывается 3 ауры на игрока. Так вот как узнать в коде сервера выполняется ли они или узнать время выполнения?
В общем вот такая вот проблема, при срабатывании этого спелла мне удалось на 20% увеличить урон атакующему но как при окончании этого спелла вернуть базовое значение, если кто поможет с проблемой за ранее спасибо!
Код:
if (GetSpellProto()->Id == 1719)
{
float minbasevalue, mindefferencevalue, minnewbasevalue;
if(target->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IN_COMBAT))
{
SpellAuraHolder* holder = target->GetSpellAuraHolder(1719);
Unit::AttackerSet attacker = target->getAttackers();
for(Unit::AttackerSet::iterator itra = attacker.begin();itra != attacker.end(); ++itra)
{
minbasevalue = (*itra)->GetFloatValue(UNIT_FIELD_MINDAMAGE);
mindefferencevalue = minbasevalue * 2000 /100;
minnewbasevalue = minbasevalue + mindefferencevalue;
(*itra)->SetFloatValue(UNIT_FIELD_MINDAMAGE, minnewbasevalue);
if(!holder)
{
(*itra)->SetFloatValue(UNIT_FIELD_MINDAMAGE, minbasevalue);
break;
}
}
}
}