diff options
author | LihO <liho@posterus.cz> | 2011-08-18 18:18:44 +0200 |
---|---|---|
committer | LihO <liho@posterus.cz> | 2011-08-18 18:18:44 +0200 |
commit | 171049bf4a0f881fcbb46ec2edcc76f9e4637990 (patch) | |
tree | d99873f9692046cef796456ad7d0c98b4e160b55 /src | |
parent | b4ee9ebfc8149f0dcbfd3f741059d420bf61a46a (diff) |
Core/Auras: Crash fix.
Check amount of total ticks to avoid division by zero.
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Unit/Unit.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 625073d461c..1b6c5baa8f0 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17377,7 +17377,7 @@ uint32 Unit::GetRemainingPeriodicAmount(uint64 caster, uint32 spellId, AuraType AuraEffectList const& periodicAuras = GetAuraEffectsByType(auraType); for (AuraEffectList::const_iterator i = periodicAuras.begin(); i != periodicAuras.end(); ++i) { - if ((*i)->GetCasterGUID() != caster || (*i)->GetId() != spellId || (*i)->GetEffIndex() != effectIndex) + if ((*i)->GetCasterGUID() != caster || (*i)->GetId() != spellId || (*i)->GetEffIndex() != effectIndex || (*i)->GetTotalTicks() == 0) continue; amount += uint32(((*i)->GetAmount() * std::max<int32>((*i)->GetTotalTicks() - int32((*i)->GetTickNumber()), 0)) / (*i)->GetTotalTicks()); break; |