From a35deba186bef436e68750d6c4f621cdc34c8a24 Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 26 Sep 2011 09:03:33 -0400 Subject: [PATCH] Fix some crashes caused by spell scripts without checking unit type. Fix #3216 and #3217. --- .../scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp | 10 +++++----- src/server/scripts/Spells/spell_dk.cpp | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp index 7d355b2f71a..dcb5ae8faf7 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp @@ -237,12 +237,12 @@ class spell_intense_cold : public SpellScriptLoader void HandlePeriodicTick(AuraEffect const* aurEff) { - Unit* caster = GetCaster(); - if (!caster) + if (aurEff->GetBase()->GetStackAmount() < 2) return; - - if (aurEff->GetBase()->GetStackAmount() >= 2) - caster->GetAI()->SetGUID(GetTarget()->GetGUID(), DATA_INTENSE_COLD); + Unit* caster = GetCaster(); + if (!caster || !caster->GetAI()) + return; + caster->GetAI()->SetGUID(GetTarget()->GetGUID(), DATA_INTENSE_COLD); } void Register() diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 98faef9e00a..fc1b73df482 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -167,9 +167,9 @@ class spell_dk_anti_magic_zone : public SpellScriptLoader { SpellInfo const* talentSpell = sSpellMgr->GetSpellInfo(DK_SPELL_ANTI_MAGIC_SHELL_TALENT); amount = talentSpell->Effects[EFFECT_0].CalcValue(GetCaster()); - // assume caster is a player here - if (Unit* caster = GetCaster()) - amount += int32(2 * caster->ToPlayer()->GetTotalAttackPowerValue(BASE_ATTACK)); + Unit* caster = GetCaster(); + if(Player* player = caster->ToPlayer()) + amount += int32(2 * player->GetTotalAttackPowerValue(BASE_ATTACK)); } void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)