diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2018-01-18 13:58:40 -0300 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2021-06-16 12:02:14 +0200 |
| commit | 62c571076e5319c07c7222e139dbfc7c8bb4543f (patch) | |
| tree | 234a3a61c51a3dec6517ab29f3904005f4cb66b8 /src/server/scripts/EasternKingdoms | |
| parent | ea79b5569809515e680d8e38dd8126f11f5fa666 (diff) | |
Core/Scripts: added nullptr checks to DamageTaken hooks
Since cb9e72e521d3cc415dd15bf6912c87f89e41b92a attacker may not be in world when hook is called
(cherry picked from commit 0db5c2df3fe56f42293865e87ec781cd4d41598b)
Diffstat (limited to 'src/server/scripts/EasternKingdoms')
4 files changed, 7 insertions, 7 deletions
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index 0aad78d8cbb..ea01e96025c 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -167,7 +167,7 @@ public: void DamageTaken(Unit* done_by, uint32 &damage) override { - if (done_by->GetGUID() != malchezaar) + if (!done_by || done_by->GetGUID() != malchezaar) damage = 0; } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index efa0cc7e5bb..83a19eb2527 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -532,7 +532,7 @@ public: void DamageTaken(Unit* pDoneBy, uint32 &uiDamage) override { - if (m_bIsDuelInProgress && pDoneBy->IsControlledByPlayer()) + if (m_bIsDuelInProgress && pDoneBy && pDoneBy->IsControlledByPlayer()) { if (pDoneBy->GetGUID() != m_uiDuelerGUID && pDoneBy->GetOwnerGUID() != m_uiDuelerGUID) // other players cannot help uiDamage = 0; diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index c971dbf1dcb..32fbc1cf83e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -203,7 +203,7 @@ struct boss_kalecgos : 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 = 0; } @@ -371,7 +371,7 @@ struct boss_kalecgos_human : public ScriptedAI void DamageTaken(Unit* who, uint32 &damage) override { - if (who->GetGUID() != _sathGUID) + if (!who || who->GetGUID() != _sathGUID) damage = 0; if (HealthBelowPct(75) && _events.IsInPhase(PHASE_SAY_ONE)) @@ -483,7 +483,7 @@ struct boss_sathrovarr : 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 = 0; } diff --git a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp index b5b1336a50c..c59df0ed693 100644 --- a/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp +++ b/src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp @@ -67,7 +67,7 @@ public: void DamageTaken(Unit* who, uint32& damage) override { - if (who->GetTypeId() == TYPEID_UNIT && me->HealthBelowPctDamaged(82, damage)) + if ((!who || who->GetTypeId() == TYPEID_UNIT) && me->HealthBelowPctDamaged(82, damage)) damage = 0; } @@ -102,7 +102,7 @@ public: void DamageTaken(Unit* who, uint32& damage) override { - if (who->GetTypeId() == TYPEID_UNIT && me->HealthBelowPctDamaged(82, damage)) + if ((!who || who->GetTypeId() == TYPEID_UNIT) && me->HealthBelowPctDamaged(82, damage)) damage = 0; } |
