diff options
Diffstat (limited to 'src')
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: |