From a35deba186bef436e68750d6c4f621cdc34c8a24 Mon Sep 17 00:00:00 2001 From: megamage Date: Mon, 26 Sep 2011 09:03:33 -0400 Subject: Fix some crashes caused by spell scripts without checking unit type. Fix #3216 and #3217. --- src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp | 8 ++++---- src/server/scripts/Spells/spell_dk.cpp | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'src/server/scripts') 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) { + if (aurEff->GetBase()->GetStackAmount() < 2) + return; Unit* caster = GetCaster(); - if (!caster) + if (!caster || !caster->GetAI()) return; - - if (aurEff->GetBase()->GetStackAmount() >= 2) - caster->GetAI()->SetGUID(GetTarget()->GetGUID(), DATA_INTENSE_COLD); + 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) -- cgit v1.2.3