aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeader <keader.android@gmail.com>2018-02-08 10:05:08 -0300
committerShauren <shauren.trinity@gmail.com>2021-06-19 23:33:24 +0200
commitad5b0fa9cd6c5e6f3a0b5975c50b1bfc2a1f32de (patch)
treeca6801eee7da7e076cd7427f5011961de2197a45 /src
parent4ae29e38eee94c6dcfee3355cbab7099ffc93bc3 (diff)
Core/Scripts: Fixed possible crashs related with JustDied
(cherry picked from commit 5bef3e426aea37b0e7555f146037c58e7be6352d)
Diffstat (limited to 'src')
-rw-r--r--src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp3
-rw-r--r--src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp4
-rw-r--r--src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp2
-rw-r--r--src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp2
-rw-r--r--src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp4
-rw-r--r--src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp2
-rw-r--r--src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp7
-rw-r--r--src/server/scripts/Kalimdor/zone_silithus.cpp4
-rw-r--r--src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_krikthir_the_gatewatcher.cpp4
-rw-r--r--src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp3
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp4
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp8
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp2
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp6
-rw-r--r--src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_erekem.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp4
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp4
-rw-r--r--src/server/scripts/Northrend/zone_borean_tundra.cpp16
-rw-r--r--src/server/scripts/Northrend/zone_howling_fjord.cpp6
-rw-r--r--src/server/scripts/Northrend/zone_wintergrasp.cpp2
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp3
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp3
-rw-r--r--src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp2
-rw-r--r--src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp4
-rw-r--r--src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp2
-rw-r--r--src/server/scripts/Outland/zone_shadowmoon_valley.cpp3
33 files changed, 82 insertions, 49 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index e76d3e6504b..1a924bdb849 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -434,7 +434,7 @@ public:
Talk(SAY_RANDOM);
}
- void JustDied(Unit* /*Killer*/) override
+ void JustDied(Unit* /*killer*/) override
{
_JustDied();
Talk(SAY_DEATH);
diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
index cd8444f9159..b5182ae0e47 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -198,13 +198,13 @@ public:
}
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
if (Unit* midnight = ObjectAccessor::GetUnit(*me, _midnightGUID))
midnight->KillSelf();
- BossAI::JustDied(killer);
+ _JustDied();
}
void SetGUID(ObjectGuid const& guid, int32 id) override
diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
index 4e776b83208..58c07769dd3 100644
--- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
+++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_vexallus.cpp
@@ -208,7 +208,8 @@ class npc_pure_energy : public CreatureScript
void JustDied(Unit* killer) override
{
- killer->CastSpell(killer, SPELL_ENERGY_FEEDBACK, true);
+ if (killer)
+ killer->CastSpell(killer, SPELL_ENERGY_FEEDBACK, true);
me->RemoveAurasDueToSpell(SPELL_PURE_ENERGY_PASSIVE);
}
};
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
index 83a19eb2527..ef4f541d58b 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -872,7 +872,7 @@ public:
void JustDied(Unit* killer) override
{
Creature* deathcharger = me->FindNearestCreature(28782, 30);
- if (!deathcharger)
+ if (!deathcharger || !killer)
return;
if (killer->GetTypeId() == TYPEID_PLAYER && deathcharger->GetTypeId() == TYPEID_UNIT && deathcharger->IsVehicle())
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
index f9c2d609406..e00431dcc89 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp
@@ -550,7 +550,8 @@ public:
void JustDied(Unit* killer) override
{
Talk(SAY_VALROTH_DEATH);
- killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true);
+ if (killer)
+ killer->CastSpell(me, SPELL_SUMMON_VALROTH_REMAINS, true);
}
};
diff --git a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
index 65303b527b7..54e0a72d4c2 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
@@ -321,7 +321,7 @@ class npc_apothecary_frye : public CreatureScript
{
npc_apothecary_fryeAI(Creature* creature) : npc_apothecary_genericAI(creature, FryeMovePos) { }
- void JustDied(Unit* /*who*/) override
+ void JustDied(Unit* /*killer*/) override
{
Talk(SAY_FRYE_DEATH);
}
@@ -349,7 +349,7 @@ class npc_apothecary_baxter : public CreatureScript
_events.ScheduleEvent(EVENT_CHAIN_REACTION, Seconds(12));
}
- void JustDied(Unit* /*who*/) override
+ void JustDied(Unit* /*killer*/) override
{
_events.Reset();
Talk(SAY_BAXTER_DEATH);
diff --git a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
index 8e7c71cc83c..49457a30244 100644
--- a/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
+++ b/src/server/scripts/EasternKingdoms/Stratholme/boss_order_of_silver_hand.cpp
@@ -129,7 +129,7 @@ public:
break;
}
- if (instance->GetData(TYPE_SH_QUEST))
+ if (killer && instance->GetData(TYPE_SH_QUEST))
{
if (Player* player = killer->ToPlayer())
player->KilledMonsterCredit(SH_QUEST_CREDIT);
diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
index 8ab7cfd3a80..4436e4a9b49 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -375,7 +375,7 @@ class npc_stonekeepers : public CreatureScript
DoMeleeAttackIfReady();
}
- void JustDied(Unit* /*attacker*/) override
+ void JustDied(Unit* /*killer*/) override
{
DoCast (me, SPELL_SELF_DESTRUCT, true);
instance->SetData(DATA_STONE_KEEPERS, IN_PROGRESS); // activate next stonekeeper
diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
index aa915223ee2..3c3e5f78fc3 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -441,12 +441,12 @@ public:
{
Talk(SAY_TH_RANDOM_KILL);
}
- void JustDied(Unit* slayer) override
+ void JustDied(Unit* killer) override
{
instance->SetData(TYPE_THRALL_EVENT, FAIL);
// Don't do a yell if he kills self (if player goes too far or at the end).
- if (slayer == me)
+ if (killer == me)
return;
Talk(SAY_TH_RANDOM_DIE);
diff --git a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
index d83e071d564..d93def8252f 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -136,7 +136,7 @@ public:
Talk(SAY_ATTACKED, who);
}
- void JustDied(Unit* /*slayer*/) override
+ void JustDied(Unit* /*killer*/) override
{
instance->SetData(TYPE_NARALEX_EVENT, FAIL);
instance->SetData(TYPE_NARALEX_PART1, FAIL);
diff --git a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
index 9d45eb42a69..156756960ea 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -67,6 +67,9 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer)
+ return;
+
uint32 spawnCreatureID = 0;
switch (urand(0, 2))
@@ -261,6 +264,10 @@ public:
{
me->SetObjectScale(1.0f);
_events.Reset();
+
+ if (!killer)
+ return;
+
if (Creature* legoso = me->FindNearestCreature(NPC_LEGOSO, SIZE_OF_GRIDS))
{
Group* group = me->GetLootRecipientGroup();
diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp
index 7e20bb9410f..5f7c1745a22 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -697,7 +697,7 @@ public:
}
void JustEngagedWith(Unit* /*who*/) override { }
- void JustDied(Unit* /*slayer*/) override;
+ void JustDied(Unit* /*killer*/) override;
void UpdateAI(uint32 diff) override
{
@@ -933,7 +933,7 @@ public:
};
-void npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)
+void npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::JustDied(Unit* /*killer*/)
{
me->DespawnOrUnsummon();
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 ae0427b45d1..daa43d95348 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,10 +169,10 @@ class boss_krik_thir : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
summons.clear();
- BossAI::JustDied(killer);
+ _JustDied();
Talk(SAY_DEATH);
}
diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
index 48f6cc63f20..6286c29c311 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -486,7 +486,8 @@ class npc_swarm_scarab : public CreatureScript
void JustDied(Unit* killer) override
{
- DoCast(killer, SPELL_TRAITOR_KING);
+ if (killer)
+ DoCast(killer, SPELL_TRAITOR_KING);
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
index 18c53996bc7..f84eb9cdd19 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
@@ -202,6 +202,10 @@ class boss_blood_queen_lana_thel : public CreatureScript
DoCastAOE(SPELL_BLOOD_INFUSION_CREDIT, true);
CleanAuras();
+
+ if (!killer)
+ return;
+
// Blah, credit the quest
if (_creditBloodQuickening)
{
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
index e635d0fa73e..ae8ca6f2f14 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -367,6 +367,10 @@ class boss_lady_deathwhisper : public CreatureScript
darnavan->SetReactState(REACT_PASSIVE);
darnavan->m_Events.AddEvent(new DaranavanMoveEvent(*darnavan), darnavan->m_Events.CalculateTime(10000));
darnavan->AI()->Talk(SAY_DARNAVAN_RESCUED);
+
+ if (!killer)
+ return;
+
if (Player* owner = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
{
if (Group* group = owner->GetGroup())
@@ -889,6 +893,10 @@ class npc_darnavan : public CreatureScript
void JustDied(Unit* killer) override
{
_events.Reset();
+
+ if (!killer)
+ return;
+
if (Player* owner = killer->GetCharmerOrOwnerPlayerOrPlayerItself())
{
if (Group* group = owner->GetGroup())
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
index 16835d41efc..250e2f64cac 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp
@@ -437,7 +437,7 @@ class boss_mimiron : public CreatureScript
events.ScheduleEvent(EVENT_INTRO_1, 1500);
}
- void JustDied(Unit* /*who*/) override
+ void JustDied(Unit* /*killer*/) override
{
instance->SetBossState(BOSS_MIMIRON, DONE);
events.Reset();
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
index ba93019b049..1cec6c70ad2 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -1138,7 +1138,7 @@ class npc_thorim_pre_phase : public CreatureScript
SetCombatMovement(false);
}
- void JustDied(Unit* /*victim*/) override
+ void JustDied(Unit* /*killer*/) override
{
if (Creature* thorim = _instance->GetCreature(BOSS_THORIM))
thorim->AI()->DoAction(ACTION_INCREASE_PREADDS_COUNT);
@@ -1397,7 +1397,7 @@ class npc_runic_colossus : public CreatureScript
}
}
- void JustDied(Unit* /*victim*/) override
+ void JustDied(Unit* /*killer*/) override
{
// open the Runic Door
_instance->HandleGameObject(_instance->GetGuidData(DATA_RUNIC_DOOR), true);
@@ -1508,7 +1508,7 @@ class npc_ancient_rune_giant : public CreatureScript
_events.ScheduleEvent(EVENT_RUNE_DETONATION, 25000);
}
- void JustDied(Unit* /*victim*/) override
+ void JustDied(Unit* /*killer*/) override
{
// opem the Stone Door
_instance->HandleGameObject(_instance->GetGuidData(DATA_STONE_DOOR), true);
diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
index a27a0606a9b..9488e4f5b7f 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -526,13 +526,13 @@ class boss_voice_of_yogg_saron : public CreatureScript
events.ScheduleEvent(EVENT_EXTINGUISH_ALL_LIFE, 900000); // 15 minutes
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
// don't despawn Yogg-Saron's corpse, remove him from SummonList!
if (Creature* yogg = instance->GetCreature(BOSS_YOGG_SARON))
summons.Despawn(yogg);
- BossAI::JustDied(killer);
+ _JustDied();
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
index 8a0ba50a8dc..332480d7be3 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_cyanigosa.cpp
@@ -64,10 +64,10 @@ class boss_cyanigosa : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
- BossAI::JustDied(killer);
Talk(SAY_DEATH);
+ _JustDied();
}
void MoveInLineOfSight(Unit* /*who*/) override { }
diff --git a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
index d664ef36fb1..b9e6314f6bc 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_erekem.cpp
@@ -93,10 +93,10 @@ class boss_erekem : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
- BossAI::JustDied(killer);
Talk(SAY_DEATH);
+ _JustDied();
}
bool CheckGuardAuras(Creature* guard) const
diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
index 0ce6a4f6e81..3f56443ee97 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp
@@ -164,10 +164,10 @@ class boss_ichoron : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
- BossAI::JustDied(killer);
Talk(SAY_DEATH);
+ _JustDied();
}
void JustSummoned(Creature* summon) override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index fd6fbb48de5..2ac2b548815 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
@@ -115,10 +115,10 @@ class boss_xevozz : public CreatureScript
Talk(SAY_SLAY);
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
- BossAI::JustDied(killer);
Talk(SAY_DEATH);
+ _JustDied();
}
void SpellHit(Unit* /*who*/, SpellInfo const* spell) override
diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
index b8a5c9fe814..015b0d19c1b 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp
@@ -104,10 +104,10 @@ class boss_zuramat : public CreatureScript
return 0;
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
- BossAI::JustDied(killer);
Talk(SAY_DEATH);
+ _JustDied();
}
void KilledUnit(Unit* victim) override
diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp
index 2f41372df6d..7eb0420dc1c 100644
--- a/src/server/scripts/Northrend/zone_borean_tundra.cpp
+++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp
@@ -370,9 +370,10 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer || killer->GetTypeId() != TYPEID_PLAYER)
+ return;
+
Player* player = killer->ToPlayer();
- if (!player)
- return;
if (player->GetQuestStatus(QUEST_TAKEN_BY_THE_SCOURGE) == QUEST_STATUS_INCOMPLETE)
{
@@ -1270,9 +1271,9 @@ public:
leryssa->ClearUnitState(UNIT_STATE_STUNNED);
leryssa->SetWalk(false);
leryssa->GetMotionMaster()->MovePoint(0, 3722.114502f, 3564.201660f, 477.441437f);
-
- if (Player* player = killer->ToPlayer())
- player->RewardPlayerAndGroupAtEvent(NPC_PRINCE_VALANAR, nullptr);
+
+ if (killer && killer->GetTypeId() == TYPEID_PLAYER)
+ killer->ToPlayer()->RewardPlayerAndGroupAtEvent(NPC_PRINCE_VALANAR, nullptr);
}
};
@@ -1941,9 +1942,10 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer || killer->GetTypeId() != TYPEID_PLAYER)
+ return;
+
Player* player = killer->ToPlayer();
- if (!player)
- return;
if (player->GetQuestStatus(QUEST_YOU_RE_NOT_SO_BIG_NOW) == QUEST_STATUS_INCOMPLETE &&
(me->HasAura(SPELL_AURA_NOTSOBIG_1) || me->HasAura(SPELL_AURA_NOTSOBIG_2) ||
diff --git a/src/server/scripts/Northrend/zone_howling_fjord.cpp b/src/server/scripts/Northrend/zone_howling_fjord.cpp
index 401c112e03f..7bcc0a4bc56 100644
--- a/src/server/scripts/Northrend/zone_howling_fjord.cpp
+++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp
@@ -637,11 +637,11 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer || killer->GetTypeId() != TYPEID_PLAYER)
+ return;
+
Player* player = killer->ToPlayer();
- if (!player)
- return;
-
if (roll_chance_i(20))
{
player->CastSpell(me, SPELL_SUMMON_FREED_MIST_WHISPER_SCOUT, true);
diff --git a/src/server/scripts/Northrend/zone_wintergrasp.cpp b/src/server/scripts/Northrend/zone_wintergrasp.cpp
index d2323404161..14834ce8b1c 100644
--- a/src/server/scripts/Northrend/zone_wintergrasp.cpp
+++ b/src/server/scripts/Northrend/zone_wintergrasp.cpp
@@ -409,7 +409,7 @@ class npc_wg_give_promotion_credit : public CreatureScript
void JustDied(Unit* killer) override
{
- if (killer->GetTypeId() != TYPEID_PLAYER)
+ if (!killer || killer->GetTypeId() != TYPEID_PLAYER)
return;
BattlefieldWG* wintergrasp = static_cast<BattlefieldWG*>(sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG));
diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
index 1c28c3795b4..0f7c4ec6e09 100644
--- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_kelidan_the_breaker.cpp
@@ -312,6 +312,9 @@ class npc_shadowmoon_channeler : public CreatureScript
void JustDied(Unit* killer) override
{
+ if (!killer)
+ return;
+
if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))
ENSURE_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->ChannelerDied(killer);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
index 81af9793526..524740afcb9 100644
--- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_vazruden_the_herald.cpp
@@ -486,6 +486,9 @@ class npc_hellfire_sentry : public CreatureScript
void JustDied(Unit* killer) override
{
+ if (!killer)
+ return;
+
if (Creature* herald = me->FindNearestCreature(NPC_VAZRUDEN_HERALD, 150))
ENSURE_AI(boss_vazruden_the_herald::boss_vazruden_the_heraldAI, herald->AI())->SentryDownBy(killer);
}
diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
index 4cceca72229..e5ba669aa7d 100644
--- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
+++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/shattered_halls.cpp
@@ -103,7 +103,7 @@ class boss_shattered_executioner : public CreatureScript
void JustSummoned(Creature*) override { } // avoid despawn of prisoners on death/reset
- void JustDied(Unit*) override
+ void JustDied(Unit* /*killer*/) override
{
_JustDied();
diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
index 7db59f845a3..0da8ce27afa 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -653,10 +653,10 @@ class boss_kaelthas : public CreatureScript
}
}
- void JustDied(Unit* killer) override
+ void JustDied(Unit* /*killer*/) override
{
Talk(SAY_DEATH);
- BossAI::JustDied(killer);
+ _JustDied();
}
void UpdateAI(uint32 diff) override
diff --git a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
index e48cc486797..0e35f4625e3 100644
--- a/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Mechanar/boss_mechano_lord_capacitus.cpp
@@ -93,7 +93,7 @@ class boss_mechano_lord_capacitus : public CreatureScript
Talk(YELL_KILL);
}
- void JustDied(Unit* /*victim*/) override
+ void JustDied(Unit* /*killer*/) override
{
_JustDied();
Talk(YELL_DEATH);
diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
index d9e5e030a86..efcc0778919 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -972,6 +972,9 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer)
+ return;
+
switch (killer->GetTypeId())
{
case TYPEID_UNIT: