aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeader <keader.android@gmail.com>2018-02-08 10:05:08 -0300
committerKeader <keader.android@gmail.com>2018-02-08 10:05:08 -0300
commit5bef3e426aea37b0e7555f146037c58e7be6352d (patch)
treeab3822ce2e0e1c3e7d883e6f942f3a9973f91e3b /src
parentb490d3f5ad6ccdfd103c8f756d2912f05b1741a0 (diff)
Core/Scripts: Fixed possible crashs related with JustDied
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_lavanthor.cpp5
-rw-r--r--src/server/scripts/Northrend/VioletHold/boss_moragg.cpp5
-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
35 files changed, 82 insertions, 59 deletions
diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
index 0005338c231..2a2145f9423 100644
--- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
+++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_nefarian.cpp
@@ -436,7 +436,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 5c2d712776f..5c4a3f25884 100644
--- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
+++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp
@@ -199,13 +199,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 24a6631b028..d6b913063e3 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 f2b86da5adc..7a5e35e9ed8 100644
--- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
+++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp
@@ -866,7 +866,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 ee2c7d70bfe..9a9a0e00938 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 628d6345ece..9778c0ad40d 100644
--- a/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
+++ b/src/server/scripts/EasternKingdoms/ShadowfangKeep/boss_apothecary_hummel.cpp
@@ -319,7 +319,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);
}
@@ -347,7 +347,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 cb11ad95966..9bc3b72c3ef 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
@@ -130,7 +130,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 03c36ccfc1a..7234ab0926f 100644
--- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
+++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp
@@ -376,7 +376,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 1eff1f00f85..92e1bf210ce 100644
--- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
+++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp
@@ -442,12 +442,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 3162d0b03fc..969ce3da68b 100644
--- a/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
+++ b/src/server/scripts/Kalimdor/WailingCaverns/wailing_caverns.cpp
@@ -137,7 +137,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 9d157c4b4dd..88341f62c5b 100644
--- a/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
+++ b/src/server/scripts/Kalimdor/zone_bloodmyst_isle.cpp
@@ -68,6 +68,9 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer)
+ return;
+
uint32 spawnCreatureID = 0;
switch (urand(0, 2))
@@ -262,6 +265,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 4b2e5e738f8..de63a782730 100644
--- a/src/server/scripts/Kalimdor/zone_silithus.cpp
+++ b/src/server/scripts/Kalimdor/zone_silithus.cpp
@@ -698,7 +698,7 @@ public:
}
void JustEngagedWith(Unit* /*who*/) override { }
- void JustDied(Unit* /*slayer*/) override;
+ void JustDied(Unit* /*killer*/) override;
void UpdateAI(uint32 diff) override
{
@@ -934,7 +934,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 6a15e9b971a..ba54dff4847 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 e59ea6eb024..82899b65ff4 100644
--- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
+++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp
@@ -488,7 +488,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 3a2a9a1a8da..ff532ed5a59 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
@@ -203,6 +203,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 08d1c9f89fc..dd955beef8f 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_lady_deathwhisper.cpp
@@ -368,6 +368,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())
@@ -890,6 +894,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 301f6a90ebd..cffe94206fe 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 c0e26fabda3..99c5ed056a0 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_thorim.cpp
@@ -1157,7 +1157,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);
@@ -1416,7 +1416,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);
@@ -1527,7 +1527,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 bf769cb28a4..b3318d83022 100644
--- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
+++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_yogg_saron.cpp
@@ -527,13 +527,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 91890317d40..fab3265b7d1 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 f9255d58273..1ac10fe4e1f 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 f62621e56fb..ed6be37b23a 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_lavanthor.cpp b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
index c61493eeb1f..f616eec7b17 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_lavanthor.cpp
@@ -53,11 +53,6 @@ class boss_lavanthor : public CreatureScript
instance->SetData(DATA_HANDLE_CELLS, DATA_LAVANTHOR);
}
- void JustDied(Unit* killer) override
- {
- BossAI::JustDied(killer);
- }
-
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
diff --git a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
index cc27e9607f1..fbff39951d7 100644
--- a/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
+++ b/src/server/scripts/Northrend/VioletHold/boss_moragg.cpp
@@ -60,11 +60,6 @@ class boss_moragg : public CreatureScript
instance->SetData(DATA_HANDLE_CELLS, DATA_MORAGG);
}
- void JustDied(Unit* killer) override
- {
- BossAI::JustDied(killer);
- }
-
void UpdateAI(uint32 diff) override
{
if (!UpdateVictim())
diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp
index fe6b420f6f6..9802ff1bb44 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 b192544d59d..066787e9af4 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 d7dcf7e3639..21efd45d8e7 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)
{
@@ -1273,9 +1274,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, 0);
+
+ if (killer && killer->GetTypeId() == TYPEID_PLAYER)
+ killer->ToPlayer()->RewardPlayerAndGroupAtEvent(NPC_PRINCE_VALANAR, 0);
}
};
@@ -1944,9 +1945,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 1851d46d8a6..78134acc176 100644
--- a/src/server/scripts/Northrend/zone_howling_fjord.cpp
+++ b/src/server/scripts/Northrend/zone_howling_fjord.cpp
@@ -638,11 +638,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 153778d9252..045fe331275 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 358297abb44..d1e38acc9ef 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 b37dfeb3268..d8444986830 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
@@ -487,6 +487,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 96001562d10..a9f21b9e7f2 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 2815084ec8b..2ed16192e5d 100644
--- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
+++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp
@@ -654,10 +654,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 65233e36cd7..c8f1a3666aa 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
@@ -94,7 +94,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 b317bda4e0e..c140c34b3d9 100644
--- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
+++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp
@@ -973,6 +973,9 @@ public:
void JustDied(Unit* killer) override
{
+ if (!killer)
+ return;
+
switch (killer->GetTypeId())
{
case TYPEID_UNIT: