aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Northrend
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/server/scripts/Northrend
parentb490d3f5ad6ccdfd103c8f756d2912f05b1741a0 (diff)
Core/Scripts: Fixed possible crashs related with JustDied
Diffstat (limited to 'src/server/scripts/Northrend')
-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
17 files changed, 45 insertions, 40 deletions
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));