aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/server')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp3
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 4a4d7944e33..bb3439d96ec 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -9759,6 +9759,9 @@ void Unit::TriggerOnPowerChangeAuras(Powers power, int32 oldVal, int32 newVal)
if (effect->GetAuraType() == SPELL_AURA_TRIGGER_SPELL_ON_POWER_PCT)
{
int32 maxPower = GetMaxPower(power);
+ if (!maxPower)
+ continue;
+
oldValueCheck = GetPctOf(oldVal, maxPower);
newValueCheck = GetPctOf(newVal, maxPower);
}
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 20ca17156fa..15a8a1cd0de 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -5255,7 +5255,11 @@ void AuraEffect::HandleTriggerSpellOnPowerPercent(AuraApplication const* aurApp,
int32 effectAmount = GetAmount();
uint32 triggerSpell = GetSpellEffectInfo().TriggerSpell;
- float powerAmountPct = GetPctOf(target->GetPower(Powers(GetMiscValue())), target->GetMaxPower(Powers(GetMiscValue())));
+ int32 maxPower = target->GetMaxPower(Powers(GetMiscValue()));
+ if (!maxPower)
+ return;
+
+ float powerAmountPct = GetPctOf(target->GetPower(Powers(GetMiscValue())), maxPower);
switch (AuraTriggerOnPowerChangeDirection(GetMiscValueB()))
{