aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLihO <liho@posterus.cz>2011-08-18 18:18:44 +0200
committerLihO <liho@posterus.cz>2011-08-18 18:18:44 +0200
commit171049bf4a0f881fcbb46ec2edcc76f9e4637990 (patch)
treed99873f9692046cef796456ad7d0c98b4e160b55 /src
parentb4ee9ebfc8149f0dcbfd3f741059d420bf61a46a (diff)
Core/Auras: Crash fix.
Check amount of total ticks to avoid division by zero.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Entities/Unit/Unit.cpp2
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;