diff options
21 files changed, 88 insertions, 35 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 0affcc59605..39aefd45287 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 @@ -539,6 +539,9 @@ class achievement_watch_him_die : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + InstanceScript* instance = target->GetInstanceScript(); Creature* Watcher[3]; if (!instance) diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp index 25164e08f65..1513bebead7 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_elder_nadox.cpp @@ -127,12 +127,6 @@ class boss_elder_nadox : public CreatureScript return 0; } - void SetData(uint32 id, uint32 data) - { - if (id == DATA_RESPECT_YOUR_ELDERS) - respectYourElders = data ? true : false; - } - void UpdateAI(uint32 const diff) { if (!UpdateVictim()) @@ -311,6 +305,9 @@ class achievement_respect_your_elders : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Nadox = target->ToCreature()) if (Nadox->AI()->GetData(DATA_RESPECT_YOUR_ELDERS)) return true; diff --git a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp index 2923359e0fe..a3fd20c830e 100644 --- a/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/ahnkahet/boss_jedoga_shadowseeker.cpp @@ -606,6 +606,9 @@ class achievement_volunteer_work : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Jedoga = target->ToCreature()) if (Jedoga->AI()->GetData(DATA_VOLUNTEER_WORK)) return true; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index aaf2dad111c..847b5ddb9cc 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -1707,6 +1707,9 @@ class achievement_twilight_assist : public AchievementCriteriaScript bool OnCheck(Player* player, Unit* target) { + if (!target) + return false; + if (Creature* Sartharion = target->ToCreature()) if (Sartharion->AI()->GetData(TWILIGHT_ACHIEVEMENTS) >= 1) return true; @@ -1724,6 +1727,9 @@ class achievement_twilight_duo : public AchievementCriteriaScript bool OnCheck(Player* player, Unit* target) { + if (!target) + return false; + if (Creature* Sartharion = target->ToCreature()) if (Sartharion->AI()->GetData(TWILIGHT_ACHIEVEMENTS) >= 2) return true; @@ -1741,6 +1747,9 @@ class achievement_twilight_zone : public AchievementCriteriaScript bool OnCheck(Player* player, Unit* target) { + if (!target) + return false; + if (Creature* Sartharion = target->ToCreature()) if (Sartharion->AI()->GetData(TWILIGHT_ACHIEVEMENTS) == 3) return true; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp index 2274b30b29a..3dcc620c87a 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_dred.cpp @@ -283,6 +283,9 @@ class achievement_king_dred : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Dred = target->ToCreature()) if (Dred->AI()->GetData(DATA_KING_DRED) >= 6) return true; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 4441c95a688..a92ed4abdb1 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -352,6 +352,9 @@ class achievement_oh_novos : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Novos = target->ToCreature()) if (Novos->AI()->GetData(DATA_OH_NOVOS)) return true; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp index 641c3bed197..745c092b673 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_trollgore.cpp @@ -204,6 +204,9 @@ class achievement_consumption_junction : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Trollgore = target->ToCreature()) if (Trollgore->AI()->GetData(DATA_CONSUMPTION_JUNCTION)) return true; diff --git a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp index bcaf643136e..c7f54e27191 100644 --- a/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/ForgeOfSouls/boss_devourer_of_souls.cpp @@ -375,6 +375,9 @@ class achievement_three_faced : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Devourer = target->ToCreature()) if (Devourer->AI()->GetData(DATA_THREE_FACED)) return true; diff --git a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp index 6adf8314d5e..96f7fb200a5 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_gal_darah.cpp @@ -293,6 +293,9 @@ class achievement_share_the_love : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* GalDarah = target->ToCreature()) if (GalDarah->AI()->GetData(DATA_SHARE_THE_LOVE) >= 5) return true; diff --git a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp index 71cd150e2ee..660cf571c68 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_moorabi.cpp @@ -179,6 +179,9 @@ class achievement_less_rabi : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Moorabi = target->ToCreature()) if (Moorabi->AI()->GetData(DATA_LESS_RABI)) return true; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp index b11e5eb82f3..2fc5a8499c1 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_heigan.cpp @@ -216,6 +216,9 @@ class achievement_safety_dance : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Heigan = target->ToCreature()) if (Heigan->AI()->GetData(DATA_SAFETY_DANCE)) return true; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp index eece702f984..98f821eb153 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp @@ -263,6 +263,9 @@ class achievement_chaos_theory : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Anomalus = target->ToCreature()) if (Anomalus->AI()->GetData(DATA_CHAOS_THEORY)) return true; diff --git a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp index b93090aac31..3440ba0a028 100644 --- a/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp +++ b/src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp @@ -346,6 +346,9 @@ class achievement_split_personality : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Telestra = target->ToCreature()) if (Telestra->AI()->GetData(DATA_SPLIT_PERSONALITY) == 2) return true; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp index 6de54d357c5..808f0d6a8e0 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_sjonnir.cpp @@ -327,6 +327,9 @@ class achievement_abuse_the_ooze : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Sjonnir = target->ToCreature()) if (Sjonnir->AI()->GetData(DATA_ABUSE_THE_OOZE) >= 5) return true; diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp index 19bc5e9da7b..2af26df3829 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -744,6 +744,9 @@ class achievement_brann_spankin_new : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Brann = target->ToCreature()) if (Brann->AI()->GetData(DATA_BRANN_SPARKLIN_NEWS)) return true; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp index 051fd1ad5f7..0684e8a4fac 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_auriaya.cpp @@ -544,6 +544,9 @@ class achievement_nine_lives : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Auriaya = target->ToCreature()) if (Auriaya->AI()->GetData(DATA_NINE_LIVES)) return true; @@ -561,6 +564,9 @@ class achievement_crazy_cat_lady : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Auriaya = target->ToCreature()) if (Auriaya->AI()->GetData(DATA_CRAZY_CAT_LADY)) return true; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp index bcd22a5c248..b3dea49203b 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_freya.cpp @@ -1620,6 +1620,9 @@ class achievement_knock_on_wood : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Freya = target->ToCreature()) if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) >= 1) return true; @@ -1637,6 +1640,9 @@ class achievement_knock_knock_on_wood : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Freya = target->ToCreature()) if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) >= 2) return true; @@ -1654,6 +1660,9 @@ class achievement_knock_knock_knock_on_wood : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Freya = target->ToCreature()) if (Freya->AI()->GetData(DATA_KNOCK_ON_WOOD) == 3) return true; @@ -1671,6 +1680,9 @@ class achievement_getting_back_to_nature : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Freya = target->ToCreature()) if (Freya->AI()->GetData(DATA_GETTING_BACK_TO_NATURE) >= 25) return true; diff --git a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp index cbb4550a3e2..f45b0815abe 100644 --- a/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/ulduar/boss_general_vezax.cpp @@ -203,7 +203,7 @@ class boss_general_vezax : public CreatureScript void SpellHitTarget(Unit* who, SpellEntry const* spell) { if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == SPELL_SHADOW_CRASH_HIT) - SetData(DATA_SHADOWDODGER, 0); + shadowDodger = false; } void KilledUnit(Unit* /*who*/) @@ -245,25 +245,12 @@ class boss_general_vezax : public CreatureScript return 0; } - void SetData(uint32 id, uint32 data) - { - switch (id) - { - case DATA_SHADOWDODGER: - shadowDodger = data ? true : false; - break; - case DATA_SMELL_SARONITE: - smellSaronite = data ? true : false; - break; - } - } - void DoAction(int32 const action) { switch (action) { case ACTION_VAPORS_DIE: - SetData(DATA_SMELL_SARONITE, 0); + smellSaronite = false; break; case ACTION_ANIMUS_DIE: me->RemoveAurasDueToSpell(SPELL_SARONITE_BARRIER); @@ -487,6 +474,9 @@ class achievement_shadowdodger : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Vezax = target->ToCreature()) if (Vezax->AI()->GetData(DATA_SHADOWDODGER)) return true; @@ -504,6 +494,9 @@ class achievement_smell_saronite : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Vezax = target->ToCreature()) if (Vezax->AI()->GetData(DATA_SMELL_SARONITE)) return true; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index 1fb24699b60..7bd659400b7 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -194,13 +194,7 @@ public: void SpellHitTarget(Unit* who, SpellEntry const* spell) { if (who && who->GetTypeId() == TYPEID_PLAYER && spell->Id == 59302) - SetData(DATA_KINGS_BANE, 0); - } - - void SetData(uint32 id, uint32 data) - { - if (id == DATA_KINGS_BANE) - kingsBane = data ? true : false; + kingsBane = false; } uint32 GetData(uint32 type) @@ -406,6 +400,9 @@ class achievement_kings_bane : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Ymiron = target->ToCreature()) if (Ymiron->AI()->GetData(DATA_KINGS_BANE)) return true; diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index db85422942f..1e3914ab40b 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -404,6 +404,9 @@ class achievement_dehydration : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Ichoron = target->ToCreature()) if (Ichoron->AI()->GetData(DATA_DEHYDRATION)) return true; diff --git a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp index af7321b4dd1..16f49316782 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_zuramat.cpp @@ -154,13 +154,7 @@ public: void SummonedCreatureDies(Creature* summoned, Unit* /*who*/) { if (summoned->GetEntry() == CREATURE_VOID_SENTRY) - SetData(DATA_VOID_DANCE, 0); - } - - void SetData(uint32 id, uint32 data) - { - if (id == DATA_VOID_DANCE) - voidDance = data ? true : false; + voidDance = false; } uint32 GetData(uint32 type) @@ -217,6 +211,9 @@ class achievement_void_dance : public AchievementCriteriaScript bool OnCheck(Player* /*player*/, Unit* target) { + if (!target) + return false; + if (Creature* Zuramat = target->ToCreature()) if (Zuramat->AI()->GetData(DATA_VOID_DANCE)) return true; |