diff options
| author | ariel- <ariel-@users.noreply.github.com> | 2018-01-18 13:58:40 -0300 |
|---|---|---|
| committer | ariel- <ariel-@users.noreply.github.com> | 2018-01-18 13:58:40 -0300 |
| commit | 0db5c2df3fe56f42293865e87ec781cd4d41598b (patch) | |
| tree | df671abc0631637261038f17841adc7c417caf16 /src/server/scripts/EasternKingdoms | |
| parent | d9d26200f7ffc07507dfca4a2c17fdfcde0194c8 (diff) | |
Core/Scripts: added nullptr checks to DamageTaken hooks
Since cb9e72e521d3cc415dd15bf6912c87f89e41b92a attacker may not be in world when hook is called
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 462a40687c4..e26faff6449 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -168,7 +168,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 b873b71e03b..f2b86da5adc 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -526,7 +526,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 f360a25a6be..69ca2d31843 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -204,7 +204,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; } @@ -372,7 +372,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)) @@ -484,7 +484,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_stormwind_city.cpp b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp index c3b2ca8dcd1..c6939561f3b 100644 --- a/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp +++ b/src/server/scripts/EasternKingdoms/zone_stormwind_city.cpp @@ -75,8 +75,8 @@ public: //Take 0 damage uiDamage = 0; - if (Player* player = pDoneBy->ToPlayer()) - player->AreaExploredOrEventHappens(QUEST_BEAT); + if (pDoneBy && pDoneBy->GetTypeId() == TYPEID_PLAYER) + pDoneBy->ToPlayer()->AreaExploredOrEventHappens(QUEST_BEAT); EnterEvadeMode(); } } |
