From f45121ebe967ba02b4987ed96d24639343b7ee54 Mon Sep 17 00:00:00 2001 From: kaelima Date: Mon, 13 Jun 2011 13:06:02 +0200 Subject: Core/Scripts: Avoid some possible crashes Temporary fix since Sartura obviously needs a rewrite. --- .../Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp | 54 +++++++++++----------- .../AzjolNerub/boss_krikthir_the_gatewatcher.cpp | 9 ++-- 2 files changed, 30 insertions(+), 33 deletions(-) (limited to 'src') diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp index 73fd532b158..e1bb5645cfd 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_sartura.cpp @@ -105,13 +105,12 @@ public: if (WhirlWindRandom_Timer <= diff) { //Attack random Gamers - Unit *pTarget = NULL; - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (pTarget) - me->AddThreat(pTarget, 1.0f); - me->TauntApply(pTarget); - AttackStart(pTarget); - + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true)) + { + me->AddThreat(target, 1.0f); + me->TauntApply(target); + AttackStart(target); + } WhirlWindRandom_Timer = 3000 + rand()%4000; } else WhirlWindRandom_Timer -= diff; @@ -134,15 +133,14 @@ public: if (AggroReset_Timer <= diff) { //Attack random Gamers - Unit *pTarget = NULL; - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (pTarget) - me->AddThreat(pTarget, 1.0f); - me->TauntApply(pTarget); - AttackStart(pTarget); - - AggroReset = true; - AggroReset_Timer = 2000 + rand()%3000; + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true)) + { + me->AddThreat(target, 1.0f); + me->TauntApply(target); + AttackStart(target); + } + AggroReset = true; + AggroReset_Timer = 2000 + rand()%3000; } else AggroReset_Timer -= diff; if (AggroReset) @@ -242,12 +240,12 @@ public: if (WhirlWindRandom_Timer <= diff) { //Attack random Gamers - Unit *pTarget = NULL; - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (pTarget) - me->AddThreat(pTarget, 1.0f); - me->TauntApply(pTarget); - AttackStart(pTarget); + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true)) + { + me->AddThreat(target, 1.0f); + me->TauntApply(target); + AttackStart(target); + } WhirlWindRandom_Timer = 3000 + rand()%4000; } else WhirlWindRandom_Timer -= diff; @@ -263,12 +261,12 @@ public: if (AggroReset_Timer <= diff) { //Attack random Gamers - Unit *pTarget = NULL; - pTarget = SelectTarget(SELECT_TARGET_RANDOM, 1); - if (pTarget) - me->AddThreat(pTarget, 1.0f); - me->TauntApply(pTarget); - AttackStart(pTarget); + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true)) + { + me->AddThreat(pTarget, 1.0f); + me->TauntApply(pTarget); + AttackStart(pTarget); + } AggroReset = true; AggroReset_Timer = 2000 + rand()%3000; diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp index 3184500870b..42f94902c52 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp @@ -169,11 +169,10 @@ public: if (uiCurseFatigueTimer <= diff) { //WowWiki say "Curse of Fatigue-Kirk'thir will cast Curse of Fatigue on 2-3 targets periodically." - Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); - Unit *pTarget_1 = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); - - DoCast(pTarget, SPELL_CURSE_OF_FATIGUE); - DoCast(pTarget_1, SPELL_CURSE_OF_FATIGUE); + if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) + DoCast(target, SPELL_CURSE_OF_FATIGUE); + if (Unit* tankTarget = SelectTarget(SELECT_TARGET_RANDOM, 1, 100, true); + DoCast(tankTarget, SPELL_CURSE_OF_FATIGUE); uiCurseFatigueTimer = 10*IN_MILLISECONDS; } else uiCurseFatigueTimer -= diff; -- cgit v1.2.3