diff options
| author | Keader <keader.android@gmail.com> | 2018-02-08 10:05:08 -0300 |
|---|---|---|
| committer | Keader <keader.android@gmail.com> | 2018-02-08 10:05:08 -0300 |
| commit | 5bef3e426aea37b0e7555f146037c58e7be6352d (patch) | |
| tree | ab3822ce2e0e1c3e7d883e6f942f3a9973f91e3b /src/server/scripts/EasternKingdoms | |
| parent | b490d3f5ad6ccdfd103c8f756d2912f05b1741a0 (diff) | |
Core/Scripts: Fixed possible crashs related with JustDied
Diffstat (limited to 'src/server/scripts/EasternKingdoms')
8 files changed, 12 insertions, 10 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 |
