aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp6
-rw-r--r--src/server/scripts/EasternKingdoms/zone_redridge_mountains.cpp4
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp2
-rw-r--r--src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp5
-rw-r--r--src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp4
-rw-r--r--src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp3
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp9
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp4
-rw-r--r--src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp2
-rw-r--r--src/server/scripts/Northrend/zone_icecrown.cpp2
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidan.cpp3
-rw-r--r--src/server/scripts/Outland/BlackTemple/boss_illidari_council.cpp2
-rw-r--r--src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp8
-rw-r--r--src/server/scripts/Outland/zone_terokkar_forest.cpp5
-rw-r--r--src/server/scripts/World/npcs_special.cpp3
22 files changed, 43 insertions, 35 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;
}
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
index 30445f19871..72fa7dcf141 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp
@@ -194,7 +194,7 @@ hyjal_trashAI::hyjal_trashAI(Creature* creature) : EscortAI(creature)
void hyjal_trashAI::DamageTaken(Unit* done_by, uint32 &damage)
{
- if (done_by->GetTypeId() == TYPEID_PLAYER || done_by->IsPet())
+ if (!done_by || done_by->GetTypeId() == TYPEID_PLAYER || done_by->IsPet())
{
damageTaken += damage;
instance->SetData(DATA_RAIDDAMAGE, damage);//store raid's damage
diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
index 6fa10647d47..c28cc669ba5 100644
--- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
+++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_viscidus.cpp
@@ -119,7 +119,7 @@ class boss_viscidus : public CreatureScript
++_hitcounter;
- if (attacker->HasUnitState(UNIT_STATE_MELEE_ATTACKING) && _hitcounter >= HITCOUNTER_EXPLODE)
+ if (attacker && attacker->HasUnitState(UNIT_STATE_MELEE_ATTACKING) && _hitcounter >= HITCOUNTER_EXPLODE)
{
Talk(EMOTE_EXPLODE);
events.Reset();
diff --git a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
index 6c96f6934d4..c5cf1f86109 100644
--- a/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
+++ b/src/server/scripts/Kalimdor/zone_dustwallow_marsh.cpp
@@ -126,8 +126,9 @@ public:
{
Damage = 0;
- if (Player* player = pDoneBy->GetCharmerOrOwnerPlayerOrPlayerItself())
- player->GroupEventHappens(QUEST_MISSING_DIPLO_PT16, me);
+ if (pDoneBy)
+ if (Player* player = pDoneBy->GetCharmerOrOwnerPlayerOrPlayerItself())
+ player->GroupEventHappens(QUEST_MISSING_DIPLO_PT16, me);
Talk(EMOTE_SURRENDER);
EnterEvadeMode();
diff --git a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
index 30d28e2534f..8105d570cee 100644
--- a/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
+++ b/src/server/scripts/Northrend/ChamberOfAspects/RubySanctum/boss_halion.cpp
@@ -301,7 +301,7 @@ class boss_halion : public CreatureScript
if (events.IsInPhase(PHASE_THREE))
{
// Don't consider copied damage.
- if (!me->IsInPhase(attacker))
+ if (!attacker || !me->IsInPhase(attacker))
return;
if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER))
@@ -482,7 +482,7 @@ class boss_twilight_halion : public CreatureScript
if (events.IsInPhase(PHASE_THREE))
{
// Don't consider copied damage.
- if (!me->IsInPhase(attacker))
+ if (!attacker || !me->IsInPhase(attacker))
return;
if (Creature* controller = instance->GetCreature(DATA_HALION_CONTROLLER))
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
index 731f70b21bb..c29683fa748 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp
@@ -975,7 +975,7 @@ class npc_high_overlord_saurfang_igb : public CreatureScript
return false;
}
- void DamageTaken(Unit* , uint32& damage) override
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) override
{
if (me->HealthBelowPctDamaged(65, damage) && !me->HasAura(SPELL_TASTE_OF_BLOOD))
DoCast(me, SPELL_TASTE_OF_BLOOD, true);
@@ -1245,7 +1245,7 @@ class npc_muradin_bronzebeard_igb : public CreatureScript
return false;
}
- void DamageTaken(Unit* , uint32& damage) override
+ void DamageTaken(Unit* /*attacker*/, uint32& damage) override
{
if (me->HealthBelowPctDamaged(65, damage) && me->HasAura(SPELL_TASTE_OF_BLOOD))
DoCast(me, SPELL_TASTE_OF_BLOOD, true);
diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
index 673bc276a11..5ff54b70d8b 100644
--- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
+++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp
@@ -579,7 +579,7 @@ struct npc_gothik_minion_baseAI : public ScriptedAI
void DamageTaken(Unit* attacker, uint32 &damage) override
{ // do not allow minions to take damage before the gate is opened
- if (!_gateIsOpen && !isOnSameSide(attacker))
+ if (!_gateIsOpen && (!attacker || !isOnSameSide(attacker)))
damage = 0;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
index 82fde5eb24f..6c2b296d6ac 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_flame_leviathan.cpp
@@ -715,7 +715,7 @@ class boss_flame_leviathan_defense_turret : public CreatureScript
bool CanAIAttack(Unit const* who) const override
{
- if (who->GetTypeId() != TYPEID_PLAYER || !who->GetVehicle() || who->GetVehicleBase()->GetEntry() != NPC_SEAT)
+ if (!who || who->GetTypeId() != TYPEID_PLAYER || !who->GetVehicle() || who->GetVehicleBase()->GetEntry() != NPC_SEAT)
return false;
return true;
}
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
index 5c650b734b0..083c37d4763 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
@@ -838,9 +838,10 @@ class boss_elder_stonebark : public CreatureScript
void DamageTaken(Unit* who, uint32& damage) override
{
- if (who == me)
+ if (!who || who == me)
return;
+ ///HACK: should be handled by proc
if (me->HasAura(SPELL_PETRIFIED_BARK))
{
CastSpellExtraArgs args(TRIGGERED_FULL_MASK);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index 2e9fa68bc89..16835d41efc 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -716,7 +716,8 @@ class boss_leviathan_mk_ii : public CreatureScript
{
me->SetStandState(UNIT_STAND_STATE_DEAD);
- if (IsEncounterFinished(who))
+ Unit* ref = who ? who : me;
+ if (IsEncounterFinished(ref))
return;
me->CastStop();
@@ -960,7 +961,8 @@ class boss_vx_001 : public CreatureScript
me->SetStandState(UNIT_STAND_STATE_DEAD);
me->AddUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
- if (IsEncounterFinished(who))
+ Unit* ref = who ? who : me;
+ if (IsEncounterFinished(ref))
return;
me->CastStop();
@@ -1139,7 +1141,8 @@ class boss_aerial_command_unit : public CreatureScript
{
me->SetStandState(UNIT_STAND_STATE_DEAD);
- if (IsEncounterFinished(who))
+ Unit* ref = who ? who : me;
+ if (IsEncounterFinished(ref))
return;
me->CastStop();
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index 187ae82ca45..ba93019b049 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -893,7 +893,7 @@ class boss_thorim : public CreatureScript
bool CanStartPhase2(Unit* actor) const
{
- if (actor->GetTypeId() != TYPEID_PLAYER || !me->IsWithinDistInMap(actor, 10.0f))
+ if (!actor || actor->GetTypeId() != TYPEID_PLAYER || !me->IsWithinDistInMap(actor, 10.0f))
return false;
Creature* runicColossus = instance->GetCreature(DATA_RUNIC_COLOSSUS);
@@ -1152,7 +1152,7 @@ class npc_thorim_pre_phase : public CreatureScript
void DamageTaken(Unit* attacker, uint32& damage) override
{
// nullify spell damage
- if (!attacker->GetAffectingPlayer())
+ if (!attacker || !attacker->GetAffectingPlayer())
damage = 0;
}
diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
index 568d6e6c092..334436bb49f 100644
--- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
+++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
@@ -559,7 +559,7 @@ class npc_scourge_hulk : public CreatureScript
void DamageTaken(Unit* attacker, uint32 &damage) override
{
- if (damage >= me->GetHealth() && attacker->GetEntry() == NPC_SVALA_SORROWGRAVE)
+ if (damage >= me->GetHealth() && attacker && attacker->GetEntry() == NPC_SVALA_SORROWGRAVE)
killedByRitualStrike = true;
}
diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp
index 00852bf9c26..5493011cf03 100644
--- a/src/server/scripts/Northrend/zone_icecrown.cpp
+++ b/src/server/scripts/Northrend/zone_icecrown.cpp
@@ -74,7 +74,7 @@ public:
void DamageTaken(Unit* pDoneBy, uint32& uiDamage) override
{
- if (uiDamage > me->GetHealth() && pDoneBy->GetTypeId() == TYPEID_PLAYER)
+ if (uiDamage > me->GetHealth() && pDoneBy && pDoneBy->GetTypeId() == TYPEID_PLAYER)
{
uiDamage = 0;
pDoneBy->CastSpell(pDoneBy, SPELL_KILL_CREDIT, true);
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())
{
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index 575c566da85..0e0cf7a1d85 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -1776,7 +1776,8 @@ public:
void DamageTaken(Unit* doneBy, uint32& damage) override
{
- _damageTimes[doneBy->GetGUID()] = GameTime::GetGameTime();
+ if (doneBy)
+ _damageTimes[doneBy->GetGUID()] = GameTime::GetGameTime();
damage = 0;
}