diff options
author | QAston <qaston@gmail.com> | 2011-08-21 00:58:55 -0700 |
---|---|---|
committer | QAston <qaston@gmail.com> | 2011-08-21 00:58:55 -0700 |
commit | 8e8fa083b2536341c792e169ef4cbdb23eef9c67 (patch) | |
tree | 40b6385dd64b4b57c82d28637e6fa3fec0a24e9a /src | |
parent | a10eb53598e405356d7ed38e9ab8b90d1b5de756 (diff) | |
parent | 171049bf4a0f881fcbb46ec2edcc76f9e4637990 (diff) |
Merge pull request #2636 from LihO/master
Core/Auras: Check amount of total ticks to avoid division by zero (and crash) in Unit::GetRemainingPeriodicAmount.
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 21f5d9f6d51..8ed36224a34 100755 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -17385,7 +17385,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; |