diff options
Diffstat (limited to 'src/server/scripts/Outland')
5 files changed, 11 insertions, 9 deletions
diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 0eb318acc6e..6abc09dee88 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -703,8 +703,7 @@ struct boss_illidan_stormrage : public BossAI void DamageTaken(Unit* who, uint32 &damage) override { - - if (damage >= me->GetHealth() && who->GetGUID() != me->GetGUID()) + if (damage >= me->GetHealth() && (!who || who->GetGUID() != me->GetGUID())) { damage = me->GetHealth() - 1; if (!_dead) diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp index 9594465ea83..1009106b426 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp @@ -275,7 +275,7 @@ struct IllidariCouncilBossAI : public BossAI void DamageTaken(Unit* who, uint32 &damage) override { - if (damage >= me->GetHealth() && who->GetGUID() != me->GetGUID()) + if (damage >= me->GetHealth() && (!who || who->GetGUID() != me->GetGUID())) damage = me->GetHealth() - 1; } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index 57bd9af5500..829d211fd84 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -128,7 +128,7 @@ public: void DamageTaken(Unit* done_by, uint32 &damage) override { - if (done_by->GetGUID() != victimGUID && done_by->GetGUID() != me->GetGUID()) + if (!done_by || (done_by->GetGUID() != victimGUID && done_by->GetGUID() != me->GetGUID())) { damage = 0; ModifyThreatByPercent(done_by, -100); diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index d6e88a17fab..7db59f845a3 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -368,7 +368,7 @@ struct advisorbase_ai : public ScriptedAI } } - void DamageTaken(Unit* killer, uint32 &damage) override + void DamageTaken(Unit* /*killer*/, uint32 &damage) override { if (damage >= me->GetHealth() && !_inFakeDeath && !_hasRessurrected) { @@ -387,7 +387,7 @@ struct advisorbase_ai : public ScriptedAI me->SetTarget(ObjectGuid::Empty); me->SetStandState(UNIT_STAND_STATE_DEAD); me->GetMotionMaster()->Clear(); - JustDied(killer); + JustDied(nullptr); } } @@ -572,7 +572,9 @@ class boss_kaelthas : public CreatureScript if (_phase == PHASE_NONE) { DoAction(ACTION_START_ENCOUNTER); - me->SetTarget(attacker->GetGUID()); + + if (attacker) + me->SetTarget(attacker->GetGUID()); } if (!_hasFullPower && me->HealthBelowPctDamaged(50, damage)) diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index 590342d4a8f..4cf8b780204 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -99,9 +99,10 @@ public: void DamageTaken(Unit* done_by, uint32 &damage) override { - Player* player = done_by->ToPlayer(); + if (!done_by || !me->HealthBelowPctDamaged(30, damage)) + return; - if (player && me->HealthBelowPctDamaged(30, damage)) + if (Player* player = done_by->ToPlayer()) { if (Group* group = player->GetGroup()) { |