aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2011-09-26 06:44:33 -0700
committerShocker <shocker@freakz.ro>2011-09-26 06:44:33 -0700
commit6dc09248fd886f12b5639d687d2a2b3dd4120e45 (patch)
tree00bd0fecf21faa66acb44c285ba2278a55416022 /src/server/scripts
parent7b68a6bf69ca8eee943d2218610cd3665f7afa72 (diff)
parent780747f5d39cd05e22d28f80eed7eda18453e0b8 (diff)
Merge pull request #3162 from megamage/master
Fix incorrect logic in PetAI. Solve #3155.
Diffstat (limited to 'src/server/scripts')
-rw-r--r--src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp9
-rw-r--r--src/server/scripts/Spells/spell_dk.cpp8
2 files changed, 10 insertions, 7 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..1a153474416 100644
--- a/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
+++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_keristrasza.cpp
@@ -237,12 +237,13 @@ class spell_intense_cold : public SpellScriptLoader
void HandlePeriodicTick(AuraEffect const* aurEff)
{
+ if (aurEff->GetBase()->GetStackAmount() < 2)
+ return;
Unit* caster = GetCaster();
- if (!caster)
+ //TODO: the caster should be boss but not the player
+ 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 19f9cea8ed1..b30841e19cc 100644
--- a/src/server/scripts/Spells/spell_dk.cpp
+++ b/src/server/scripts/Spells/spell_dk.cpp
@@ -167,9 +167,11 @@ 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(!caster)
+ return;
+ if(Player* player = caster->ToPlayer())
+ amount += int32(2 * player->GetTotalAttackPowerValue(BASE_ATTACK));
}
void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount)