diff options
Diffstat (limited to 'src/server/scripts')
159 files changed, 1680 insertions, 1564 deletions
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp index e4b9737a544..d47ee20fac5 100644 --- a/src/server/scripts/Commands/cs_modify.cpp +++ b/src/server/scripts/Commands/cs_modify.cpp @@ -1020,8 +1020,8 @@ public:              }              else              { -                uint32 moneyToAddMsg = moneyToAdd * -1; -                if (newmoney > int64(MAX_MONEY_AMOUNT)) +                uint64 moneyToAddMsg = moneyToAdd * -1; +                if (newmoney > static_cast<int64>(MAX_MONEY_AMOUNT))                      newmoney = MAX_MONEY_AMOUNT;                  handler->PSendSysMessage(LANG_YOU_TAKE_MONEY, moneyToAddMsg, handler->GetNameLink(target).c_str()); diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index e7aeb289833..fb465aaca16 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -720,6 +720,7 @@ public:          handler->PSendSysMessage(LANG_NPCINFO_LEVEL, target->getLevel());          handler->PSendSysMessage(LANG_NPCINFO_EQUIPMENT, target->GetCurrentEquipmentId(), target->GetOriginalEquipmentId());          handler->PSendSysMessage(LANG_NPCINFO_HEALTH, target->GetCreateHealth(), target->GetMaxHealth(), target->GetHealth()); +        handler->PSendSysMessage(LANG_NPCINFO_INHABIT_TYPE, cInfo->InhabitType);          handler->PSendSysMessage(LANG_NPCINFO_UNIT_FIELD_FLAGS, target->GetUInt32Value(UNIT_FIELD_FLAGS));          for (uint8 i = 0; i < MAX_UNIT_FLAGS; ++i) diff --git a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp index 83b716728ea..47e91cac63d 100644 --- a/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp +++ b/src/server/scripts/EasternKingdoms/AlteracValley/boss_balinda.cpp @@ -82,7 +82,7 @@ public:              // check if creature is not outside of building              if (resetTimer < diff)              { -                if (Creature* pBalinda = Unit::GetCreature(*me, balindaGUID)) +                if (Creature* pBalinda = ObjectAccessor::GetCreature(*me, balindaGUID))                      if (me->GetDistance2d(pBalinda->GetHomePosition().GetPositionX(), pBalinda->GetHomePosition().GetPositionY()) > 50)                          EnterEvadeMode();                  resetTimer = 5 * IN_MILLISECONDS; @@ -212,4 +212,4 @@ void AddSC_boss_balinda()  {      new boss_balinda;      new npc_water_elemental; -}; +} diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp index 1ab2d746aa5..3eab75cfd76 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/blackrock_depths.cpp @@ -229,7 +229,7 @@ public:                      if (RingBossGUID)                      { -                        Creature* boss = Unit::GetCreature(*me, RingBossGUID); +                        Creature* boss = ObjectAccessor::GetCreature(*me, RingBossGUID);                          if (boss && !boss->IsAlive() && boss->isDead())                          {                              RingBossGUID = 0; @@ -242,7 +242,7 @@ public:                      for (uint8 i = 0; i < MAX_NPC_AMOUNT; ++i)                      { -                        Creature* mob = Unit::GetCreature(*me, RingMobGUID[i]); +                        Creature* mob = ObjectAccessor::GetCreature(*me, RingMobGUID[i]);                          if (mob && !mob->IsAlive() && mob->isDead())                          {                              RingMobGUID[i] = 0; @@ -1304,7 +1304,7 @@ public:                      DoGo(DATA_GO_BAR_KEG_TRAP, 0);               //doesn't work very well, leaving code here for future                      //spell by trap has effect61, this indicate the bar go hostile -                    if (Unit* tmp = Unit::GetUnit(*me, instance->GetData64(DATA_PHALANX))) +                    if (Unit* tmp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PHALANX)))                          tmp->setFaction(14);                      //for later, this event(s) has alot more to it. diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp index 4ac039e9138..3e4097daf20 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_ambassador_flamelash.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -24,64 +23,74 @@ enum Spells      SPELL_FIREBLAST                                        = 15573  }; -class boss_ambassador_flamelash : public CreatureScript +enum Events  { -public: -    boss_ambassador_flamelash() : CreatureScript("boss_ambassador_flamelash") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_ambassador_flamelashAI(creature); -    } - -    struct boss_ambassador_flamelashAI : public ScriptedAI -    { -        boss_ambassador_flamelashAI(Creature* creature) : ScriptedAI(creature) { } +    EVENT_FIREBLAST                                        = 1, +    EVENT_SUMMON_SPIRITS                                   = 2 +}; -        uint32 FireBlast_Timer; -        uint32 Spirit_Timer; +class boss_ambassador_flamelash : public CreatureScript +{ +    public: +        boss_ambassador_flamelash() : CreatureScript("boss_ambassador_flamelash") { } -        void Reset() override +        struct boss_ambassador_flamelashAI : public ScriptedAI          { -            FireBlast_Timer = 2000; -            Spirit_Timer = 24000; -        } +            boss_ambassador_flamelashAI(Creature* creature) : ScriptedAI(creature) { } -        void EnterCombat(Unit* /*who*/) override { } - -        void SummonSpirits(Unit* victim) -        { -            if (Creature* Spirit = DoSpawnCreature(9178, float(irand(-9, 9)), float(irand(-9, 9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000)) -                Spirit->AI()->AttackStart(victim); -        } +            void Reset() override +            { +                _events.Reset(); +            } -        void UpdateAI(uint32 diff) override -        { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            void EnterCombat(Unit* /*who*/) override +            { +                _events.ScheduleEvent(EVENT_FIREBLAST, 2000); +                _events.ScheduleEvent(EVENT_SUMMON_SPIRITS, 24000); +            } -            //FireBlast_Timer -            if (FireBlast_Timer <= diff) +            void SummonSpirit(Unit* victim)              { -                DoCastVictim(SPELL_FIREBLAST); -                FireBlast_Timer = 7000; -            } else FireBlast_Timer -= diff; +                if (Creature* spirit = DoSpawnCreature(9178, frand(-9, 9), frand(-9, 9), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 60000)) +                    spirit->AI()->AttackStart(victim); +            } -            //Spirit_Timer -            if (Spirit_Timer <= diff) +            void UpdateAI(uint32 diff) override              { -                SummonSpirits(me->GetVictim()); -                SummonSpirits(me->GetVictim()); -                SummonSpirits(me->GetVictim()); -                SummonSpirits(me->GetVictim()); +                if (!UpdateVictim()) +                    return; -                Spirit_Timer = 30000; -            } else Spirit_Timer -= diff; +                _events.Update(diff); -            DoMeleeAttackIfReady(); +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_FIREBLAST: +                            DoCastVictim(SPELL_FIREBLAST); +                            _events.ScheduleEvent(EVENT_FIREBLAST, 7000); +                            break; +                        case EVENT_SUMMON_SPIRITS: +                            for (uint32 i = 0; i < 4; ++i) +                                SummonSpirit(me->GetVictim()); +                            _events.ScheduleEvent(EVENT_SUMMON_SPIRITS, 30000); +                            break; +                        default: +                            break; +                    } +                } + +                DoMeleeAttackIfReady(); +            } + +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_ambassador_flamelashAI(creature);          } -    };  };  void AddSC_boss_ambassador_flamelash() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp index fd8b77ea8d4..894b528c03c 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_anubshiah.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -21,90 +20,94 @@  enum Spells  { -    SPELL_SHADOWBOLT                                       = 17228, -    SPELL_CURSEOFTONGUES                                   = 15470, -    SPELL_CURSEOFWEAKNESS                                  = 17227, -    SPELL_DEMONARMOR                                       = 11735, -    SPELL_ENVELOPINGWEB                                    = 15471 +    SPELL_SHADOWBOLT                    = 17228, +    SPELL_CURSEOFTONGUES                = 15470, +    SPELL_CURSEOFWEAKNESS               = 17227, +    SPELL_DEMONARMOR                    = 11735, +    SPELL_ENVELOPINGWEB                 = 15471  }; -class boss_anubshiah : public CreatureScript +enum Events  { -public: -    boss_anubshiah() : CreatureScript("boss_anubshiah") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_anubshiahAI(creature); -    } - -    struct boss_anubshiahAI : public ScriptedAI -    { -        boss_anubshiahAI(Creature* creature) : ScriptedAI(creature) { } - -        uint32 ShadowBolt_Timer; -        uint32 CurseOfTongues_Timer; -        uint32 CurseOfWeakness_Timer; -        uint32 DemonArmor_Timer; -        uint32 EnvelopingWeb_Timer; - -        void Reset() override -        { -            ShadowBolt_Timer = 7000; -            CurseOfTongues_Timer = 24000; -            CurseOfWeakness_Timer = 12000; -            DemonArmor_Timer = 3000; -            EnvelopingWeb_Timer = 16000; -        } +    EVENT_SHADOWBOLT                    = 1, +    EVENT_CURSE_OF_TONGUES              = 2, +    EVENT_CURSE_OF_WEAKNESS             = 3, +    EVENT_DEMON_ARMOR                   = 4, +    EVENT_ENVELOPING_WEB                = 5 +}; -        void EnterCombat(Unit* /*who*/) override { } +class boss_anubshiah : public CreatureScript +{ +    public: +        boss_anubshiah() : CreatureScript("boss_anubshiah") { } -        void UpdateAI(uint32 diff) override +        struct boss_anubshiahAI : public ScriptedAI          { -            //Return since we have no target -            if (!UpdateVictim()) -                return; - -            //ShadowBolt_Timer -            if (ShadowBolt_Timer <= diff) -            { -                DoCastVictim(SPELL_SHADOWBOLT); -                ShadowBolt_Timer = 7000; -            } else ShadowBolt_Timer -= diff; - -            //CurseOfTongues_Timer -            if (CurseOfTongues_Timer <= diff) -            { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_CURSEOFTONGUES); -                CurseOfTongues_Timer = 18000; -            } else CurseOfTongues_Timer -= diff; +            boss_anubshiahAI(Creature* creature) : ScriptedAI(creature) { } -            //CurseOfWeakness_Timer -            if (CurseOfWeakness_Timer <= diff) +            void Reset() override              { -                DoCastVictim(SPELL_CURSEOFWEAKNESS); -                CurseOfWeakness_Timer = 45000; -            } else CurseOfWeakness_Timer -= diff; +                _events.Reset(); +            } -            //DemonArmor_Timer -            if (DemonArmor_Timer <= diff) +            void EnterCombat(Unit* /*who*/) override              { -                DoCast(me, SPELL_DEMONARMOR); -                DemonArmor_Timer = 300000; -            } else DemonArmor_Timer -= diff; - -            //EnvelopingWeb_Timer -            if (EnvelopingWeb_Timer <= diff) +                _events.ScheduleEvent(EVENT_SHADOWBOLT, 7000); +                _events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 24000); +                _events.ScheduleEvent(EVENT_CURSE_OF_WEAKNESS, 12000); +                _events.ScheduleEvent(EVENT_DEMON_ARMOR, 3000); +                _events.ScheduleEvent(EVENT_ENVELOPING_WEB, 16000); +            } + +            void UpdateAI(uint32 diff) override              { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_ENVELOPINGWEB); -                EnvelopingWeb_Timer = 12000; -            } else EnvelopingWeb_Timer -= diff; - -            DoMeleeAttackIfReady(); +                if (!UpdateVictim()) +                    return; + +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_SHADOWBOLT: +                            DoCast(me, SPELL_SHADOWBOLT); +                            _events.ScheduleEvent(EVENT_SHADOWBOLT, 7000); +                            break; +                        case EVENT_CURSE_OF_TONGUES: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) +                                DoCast(target, SPELL_CURSEOFTONGUES); +                            _events.ScheduleEvent(EVENT_CURSE_OF_TONGUES, 18000); +                            break; +                        case EVENT_CURSE_OF_WEAKNESS: +                            DoCastVictim(SPELL_CURSEOFWEAKNESS); +                            _events.ScheduleEvent(EVENT_CURSE_OF_WEAKNESS, 45000); +                            break; +                        case EVENT_DEMON_ARMOR: +                            DoCast(me, SPELL_DEMONARMOR); +                            _events.ScheduleEvent(EVENT_DEMON_ARMOR, 300000); +                            break; +                        case EVENT_ENVELOPING_WEB: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) +                                DoCast(target, SPELL_ENVELOPINGWEB); +                            _events.ScheduleEvent(EVENT_ENVELOPING_WEB, 12000); +                            break; +                        default: +                            break; +                    } +                } + +                DoMeleeAttackIfReady(); +            } + +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_anubshiahAI(creature);          } -    };  };  void AddSC_boss_anubshiah() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp index fffdf9c7514..cec29bcd4d1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_emperor_dagran_thaurissan.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -32,89 +31,89 @@ enum Spells      SPELL_AVATAROFFLAME                                    = 15636  }; -class boss_emperor_dagran_thaurissan : public CreatureScript +enum Events  { -public: -    boss_emperor_dagran_thaurissan() : CreatureScript("boss_emperor_dagran_thaurissan") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return GetInstanceAI<boss_draganthaurissanAI>(creature); -    } - -    struct boss_draganthaurissanAI : public ScriptedAI -    { -        boss_draganthaurissanAI(Creature* creature) : ScriptedAI(creature) -        { -            instance = me->GetInstanceScript(); -        } - -        InstanceScript* instance; -        uint32 HandOfThaurissan_Timer; -        uint32 AvatarOfFlame_Timer; -        //uint32 Counter; +    EVENT_HANDOFTHAURISSAN                                 = 1, +    EVENT_AVATAROFFLAME                                    = 2 +}; -        void Reset() override -        { -            HandOfThaurissan_Timer = 4000; -            AvatarOfFlame_Timer = 25000; -            //Counter= 0; -        } +class boss_emperor_dagran_thaurissan : public CreatureScript +{ +    public: +        boss_emperor_dagran_thaurissan() : CreatureScript("boss_emperor_dagran_thaurissan") { } -        void EnterCombat(Unit* /*who*/) override +        struct boss_draganthaurissanAI : public ScriptedAI          { -            Talk(SAY_AGGRO); -            me->CallForHelp(VISIBLE_RANGE); -        } +            boss_draganthaurissanAI(Creature* creature) : ScriptedAI(creature) +            { +                _instance = me->GetInstanceScript(); +            } -        void KilledUnit(Unit* /*victim*/) override -        { -            Talk(SAY_SLAY); -        } +            void Reset() override +            { +                _events.Reset(); +            } -        void JustDied(Unit* /*killer*/) override -        { -            if (Creature* Moira = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOIRA))) +            void EnterCombat(Unit* /*who*/) override              { -                Moira->AI()->EnterEvadeMode(); -                Moira->setFaction(35); +                Talk(SAY_AGGRO); +                me->CallForHelp(VISIBLE_RANGE); +                _events.ScheduleEvent(EVENT_HANDOFTHAURISSAN, 4000); +                _events.ScheduleEvent(EVENT_AVATAROFFLAME, 25000);              } -        } -        void UpdateAI(uint32 diff) override -        { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            void KilledUnit(Unit* who) override +            { +                if (who->GetTypeId() == TYPEID_PLAYER) +                    Talk(SAY_SLAY); +            } -            if (HandOfThaurissan_Timer <= diff) +            void JustDied(Unit* /*killer*/) override              { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) -                    DoCast(target, SPELL_HANDOFTHAURISSAN); - -                //3 Hands of Thaurissan will be cast -                //if (Counter < 3) -                //{ -                //    HandOfThaurissan_Timer = 1000; -                //    ++Counter; -                //} -                //else -                //{ -                    HandOfThaurissan_Timer = 5000; -                    //Counter = 0; -                //} -            } else HandOfThaurissan_Timer -= diff; - -            //AvatarOfFlame_Timer -            if (AvatarOfFlame_Timer <= diff) +                if (Creature* moira = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_MOIRA))) +                { +                    moira->AI()->EnterEvadeMode(); +                    moira->setFaction(35); +                } +            } + +            void UpdateAI(uint32 diff) override              { -                DoCastVictim(SPELL_AVATAROFFLAME); -                AvatarOfFlame_Timer = 18000; -            } else AvatarOfFlame_Timer -= diff; +                if (!UpdateVictim()) +                    return; + +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_HANDOFTHAURISSAN: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0)) +                                DoCast(target, SPELL_HANDOFTHAURISSAN); +                            _events.ScheduleEvent(EVENT_HANDOFTHAURISSAN, 5000); +                            break; +                        case EVENT_AVATAROFFLAME: +                            DoCastVictim(SPELL_AVATAROFFLAME); +                            _events.ScheduleEvent(EVENT_AVATAROFFLAME, 18000); +                            break; +                        default: +                            break; +                    } +                } + +                DoMeleeAttackIfReady(); +            } + +        private: +            InstanceScript* _instance; +            EventMap _events; +        }; -            DoMeleeAttackIfReady(); +        CreatureAI* GetAI(Creature* creature) const override +        { +            return GetInstanceAI<boss_draganthaurissanAI>(creature);          } -    };  };  void AddSC_boss_draganthaurissan() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp index 34ce2276a54..d5b8d1deadd 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_general_angerforge.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -26,101 +25,113 @@ enum Spells      SPELL_CLEAVE                                           = 20691  }; -class boss_general_angerforge : public CreatureScript +enum Events  { -public: -    boss_general_angerforge() : CreatureScript("boss_general_angerforge") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_general_angerforgeAI(creature); -    } - -    struct boss_general_angerforgeAI : public ScriptedAI -    { -        boss_general_angerforgeAI(Creature* creature) : ScriptedAI(creature) { } - -        uint32 MightyBlow_Timer; -        uint32 HamString_Timer; -        uint32 Cleave_Timer; -        uint32 Adds_Timer; -        bool Medics; - -        void Reset() override -        { -            MightyBlow_Timer = 8000; -            HamString_Timer = 12000; -            Cleave_Timer = 16000; -            Adds_Timer = 0; -            Medics = false; -        } - -        void EnterCombat(Unit* /*who*/) override { } +    EVENT_MIGHTYBLOW                                       = 1, +    EVENT_HAMSTRING                                        = 2, +    EVENT_CLEAVE                                           = 3, +    EVENT_MEDIC                                            = 4, +    EVENT_ADDS                                             = 5 +}; -        void SummonAdds(Unit* victim) -        { -            if (Creature* SummonedAdd = DoSpawnCreature(8901, float(irand(-14, 14)), float(irand(-14, 14)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000)) -                SummonedAdd->AI()->AttackStart(victim); -        } +enum Phases +{ +    PHASE_ONE                                              = 1, +    PHASE_TWO                                              = 2 +}; -        void SummonMedics(Unit* victim) -        { -            if (Creature* SummonedMedic = DoSpawnCreature(8894, float(irand(-9, 9)), float(irand(-9, 9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000)) -                SummonedMedic->AI()->AttackStart(victim); -        } +class boss_general_angerforge : public CreatureScript +{ +    public: +        boss_general_angerforge() : CreatureScript("boss_general_angerforge") { } -        void UpdateAI(uint32 diff) override +        struct boss_general_angerforgeAI : public ScriptedAI          { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            boss_general_angerforgeAI(Creature* creature) : ScriptedAI(creature) { } -            //MightyBlow_Timer -            if (MightyBlow_Timer <= diff) +            void Reset() override              { -                DoCastVictim(SPELL_MIGHTYBLOW); -                MightyBlow_Timer = 18000; -            } else MightyBlow_Timer -= diff; +                _events.Reset(); +            } -            //HamString_Timer -            if (HamString_Timer <= diff) +            void EnterCombat(Unit* /*who*/) override              { -                DoCastVictim(SPELL_HAMSTRING); -                HamString_Timer = 15000; -            } else HamString_Timer -= diff; +                _events.SetPhase(PHASE_ONE); +                _events.ScheduleEvent(EVENT_MIGHTYBLOW, 8000); +                _events.ScheduleEvent(EVENT_HAMSTRING, 12000); +                _events.ScheduleEvent(EVENT_CLEAVE, 16000); +            } -            //Cleave_Timer -            if (Cleave_Timer <= diff) +            void DamageTaken(Unit* /*attacker*/, uint32& damage) override              { -                DoCastVictim(SPELL_CLEAVE); -                Cleave_Timer = 9000; -            } else Cleave_Timer -= diff; +                if (me->HealthBelowPctDamaged(20, damage) && _events.IsInPhase(PHASE_ONE)) +                { +                    _events.SetPhase(PHASE_TWO); +                    _events.ScheduleEvent(EVENT_MEDIC, 0, 0, PHASE_TWO); +                    _events.ScheduleEvent(EVENT_ADDS, 0, 0, PHASE_TWO); +                } +            } -            //Adds_Timer -            if (HealthBelowPct(21)) +            void SummonAdd(Unit* victim)              { -                if (Adds_Timer <= diff) -                { -                    // summon 3 Adds every 25s -                    SummonAdds(me->GetVictim()); -                    SummonAdds(me->GetVictim()); -                    SummonAdds(me->GetVictim()); +                if (Creature* SummonedAdd = DoSpawnCreature(8901, float(irand(-14, 14)), float(irand(-14, 14)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000)) +                    SummonedAdd->AI()->AttackStart(victim); +            } -                    Adds_Timer = 25000; -                } else Adds_Timer -= diff; +            void SummonMedic(Unit* victim) +            { +                if (Creature* SummonedMedic = DoSpawnCreature(8894, float(irand(-9, 9)), float(irand(-9, 9)), 0, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 120000)) +                    SummonedMedic->AI()->AttackStart(victim);              } -            //Summon Medics -            if (!Medics && HealthBelowPct(21)) +            void UpdateAI(uint32 diff) override              { -                SummonMedics(me->GetVictim()); -                SummonMedics(me->GetVictim()); -                Medics = true; +                if (!UpdateVictim()) +                    return; + +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_MIGHTYBLOW: +                            DoCastVictim(SPELL_MIGHTYBLOW); +                            _events.ScheduleEvent(EVENT_MIGHTYBLOW, 18000); +                            break; +                        case EVENT_HAMSTRING: +                            DoCastVictim(SPELL_HAMSTRING); +                            _events.ScheduleEvent(EVENT_HAMSTRING, 15000); +                            break; +                        case EVENT_CLEAVE: +                            DoCastVictim(SPELL_CLEAVE); +                            _events.ScheduleEvent(EVENT_CLEAVE, 9000); +                            break; +                        case EVENT_MEDIC: +                            for (uint8 i = 0; i < 2; ++i) +                                SummonMedic(me->GetVictim()); +                            break; +                        case EVENT_ADDS: +                            for (uint8 i = 0; i < 3; ++i) +                                SummonAdd(me->GetVictim()); +                            _events.ScheduleEvent(EVENT_ADDS, 25000, 0, PHASE_TWO); +                            break; +                        default: +                            break; +                    } +                } + +                DoMeleeAttackIfReady();              } -            DoMeleeAttackIfReady(); +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_general_angerforgeAI(creature);          } -    };  };  void AddSC_boss_general_angerforge() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp index b5998576f24..e9034e17d83 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_gorosh_the_dervish.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -25,56 +24,67 @@ enum Spells      SPELL_MORTALSTRIKE                                     = 24573  }; +enum Events +{ +    EVENT_WHIRLWIND                                        = 1, +    EVENT_MORTALSTRIKE                                     = 2 +}; +  class boss_gorosh_the_dervish : public CreatureScript  { -public: -    boss_gorosh_the_dervish() : CreatureScript("boss_gorosh_the_dervish") { } +    public: +        boss_gorosh_the_dervish() : CreatureScript("boss_gorosh_the_dervish") { } -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_gorosh_the_dervishAI(creature); -    } +        struct boss_gorosh_the_dervishAI : public ScriptedAI +        { +            boss_gorosh_the_dervishAI(Creature* creature) : ScriptedAI(creature) { } -    struct boss_gorosh_the_dervishAI : public ScriptedAI -    { -        boss_gorosh_the_dervishAI(Creature* creature) : ScriptedAI(creature) { } +            void Reset() override +            { +                _events.Reset(); +            } -        uint32 WhirlWind_Timer; -        uint32 MortalStrike_Timer; +            void EnterCombat(Unit* /*who*/) override +            { +                _events.ScheduleEvent(EVENT_WHIRLWIND, 12000); +                _events.ScheduleEvent(EVENT_MORTALSTRIKE, 22000); +            } -        void Reset() override -        { -            WhirlWind_Timer = 12000; -            MortalStrike_Timer = 22000; -        } +            void UpdateAI(uint32 diff) override +            { +                if (!UpdateVictim()) +                    return; -        void EnterCombat(Unit* /*who*/) override -        { -        } +                _events.Update(diff); -        void UpdateAI(uint32 diff) override -        { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_WHIRLWIND: +                            DoCast(me, SPELL_WHIRLWIND); +                            _events.ScheduleEvent(EVENT_WHIRLWIND, 15000); +                            break; +                        case EVENT_MORTALSTRIKE: +                            DoCastVictim(SPELL_MORTALSTRIKE); +                            _events.ScheduleEvent(EVENT_MORTALSTRIKE, 15000); +                            break; +                        default: +                            break; +                    } +                } -            //WhirlWind_Timer -            if (WhirlWind_Timer <= diff) -            { -                DoCast(me, SPELL_WHIRLWIND); -                WhirlWind_Timer = 15000; -            } else WhirlWind_Timer -= diff; +                DoMeleeAttackIfReady(); +            } -            //MortalStrike_Timer -            if (MortalStrike_Timer <= diff) -            { -                DoCastVictim(SPELL_MORTALSTRIKE); -                MortalStrike_Timer = 15000; -            } else MortalStrike_Timer -= diff; +        private: +            EventMap _events; +        }; -            DoMeleeAttackIfReady(); +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_gorosh_the_dervishAI(creature);          } -    };  };  void AddSC_boss_gorosh_the_dervish() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp index c4277c2447e..f53fd0f65b3 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_grizzle.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -26,59 +25,83 @@ enum Grizzle      EMOTE_FRENZY_KILL       = 0  }; -class boss_grizzle : public CreatureScript +enum Events  { -public: -    boss_grizzle() : CreatureScript("boss_grizzle") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_grizzleAI(creature); -    } +    EVENT_GROUNDTREMOR      = 1, +    EVENT_FRENZY            = 2 +}; -    struct boss_grizzleAI : public ScriptedAI -    { -        boss_grizzleAI(Creature* creature) : ScriptedAI(creature) { } +enum Phases +{ +    PHASE_ONE               = 1, +    PHASE_TWO               = 2 +}; -        uint32 GroundTremor_Timer; -        uint32 Frenzy_Timer; +class boss_grizzle : public CreatureScript +{ +    public: +        boss_grizzle() : CreatureScript("boss_grizzle") { } -        void Reset() override +        struct boss_grizzleAI : public ScriptedAI          { -            GroundTremor_Timer = 12000; -            Frenzy_Timer =0; -        } +            boss_grizzleAI(Creature* creature) : ScriptedAI(creature) { } -        void EnterCombat(Unit* /*who*/) override { } +            void Reset() override +            { +                _events.Reset(); +            } -        void UpdateAI(uint32 diff) override -        { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            void EnterCombat(Unit* /*who*/) override +            { +                _events.SetPhase(PHASE_ONE); +                _events.ScheduleEvent(EVENT_GROUNDTREMOR, 12000); +            } -            //GroundTremor_Timer -            if (GroundTremor_Timer <= diff) +            void DamageTaken(Unit* /*attacker*/, uint32& damage) override              { -                DoCastVictim(SPELL_GROUNDTREMOR); -                GroundTremor_Timer = 8000; -            } else GroundTremor_Timer -= diff; +                if (me->HealthBelowPctDamaged(50, damage) && _events.IsInPhase(PHASE_ONE)) +                { +                    _events.SetPhase(PHASE_TWO); +                    _events.ScheduleEvent(EVENT_FRENZY, 0, 0, PHASE_TWO); +                } +            } -            //Frenzy_Timer -            if (HealthBelowPct(51)) +            void UpdateAI(uint32 diff) override              { -                if (Frenzy_Timer <= diff) +                if (!UpdateVictim()) +                    return; + +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent())                  { -                    DoCast(me, SPELL_FRENZY); -                    Talk(EMOTE_FRENZY_KILL); +                    switch (eventId) +                    { +                        case EVENT_GROUNDTREMOR: +                            DoCastVictim(SPELL_GROUNDTREMOR); +                            _events.ScheduleEvent(EVENT_GROUNDTREMOR, 8000); +                            break; +                        case EVENT_FRENZY: +                           DoCast(me, SPELL_FRENZY); +                           Talk(EMOTE_FRENZY_KILL); +                            _events.ScheduleEvent(EVENT_FRENZY, 15000, 0, PHASE_TWO); +                            break; +                        default: +                            break; +                    } +                } -                    Frenzy_Timer = 15000; -                } else Frenzy_Timer -= diff; +                DoMeleeAttackIfReady();              } -            DoMeleeAttackIfReady(); +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_grizzleAI(creature);          } -    };  };  void AddSC_boss_grizzle() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp index 6aa89aa491d..c41ddf9d98b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_high_interrogator_gerstahn.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -27,74 +26,81 @@ enum Spells      SPELL_SHADOWSHIELD                                     = 22417  }; -class boss_high_interrogator_gerstahn : public CreatureScript +enum Events  { -public: -    boss_high_interrogator_gerstahn() : CreatureScript("boss_high_interrogator_gerstahn") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_high_interrogator_gerstahnAI(creature); -    } - -    struct boss_high_interrogator_gerstahnAI : public ScriptedAI -    { -        boss_high_interrogator_gerstahnAI(Creature* creature) : ScriptedAI(creature) { } - -        uint32 ShadowWordPain_Timer; -        uint32 ManaBurn_Timer; -        uint32 PsychicScream_Timer; -        uint32 ShadowShield_Timer; - -        void Reset() override -        { -            ShadowWordPain_Timer = 4000; -            ManaBurn_Timer = 14000; -            PsychicScream_Timer = 32000; -            ShadowShield_Timer = 8000; -        } +    EVENT_SHADOW_WORD_PAIN                                 = 1, +    EVENT_MANABURN                                         = 2, +    EVENT_PSYCHIC_SCREAM                                   = 3, +    EVENT_SHADOWSHIELD                                     = 4 +}; -        void EnterCombat(Unit* /*who*/) override { } +class boss_high_interrogator_gerstahn : public CreatureScript +{ +    public: +        boss_high_interrogator_gerstahn() : CreatureScript("boss_high_interrogator_gerstahn") { } -        void UpdateAI(uint32 diff) override +        struct boss_high_interrogator_gerstahnAI : public ScriptedAI          { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            boss_high_interrogator_gerstahnAI(Creature* creature) : ScriptedAI(creature) { } -            //ShadowWordPain_Timer -            if (ShadowWordPain_Timer <= diff) +            void Reset() override              { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_SHADOWWORDPAIN); -                ShadowWordPain_Timer = 7000; -            } else ShadowWordPain_Timer -= diff; +                _events.Reset(); +            } -            //ManaBurn_Timer -            if (ManaBurn_Timer <= diff) +            void EnterCombat(Unit* /*who*/) override              { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_MANABURN); -                ManaBurn_Timer = 10000; -            } else ManaBurn_Timer -= diff; +                _events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 4000); +                _events.ScheduleEvent(EVENT_MANABURN, 14000); +                _events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, 32000); +                _events.ScheduleEvent(EVENT_SHADOWSHIELD, 8000); +            } -            //PsychicScream_Timer -            if (PsychicScream_Timer <= diff) +            void UpdateAI(uint32 diff) override              { -                DoCastVictim(SPELL_PSYCHICSCREAM); -                PsychicScream_Timer = 30000; -            } else PsychicScream_Timer -= diff; +                if (!UpdateVictim()) +                    return; -            //ShadowShield_Timer -            if (ShadowShield_Timer <= diff) -            { -                DoCast(me, SPELL_SHADOWSHIELD); -                ShadowShield_Timer = 25000; -            } else ShadowShield_Timer -= diff; +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_SHADOW_WORD_PAIN: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) +                                DoCast(target, SPELL_SHADOWWORDPAIN); +                            _events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 7000); +                            break; +                        case EVENT_PSYCHIC_SCREAM: +                            DoCastVictim(SPELL_PSYCHICSCREAM); +                            _events.ScheduleEvent(EVENT_PSYCHIC_SCREAM, 30000); +                            break; +                        case EVENT_MANABURN: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) +                                DoCast(target, SPELL_MANABURN); +                            _events.ScheduleEvent(EVENT_MANABURN, 10000); +                            break; +                        case EVENT_SHADOWSHIELD: +                            DoCast(me, SPELL_SHADOWSHIELD); +                            _events.ScheduleEvent(EVENT_SHADOWSHIELD, 25000); +                            break; +                        default: +                            break; +                    } +                } -            DoMeleeAttackIfReady(); +                DoMeleeAttackIfReady(); +            } + +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_high_interrogator_gerstahnAI(creature);          } -    };  };  void AddSC_boss_high_interrogator_gerstahn() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp index 4cf968ad3b7..e6bbbaa73a9 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_magmus.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -18,75 +17,96 @@  #include "ScriptMgr.h"  #include "ScriptedCreature.h" +#include "blackrock_depths.h"  enum Spells  { -    SPELL_FIERYBURST                                       = 13900, -    SPELL_WARSTOMP                                         = 24375 +    SPELL_FIERYBURST        = 13900, +    SPELL_WARSTOMP          = 24375  }; -enum Misc +enum Events  { -    DATA_THRONE_DOOR                                       = 24 // not id or guid of doors but number of enum in blackrock_depths.h +    EVENT_FIERY_BURST       = 1, +    EVENT_WARSTOMP          = 2  }; -class boss_magmus : public CreatureScript +enum Phases  { -public: -    boss_magmus() : CreatureScript("boss_magmus") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_magmusAI(creature); -    } - -    struct boss_magmusAI : public ScriptedAI -    { -        boss_magmusAI(Creature* creature) : ScriptedAI(creature) { } +    PHASE_ONE               = 1, +    PHASE_TWO               = 2 +}; -        uint32 FieryBurst_Timer; -        uint32 WarStomp_Timer; +class boss_magmus : public CreatureScript +{ +    public: +        boss_magmus() : CreatureScript("boss_magmus") { } -        void Reset() override +        struct boss_magmusAI : public ScriptedAI          { -            FieryBurst_Timer = 5000; -            WarStomp_Timer =0; -        } +            boss_magmusAI(Creature* creature) : ScriptedAI(creature) { } -        void EnterCombat(Unit* /*who*/) override { } +            void Reset() override +            { +                _events.Reset(); +            } -        void UpdateAI(uint32 diff) override -        { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            void EnterCombat(Unit* /*who*/) override +            { +                _events.SetPhase(PHASE_ONE); +                _events.ScheduleEvent(EVENT_FIERY_BURST, 5000); +            } -            //FieryBurst_Timer -            if (FieryBurst_Timer <= diff) +            void DamageTaken(Unit* /*attacker*/, uint32& damage) override              { -                DoCastVictim(SPELL_FIERYBURST); -                FieryBurst_Timer = 6000; -            } else FieryBurst_Timer -= diff; +                if (me->HealthBelowPctDamaged(50, damage) && _events.IsInPhase(PHASE_ONE)) +                { +                    _events.SetPhase(PHASE_TWO); +                    _events.ScheduleEvent(EVENT_WARSTOMP, 0, 0, PHASE_TWO); +                } +            } -            //WarStomp_Timer -            if (HealthBelowPct(51)) +            void UpdateAI(uint32 diff) override              { -                if (WarStomp_Timer <= diff) +                if (!UpdateVictim()) +                    return; + +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent())                  { -                    DoCastVictim(SPELL_WARSTOMP); -                    WarStomp_Timer = 8000; -                } else WarStomp_Timer -= diff; +                    switch (eventId) +                    { +                        case EVENT_FIERY_BURST: +                            DoCastVictim(SPELL_FIERYBURST); +                            _events.ScheduleEvent(EVENT_FIERY_BURST, 6000); +                            break; +                        case EVENT_WARSTOMP: +                            DoCastVictim(SPELL_WARSTOMP); +                            _events.ScheduleEvent(EVENT_WARSTOMP, 8000, 0, PHASE_TWO); +                            break; +                        default: +                            break; +                    } +                } + +                DoMeleeAttackIfReady();              } -            DoMeleeAttackIfReady(); -        } -        // When he die open door to last chamber -        void JustDied(Unit* killer) override +            void JustDied(Unit* /*killer*/) override +            { +                if (InstanceScript* instance = me->GetInstanceScript()) +                    instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true); +            } + +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override          { -            if (InstanceScript* instance = killer->GetInstanceScript()) -                instance->HandleGameObject(instance->GetData64(DATA_THRONE_DOOR), true); +            return new boss_magmusAI(creature);          } -    };  };  void AddSC_boss_magmus() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp index 98f5f75ae3f..8342bef682b 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_moira_bronzebeard.cpp @@ -1,6 +1,5 @@  /*   * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * Copyright (C) 2006-2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/>   *   * This program is free software; you can redistribute it and/or modify it   * under the terms of the GNU General Public License as published by the @@ -29,63 +28,73 @@ enum Spells      SPELL_SMITE                                            = 10934  }; -class boss_moira_bronzebeard : public CreatureScript +enum Events  { -public: -    boss_moira_bronzebeard() : CreatureScript("boss_moira_bronzebeard") { } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return new boss_moira_bronzebeardAI(creature); -    } - -    struct boss_moira_bronzebeardAI : public ScriptedAI -    { -        boss_moira_bronzebeardAI(Creature* creature) : ScriptedAI(creature) { } - -        uint32 Heal_Timer; -        uint32 MindBlast_Timer; -        uint32 ShadowWordPain_Timer; -        uint32 Smite_Timer; - -        void Reset() override -        { -            Heal_Timer = 12000;                                 //These times are probably wrong -            MindBlast_Timer = 16000; -            ShadowWordPain_Timer = 2000; -            Smite_Timer = 8000; -        } +    EVENT_MINDBLAST                                        = 1, +    EVENT_SHADOW_WORD_PAIN                                 = 2, +    EVENT_SMITE                                            = 3, +    EVENT_HEAL                                             = 4  // not used atm +}; -        void EnterCombat(Unit* /*who*/) override { } +class boss_moira_bronzebeard : public CreatureScript +{ +    public: +        boss_moira_bronzebeard() : CreatureScript("boss_moira_bronzebeard") { } -        void UpdateAI(uint32 diff) override +        struct boss_moira_bronzebeardAI : public ScriptedAI          { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            boss_moira_bronzebeardAI(Creature* creature) : ScriptedAI(creature) { } -            //MindBlast_Timer -            if (MindBlast_Timer <= diff) +            void Reset() override              { -                DoCastVictim(SPELL_MINDBLAST); -                MindBlast_Timer = 14000; -            } else MindBlast_Timer -= diff; +                _events.Reset(); +            } -            //ShadowWordPain_Timer -            if (ShadowWordPain_Timer <= diff) +            void EnterCombat(Unit* /*who*/) override              { -                DoCastVictim(SPELL_SHADOWWORDPAIN); -                ShadowWordPain_Timer = 18000; -            } else ShadowWordPain_Timer -= diff; +                //_events.ScheduleEvent(EVENT_HEAL, 12000); // not used atm // These times are probably wrong +                _events.ScheduleEvent(EVENT_MINDBLAST, 16000); +                _events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 2000); +                _events.ScheduleEvent(EVENT_SMITE, 8000); +            } -            //Smite_Timer -            if (Smite_Timer <= diff) +            void UpdateAI(uint32 diff) override              { -                DoCastVictim(SPELL_SMITE); -                Smite_Timer = 10000; -            } else Smite_Timer -= diff; +                if (!UpdateVictim()) +                    return; + +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_MINDBLAST: +                            DoCastVictim(SPELL_MINDBLAST); +                            _events.ScheduleEvent(EVENT_MINDBLAST, 14000); +                            break; +                        case EVENT_SHADOW_WORD_PAIN: +                            DoCastVictim(SPELL_SHADOWWORDPAIN); +                            _events.ScheduleEvent(EVENT_SHADOW_WORD_PAIN, 18000); +                            break; +                        case EVENT_SMITE: +                            DoCastVictim(SPELL_SMITE); +                            _events.ScheduleEvent(EVENT_SMITE, 10000); +                            break; +                        default: +                            break; +                    } +                } +            } + +        private: +            EventMap _events; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return new boss_moira_bronzebeardAI(creature);          } -    };  };  void AddSC_boss_moira_bronzebeard() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp index cbcafa32a89..83464c12230 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockDepths/boss_tomb_of_seven.cpp @@ -24,18 +24,24 @@  enum Spells  { -    SPELL_SMELT_DARK_IRON                         = 14891, -    SPELL_LEARN_SMELT                             = 14894, +    SPELL_SMELT_DARK_IRON       = 14891, +    SPELL_LEARN_SMELT           = 14894,  };  enum Quests  { -    QUEST_SPECTRAL_CHALICE                        = 4083 +    QUEST_SPECTRAL_CHALICE      = 4083  };  enum Misc  { -    DATA_SKILLPOINT_MIN                           = 230 +    DATA_SKILLPOINT_MIN         = 230 +}; + +enum Phases +{ +    PHASE_ONE                   = 1, +    PHASE_TWO                   = 2  };  #define GOSSIP_ITEM_TEACH_1 "Teach me the art of smelting dark iron" @@ -99,149 +105,151 @@ enum DoomrelSpells      SPELL_SUMMON_VOIDWALKERS                               = 15092  }; +enum DoomrelEvents +{ +    EVENT_SHADOW_BOLT_VOLLEY                               = 1, +    EVENT_IMMOLATE                                         = 2, +    EVENT_CURSE_OF_WEAKNESS                                = 3, +    EVENT_DEMONARMOR                                       = 4, +    EVENT_SUMMON_VOIDWALKERS                               = 5 +}; +  #define GOSSIP_ITEM_CHALLENGE   "Your bondage is at an end, Doom'rel. I challenge you!"  #define GOSSIP_SELECT_DOOMREL   "[PH] Continue..."  class boss_doomrel : public CreatureScript  { -public: -    boss_doomrel() : CreatureScript("boss_doomrel") { } +    public: +        boss_doomrel() : CreatureScript("boss_doomrel") { } -    bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override -    { -        player->PlayerTalkClass->ClearMenus(); -        switch (action) +        bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override          { -            case GOSSIP_ACTION_INFO_DEF+1: -                player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_DOOMREL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); -                player->SEND_GOSSIP_MENU(2605, creature->GetGUID()); -                break; -            case GOSSIP_ACTION_INFO_DEF+2: -                player->CLOSE_GOSSIP_MENU(); -                //start event here -                creature->setFaction(FACTION_HOSTILE); -                creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); -                creature->AI()->AttackStart(player); -                InstanceScript* instance = creature->GetInstanceScript(); -                if (instance) -                    instance->SetData64(DATA_EVENSTARTER, player->GetGUID()); -                break; +            player->PlayerTalkClass->ClearMenus(); +            switch (action) +            { +                case GOSSIP_ACTION_INFO_DEF+1: +                    player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_DOOMREL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2); +                    player->SEND_GOSSIP_MENU(2605, creature->GetGUID()); +                    break; +                case GOSSIP_ACTION_INFO_DEF+2: +                    player->CLOSE_GOSSIP_MENU(); +                    //start event here +                    creature->setFaction(FACTION_HOSTILE); +                    creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); +                    creature->AI()->AttackStart(player); +                    InstanceScript* instance = creature->GetInstanceScript(); +                    if (instance) +                        instance->SetData64(DATA_EVENSTARTER, player->GetGUID()); +                    break; +            } +            return true;          } -        return true; -    } - -    bool OnGossipHello(Player* player, Creature* creature) override -    { -        player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); -        player->SEND_GOSSIP_MENU(2601, creature->GetGUID()); -        return true; -    } - -    CreatureAI* GetAI(Creature* creature) const override -    { -        return GetInstanceAI<boss_doomrelAI>(creature); -    } - -    struct boss_doomrelAI : public ScriptedAI -    { -        boss_doomrelAI(Creature* creature) : ScriptedAI(creature) +        bool OnGossipHello(Player* player, Creature* creature) override          { -            instance = creature->GetInstanceScript(); -        } +            player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_CHALLENGE, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1); +            player->SEND_GOSSIP_MENU(2601, creature->GetGUID()); -        InstanceScript* instance; -        uint32 ShadowVolley_Timer; -        uint32 Immolate_Timer; -        uint32 CurseOfWeakness_Timer; -        uint32 DemonArmor_Timer; -        bool Voidwalkers; +            return true; +        } -        void Reset() override +        struct boss_doomrelAI : public ScriptedAI          { -            ShadowVolley_Timer = 10000; -            Immolate_Timer = 18000; -            CurseOfWeakness_Timer = 5000; -            DemonArmor_Timer = 16000; -            Voidwalkers = false; +            boss_doomrelAI(Creature* creature) : ScriptedAI(creature) +            { +                _instance = creature->GetInstanceScript(); +            } -            me->setFaction(FACTION_FRIEND); +            void Reset() override +            { +                _voidwalkers = false; -            // was set before event start, so set again -            me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); +                me->setFaction(FACTION_FRIEND); -            if (instance->GetData(DATA_GHOSTKILL) >= 7) -                me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); -            else -                me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); -        } +                // was set before event start, so set again +                me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); -        void EnterCombat(Unit* /*who*/) override -        { -        } - -        void EnterEvadeMode() override -        { -            me->RemoveAllAuras(); -            me->DeleteThreatList(); -            me->CombatStop(true); -            me->LoadCreaturesAddon(); -            if (me->IsAlive()) -                me->GetMotionMaster()->MoveTargetedHome(); -            me->SetLootRecipient(NULL); -            instance->SetData64(DATA_EVENSTARTER, 0); -        } - -        void JustDied(Unit* /*killer*/) override -        { -            instance->SetData(DATA_GHOSTKILL, 1); -        } +                if (_instance->GetData(DATA_GHOSTKILL) >= 7) +                    me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_NONE); +                else +                    me->SetUInt32Value(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP); +            } -        void UpdateAI(uint32 diff) override -        { -            if (!UpdateVictim()) -                return; +            void EnterCombat(Unit* /*who*/) override +            { +                _events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 10000); +                _events.ScheduleEvent(EVENT_IMMOLATE, 18000); +                _events.ScheduleEvent(EVENT_CURSE_OF_WEAKNESS, 5000); +                _events.ScheduleEvent(EVENT_DEMONARMOR, 16000); +            } -            //ShadowVolley_Timer -            if (ShadowVolley_Timer <= diff) +            void DamageTaken(Unit* /*attacker*/, uint32& /*damage*/) override              { -                DoCastVictim(SPELL_SHADOWBOLTVOLLEY); -                ShadowVolley_Timer = 12000; -            } else ShadowVolley_Timer -= diff; +                if (!_voidwalkers && !HealthAbovePct(50)) +                { +                    DoCastVictim(SPELL_SUMMON_VOIDWALKERS, true); +                    _voidwalkers = true; +                } +            } -            //Immolate_Timer -            if (Immolate_Timer <= diff) +            void EnterEvadeMode() override              { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_IMMOLATE); +                ScriptedAI::EnterEvadeMode(); -                Immolate_Timer = 25000; -            } else Immolate_Timer -= diff; +                _instance->SetData64(DATA_EVENSTARTER, 0); +            } -            //CurseOfWeakness_Timer -            if (CurseOfWeakness_Timer <= diff) +            void JustDied(Unit* /*killer*/) override              { -                DoCastVictim(SPELL_CURSEOFWEAKNESS); -                CurseOfWeakness_Timer = 45000; -            } else CurseOfWeakness_Timer -= diff; +                _instance->SetData(DATA_GHOSTKILL, 1); +            } -            //DemonArmor_Timer -            if (DemonArmor_Timer <= diff) +            void UpdateAI(uint32 diff) override              { -                DoCast(me, SPELL_DEMONARMOR); -                DemonArmor_Timer = 300000; -            } else DemonArmor_Timer -= diff; +                if (!UpdateVictim()) +                    return; -            //Summon Voidwalkers -            if (!Voidwalkers && HealthBelowPct(51)) -            { -                DoCastVictim(SPELL_SUMMON_VOIDWALKERS, true); -                Voidwalkers = true; +                _events.Update(diff); + +                while (uint32 eventId = _events.ExecuteEvent()) +                { +                    switch (eventId) +                    { +                        case EVENT_SHADOW_BOLT_VOLLEY: +                            DoCastVictim(SPELL_SHADOWBOLTVOLLEY); +                            _events.ScheduleEvent(EVENT_SHADOW_BOLT_VOLLEY, 12000); +                            break; +                        case EVENT_IMMOLATE: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) +                                DoCast(target, SPELL_IMMOLATE); +                            _events.ScheduleEvent(EVENT_IMMOLATE, 25000); +                            break; +                        case EVENT_CURSE_OF_WEAKNESS: +                            DoCastVictim(SPELL_CURSEOFWEAKNESS); +                            _events.ScheduleEvent(EVENT_CURSE_OF_WEAKNESS, 45000); +                            break; +                        case EVENT_DEMONARMOR: +                            DoCast(me, SPELL_DEMONARMOR); +                            _events.ScheduleEvent(EVENT_DEMONARMOR, 300000); +                            break; +                        default: +                            break; +                    } +                } + +                DoMeleeAttackIfReady();              } -            DoMeleeAttackIfReady(); +        private: +            InstanceScript* _instance; +            EventMap _events; +            bool _voidwalkers; +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return GetInstanceAI<boss_doomrelAI>(creature);          } -    };  };  void AddSC_boss_tomb_of_seven() diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp index ab065f62bbb..94bf3e991f4 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/boss_rend_blackhand.cpp @@ -243,37 +243,37 @@ public:                      switch (eventId)                      {                          case EVENT_START_1: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_0);                              events.ScheduleEvent(EVENT_START_2, 4000);                              break;                          case EVENT_START_2:                              events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0); -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->HandleEmoteCommand(EMOTE_ONESHOT_POINT);                              events.ScheduleEvent(EVENT_START_3, 4000);                              break;                          case EVENT_START_3: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_1);                              events.ScheduleEvent(EVENT_WAVE_1, 2000);                              events.ScheduleEvent(EVENT_TURN_TO_REND, 4000);                              events.ScheduleEvent(EVENT_WAVES_TEXT_1, 20000);                              break;                          case EVENT_TURN_TO_REND: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                              {                                  victor->SetFacingToObject(me);                                  victor->HandleEmoteCommand(EMOTE_ONESHOT_TALK);                              }                              break;                          case EVENT_TURN_TO_PLAYER: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  if (Unit* player = victor->SelectNearestPlayer(60.0f))                                      victor->SetFacingToObject(player);                              break;                          case EVENT_TURN_TO_FACING_1: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->SetFacingTo(1.518436f);                              break;                          case EVENT_TURN_TO_FACING_2: @@ -283,7 +283,7 @@ public:                              me->SetFacingTo(1.500983f);                              break;                          case EVENT_WAVES_EMOTE_1: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->HandleEmoteCommand(EMOTE_ONESHOT_QUESTION);                              break;                          case EVENT_WAVES_EMOTE_2: @@ -291,7 +291,7 @@ public:                              break;                          case EVENT_WAVES_TEXT_1:                              events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0); -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                      victor->AI()->Talk(SAY_NEFARIUS_2);                              me->HandleEmoteCommand(EMOTE_ONESHOT_TALK);                              events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000); @@ -301,7 +301,7 @@ public:                              break;                          case EVENT_WAVES_TEXT_2:                              events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0); -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_3);                              events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);                              events.ScheduleEvent(EVENT_WAVE_3, 2000); @@ -309,7 +309,7 @@ public:                              break;                          case EVENT_WAVES_TEXT_3:                              events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0); -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_4);                              events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);                              events.ScheduleEvent(EVENT_WAVE_4, 2000); @@ -324,7 +324,7 @@ public:                              break;                          case EVENT_WAVES_TEXT_5:                              events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0); -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_5);                              events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);                              events.ScheduleEvent(EVENT_WAVE_6, 2000); @@ -332,26 +332,26 @@ public:                              break;                          case EVENT_WAVES_COMPLETE_TEXT_1:                              events.ScheduleEvent(EVENT_TURN_TO_PLAYER, 0); -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_6);                              events.ScheduleEvent(EVENT_TURN_TO_FACING_1, 4000);                              events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_2, 13000);                              break;                          case EVENT_WAVES_COMPLETE_TEXT_2: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_7);                              Talk(SAY_BLACKHAND_2);                              events.ScheduleEvent(EVENT_PATH_REND, 1000);                              events.ScheduleEvent(EVENT_WAVES_COMPLETE_TEXT_3, 4000);                              break;                          case EVENT_WAVES_COMPLETE_TEXT_3: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->AI()->Talk(SAY_NEFARIUS_8);                              events.ScheduleEvent(EVENT_PATH_NEFARIUS, 1000);                              events.ScheduleEvent(EVENT_PATH_REND, 1000);                              break;                          case EVENT_PATH_NEFARIUS: -                            if (Creature* victor = me->GetCreature(*me, victorGUID)) +                            if (Creature* victor = ObjectAccessor::GetCreature(*me, victorGUID))                                  victor->GetMotionMaster()->MovePath(NEFARIUS_PATH_1, true);                              break;                          case EVENT_PATH_REND: diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp index e645dd383f2..b3a55e1fe4a 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackrockSpire/instance_blackrock_spire.cpp @@ -26,7 +26,7 @@  #include "ScriptedCreature.h"  #include "blackrock_spire.h" -uint32 const DragonspireRunes[7] = { GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7 }; +//uint32 const DragonspireRunes[7] = { GO_HALL_RUNE_1, GO_HALL_RUNE_2, GO_HALL_RUNE_3, GO_HALL_RUNE_4, GO_HALL_RUNE_5, GO_HALL_RUNE_6, GO_HALL_RUNE_7 };  uint32 const DragonspireMobs[3] = { NPC_BLACKHAND_DREADWEAVER, NPC_BLACKHAND_SUMMONER, NPC_BLACKHAND_VETERAN }; diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp index ea4784bb5a4..8d4a84197b1 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_razorgore.cpp @@ -167,7 +167,7 @@ public:      {          if (InstanceScript* instance = go->GetInstanceScript())              if (instance->GetData(DATA_EGG_EVENT) != DONE) -                if (Creature* razor = Unit::GetCreature(*go, instance->GetData64(DATA_RAZORGORE_THE_UNTAMED))) +                if (Creature* razor = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_RAZORGORE_THE_UNTAMED)))                  {                      razor->Attack(player, true);                      player->CastSpell(razor, SPELL_MINDCONTROL); diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp index 652bdbb7d4a..5d7e7403686 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/BlackwingLair/boss_vaelastrasz.cpp @@ -146,8 +146,8 @@ public:                              break;                          case EVENT_SPEECH_4:                              me->setFaction(103); -                            if (PlayerGUID && Unit::GetUnit(*me, PlayerGUID)) -                                AttackStart(Unit::GetUnit(*me, PlayerGUID)); +                            if (Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID)) +                                AttackStart(player);                              break;                      }                  } diff --git a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp index 048e6149b4b..6eafb41a8fa 100644 --- a/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp +++ b/src/server/scripts/EasternKingdoms/BlackrockMountain/MoltenCore/boss_ragnaros.cpp @@ -147,7 +147,7 @@ class boss_ragnaros : public CreatureScript                              break;                          case EVENT_INTRO_4:                              Talk(SAY_ARRIVAL5_RAG); -                            if (Creature* executus = Unit::GetCreature(*me, instance->GetData64(BOSS_MAJORDOMO_EXECUTUS))) +                            if (Creature* executus = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_MAJORDOMO_EXECUTUS)))                                  me->Kill(executus);                              break;                          case EVENT_INTRO_5: diff --git a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp index 1398f959e46..b171bf014c7 100644 --- a/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp +++ b/src/server/scripts/EasternKingdoms/Gnomeregan/gnomeregan.cpp @@ -198,7 +198,7 @@ public:              if (!SummonList.empty())                  for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)                  { -                    if (Creature* summon = Unit::GetCreature(*me, *itr)) +                    if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))                      {                          if (summon->IsAlive())                              summon->DisappearAndDie(); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp index 59a04d6a457..b130ac74be3 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_midnight.cpp @@ -101,7 +101,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              Talk(SAY_DEATH); -            if (Unit* midnight = Unit::GetUnit(*me, Midnight)) +            if (Unit* midnight = ObjectAccessor::GetUnit(*me, Midnight))                  midnight->Kill(midnight);          } @@ -149,7 +149,7 @@ public:          {              if (Phase == 2)              { -                if (Unit* unit = Unit::GetUnit(*me, Attumen)) +                if (Unit* unit = ObjectAccessor::GetUnit(*me, Attumen))                      Talk(SAY_MIDNIGHT_KILL, unit);              }          } @@ -172,7 +172,7 @@ public:              }              else if (Phase == 2 && HealthBelowPct(25))              { -                if (Unit* pAttumen = Unit::GetUnit(*me, Attumen)) +                if (Unit* pAttumen = ObjectAccessor::GetUnit(*me, Attumen))                      Mount(pAttumen);              }              else if (Phase == 3) @@ -184,7 +184,7 @@ public:                          Mount_Timer = 0;                          me->SetVisible(false);                          me->GetMotionMaster()->MoveIdle(); -                        if (Unit* pAttumen = Unit::GetUnit(*me, Attumen)) +                        if (Unit* pAttumen = ObjectAccessor::GetUnit(*me, Attumen))                          {                              pAttumen->SetDisplayId(MOUNTED_DISPLAYID);                              pAttumen->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -242,7 +242,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff)          if (ResetTimer <= diff)          {              ResetTimer = 0; -            Unit* pMidnight = Unit::GetUnit(*me, Midnight); +            Unit* pMidnight = ObjectAccessor::GetUnit(*me, Midnight);              if (pMidnight)              {                  pMidnight->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -288,7 +288,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff)              std::vector<Unit*> target_list;              for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr != t_list.end(); ++itr)              { -                target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  if (target && !target->IsWithinDist(me, ATTACK_DISTANCE, false))                      target_list.push_back(target);                  target = NULL; @@ -304,7 +304,7 @@ void boss_attumen::boss_attumenAI::UpdateAI(uint32 diff)      {          if (HealthBelowPct(25))          { -            Creature* pMidnight = Unit::GetCreature(*me, Midnight); +            Creature* pMidnight = ObjectAccessor::GetCreature(*me, Midnight);              if (pMidnight && pMidnight->GetTypeId() == TYPEID_UNIT)              {                  CAST_AI(boss_midnight::boss_midnightAI, (pMidnight->AI()))->Mount(me); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp index 5d52cc62f8a..0ca7ee90986 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_moroes.cpp @@ -236,7 +236,7 @@ public:              {                  if (AddGUID[i])                  { -                    Creature* temp = Creature::GetCreature((*me), AddGUID[i]); +                    Creature* temp = ObjectAccessor::GetCreature((*me), AddGUID[i]);                      if (temp && temp->IsAlive())                      {                          temp->AI()->AttackStart(me->GetVictim()); @@ -270,7 +270,7 @@ public:                  {                      if (AddGUID[i])                      { -                        Creature* temp = Unit::GetCreature((*me), AddGUID[i]); +                        Creature* temp = ObjectAccessor::GetCreature((*me), AddGUID[i]);                          if (temp && temp->IsAlive())                              if (!temp->GetVictim())                                  temp->AI()->AttackStart(me->GetVictim()); @@ -350,7 +350,7 @@ struct boss_moroes_guestAI : public ScriptedAI      void AcquireGUID()      { -        if (Creature* Moroes = Unit::GetCreature(*me, instance->GetData64(DATA_MOROES))) +        if (Creature* Moroes = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOROES)))              for (uint8 i = 0; i < 4; ++i)                  if (uint64 GUID = CAST_AI(boss_moroes::boss_moroesAI, Moroes->AI())->AddGUID[i])                      GuestGUID[i] = GUID; @@ -361,7 +361,7 @@ struct boss_moroes_guestAI : public ScriptedAI          uint64 TempGUID = GuestGUID[rand()%4];          if (TempGUID)          { -            Unit* unit = Unit::GetUnit(*me, TempGUID); +            Unit* unit = ObjectAccessor::GetUnit(*me, TempGUID);              if (unit && unit->IsAlive())                  return unit;          } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp index 33ea71f81e1..010b7223f97 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_netherspite.cpp @@ -158,9 +158,9 @@ public:          {              for (int i=0; i<3; ++i)              { -                if (Creature* portal = Unit::GetCreature(*me, PortalGUID[i])) +                if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[i]))                      portal->DisappearAndDie(); -                if (Creature* portal = Unit::GetCreature(*me, BeamerGUID[i])) +                if (Creature* portal = ObjectAccessor::GetCreature(*me, BeamerGUID[i]))                      portal->DisappearAndDie();                  PortalGUID[i] = 0;                  BeamTarget[i] = 0; @@ -170,10 +170,10 @@ public:          void UpdatePortals() // Here we handle the beams' behavior          {              for (int j=0; j<3; ++j) // j = color -                if (Creature* portal = Unit::GetCreature(*me, PortalGUID[j])) +                if (Creature* portal = ObjectAccessor::GetCreature(*me, PortalGUID[j]))                  {                      // the one who's been cast upon before -                    Unit* current = Unit::GetUnit(*portal, BeamTarget[j]); +                    Unit* current = ObjectAccessor::GetUnit(*portal, BeamTarget[j]);                      // temporary store for the best suitable beam reciever                      Unit* target = me; @@ -205,7 +205,7 @@ public:                      {                          BeamTarget[j] = target->GetGUID();                          // remove currently beaming portal -                        if (Creature* beamer = Unit::GetCreature(*portal, BeamerGUID[j])) +                        if (Creature* beamer = ObjectAccessor::GetCreature(*portal, BeamerGUID[j]))                          {                              beamer->CastSpell(target, PortalBeam[j], false);                              beamer->DisappearAndDie(); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp index cf13863f84b..befe72a6403 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_prince_malchezaar.cpp @@ -146,7 +146,7 @@ public:          void KilledUnit(Unit* who) override          { -            if (Unit* unit = Unit::GetUnit(*me, malchezaar)) +            if (Unit* unit = ObjectAccessor::GetUnit(*me, malchezaar))                  if (Creature* creature = unit->ToCreature())                      creature->AI()->KilledUnit(who);          } @@ -273,7 +273,7 @@ public:          {              //Infernal Cleanup              for (std::vector<uint64>::const_iterator itr = infernals.begin(); itr != infernals.end(); ++itr) -                if (Unit* pInfernal = Unit::GetUnit(*me, *itr)) +                if (Unit* pInfernal = ObjectAccessor::GetUnit(*me, *itr))                      if (pInfernal->IsAlive())                      {                          pInfernal->SetVisible(false); @@ -287,7 +287,7 @@ public:          {              for (uint8 i = 0; i < 2; ++i)              { -                Unit* axe = Unit::GetUnit(*me, axes[i]); +                Unit* axe = ObjectAccessor::GetUnit(*me, axes[i]);                  if (axe && axe->IsAlive())                      axe->Kill(axe);                  axes[i] = 0; @@ -316,7 +316,7 @@ public:              ThreatContainer::StorageType::const_iterator itr = t_list.begin();              std::advance(itr, 1);              for (; itr != t_list.end(); ++itr) //store the threat list in a different container -                if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid())) +                if (Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))                      if (target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)                          targets.push_back(target); @@ -340,7 +340,7 @@ public:          {              for (uint8 i = 0; i < 5; ++i)              { -                Unit* target = Unit::GetUnit(*me, enfeeble_targets[i]); +                Unit* target = ObjectAccessor::GetUnit(*me, enfeeble_targets[i]);                  if (target && target->IsAlive())                      target->SetHealth(enfeeble_health[i]);                  enfeeble_targets[i] = 0; @@ -480,7 +480,7 @@ public:                      {                          for (uint8 i = 0; i < 2; ++i)                          { -                            if (Unit* axe = Unit::GetUnit(*me, axes[i])) +                            if (Unit* axe = ObjectAccessor::GetUnit(*me, axes[i]))                              {                                  if (axe->GetVictim())                                      DoModifyThreatPercent(axe->GetVictim(), -100); @@ -583,7 +583,7 @@ public:  void netherspite_infernal::netherspite_infernalAI::Cleanup()  { -    Creature* pMalchezaar = Unit::GetCreature(*me, malchezaar); +    Creature* pMalchezaar = ObjectAccessor::GetCreature(*me, malchezaar);      if (pMalchezaar && pMalchezaar->IsAlive())          CAST_AI(boss_malchezaar::boss_malchezaarAI, pMalchezaar->AI())->Cleanup(me, point); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp index 0a3a697c6a7..9bda41b03a1 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_shade_of_aran.cpp @@ -184,7 +184,7 @@ public:              //store the threat list in a different container              for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)              { -                Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  //only on alive players                  if (target && target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)                      targets.push_back(target); @@ -450,7 +450,7 @@ public:                          if (!FlameWreathTarget[i])                              continue; -                        Unit* unit = Unit::GetUnit(*me, FlameWreathTarget[i]); +                        Unit* unit = ObjectAccessor::GetUnit(*me, FlameWreathTarget[i]);                          if (unit && !unit->IsWithinDist2d(FWTargPosX[i], FWTargPosY[i], 3))                          {                              unit->CastSpell(unit, 20476, true, 0, 0, me->GetGUID()); diff --git a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp index 24ea77c5c93..2cdaf4b4e4a 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/boss_terestian_illhoof.cpp @@ -102,7 +102,7 @@ public:              uint64 TerestianGUID = instance->GetData64(DATA_TERESTIAN);              if (TerestianGUID)              { -                Unit* Terestian = Unit::GetUnit(*me, TerestianGUID); +                Unit* Terestian = ObjectAccessor::GetUnit(*me, TerestianGUID);                  if (Terestian && Terestian->IsAlive())                      DoCast(Terestian, SPELL_BROKEN_PACT, true);              } @@ -157,7 +157,7 @@ public:          {              if (SacrificeGUID)              { -                Unit* Sacrifice = Unit::GetUnit(*me, SacrificeGUID); +                Unit* Sacrifice = ObjectAccessor::GetUnit(*me, SacrificeGUID);                  if (Sacrifice)                      Sacrifice->RemoveAurasDueToSpell(SPELL_SACRIFICE);              } @@ -279,7 +279,7 @@ public:              {                  if (PortalGUID[i])                  { -                    if (Creature* pPortal = Unit::GetCreature(*me, PortalGUID[i])) +                    if (Creature* pPortal = ObjectAccessor::GetCreature(*me, PortalGUID[i]))                      {                          CAST_AI(npc_fiendish_portal::npc_fiendish_portalAI, pPortal->AI())->DespawnAllImp();                          pPortal->DespawnOrUnsummon(); @@ -344,7 +344,7 @@ public:              {                  if (PortalGUID[i])                  { -                    if (Creature* pPortal = Unit::GetCreature((*me), PortalGUID[i])) +                    if (Creature* pPortal = ObjectAccessor::GetCreature((*me), PortalGUID[i]))                          pPortal->DespawnOrUnsummon();                      PortalGUID[i] = 0; @@ -395,7 +395,7 @@ public:                  if (PortalGUID[0] && PortalGUID[1])                  { -                    if (Creature* pPortal = Unit::GetCreature(*me, PortalGUID[urand(0, 1)])) +                    if (Creature* pPortal = ObjectAccessor::GetCreature(*me, PortalGUID[urand(0, 1)]))                          pPortal->CastSpell(me->GetVictim(), SPELL_SUMMON_FIENDISIMP, false);                      SummonTimer = 5000;                  } diff --git a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp index 010e06d67cb..c0e6a8d3b90 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/bosses_opera.cpp @@ -109,7 +109,7 @@ void SummonCroneIfReady(InstanceScript* instance, Creature* creature)                  pCrone->AI()->AttackStart(creature->GetVictim());          }      } -}; +}  class boss_dorothee : public CreatureScript  { @@ -254,7 +254,7 @@ public:          {              if (DorotheeGUID)              { -                Creature* Dorothee = (Unit::GetCreature((*me), DorotheeGUID)); +                Creature* Dorothee = (ObjectAccessor::GetCreature((*me), DorotheeGUID));                  if (Dorothee && Dorothee->IsAlive())                  {                      CAST_AI(boss_dorothee::boss_dorotheeAI, Dorothee->AI())->TitoDied = true; @@ -893,7 +893,7 @@ public:                  {                      IsChasing = false; -                    if (Unit* target = Unit::GetUnit(*me, HoodGUID)) +                    if (Unit* target = ObjectAccessor::GetUnit(*me, HoodGUID))                      {                          HoodGUID = 0;                          if (DoGetThreat(target)) @@ -1186,7 +1186,7 @@ public:                  IsFakingDeath = true;                  Phase = PHASE_BOTH; -                if (Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID))) +                if (Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID)))                  {                      CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->RomuloDead = true;                      CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->ResurrectSelfTimer = 10000; @@ -1200,7 +1200,7 @@ public:              {                  if (JulianneDead)                  { -                    if (Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID))) +                    if (Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID)))                      {                          Julianne->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                          Julianne->GetMotionMaster()->Clear(); @@ -1212,7 +1212,7 @@ public:                      return;                  } -                if (Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID))) +                if (Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID)))                  {                      PretendToDie(me);                      IsFakingDeath = true; @@ -1231,7 +1231,7 @@ public:              Talk(SAY_ROMULO_AGGRO);              if (JulianneGUID)              { -                Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID)); +                Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID));                  if (Julianne && Julianne->GetVictim())                  {                      me->AddThreat(Julianne->GetVictim(), 1.0f); @@ -1275,7 +1275,7 @@ public:              {                  if (ResurrectTimer <= diff)                  { -                    Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID)); +                    Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID));                      if (Julianne && CAST_AI(boss_julianne::boss_julianneAI, Julianne->AI())->IsFakingDeath)                      {                          Talk(SAY_ROMULO_RESURRECT); @@ -1395,7 +1395,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)      {          if (ResurrectTimer <= diff)          { -            Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID)); +            Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID));              if (Romulo && CAST_AI(boss_romulo::boss_romuloAI, Romulo->AI())->IsFakingDeath)              {                  Talk(SAY_JULIANNE_RESURRECT); @@ -1430,7 +1430,7 @@ void boss_julianne::boss_julianneAI::UpdateAI(uint32 diff)      {          if (urand(0, 1) && SummonedRomulo)          { -            Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID)); +            Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID));              if (Romulo && Romulo->IsAlive() && !RomuloDead)                  DoCast(Romulo, SPELL_ETERNAL_AFFECTION);          } else DoCast(me, SPELL_ETERNAL_AFFECTION); @@ -1460,7 +1460,7 @@ void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32 &dama          DoCast(me, SPELL_DRINK_POISON);          IsFakingDeath = true; -        //IS THIS USEFULL? Creature* Julianne = (Unit::GetCreature((*me), JulianneGUID)); +        //IS THIS USEFULL? Creature* Julianne = (ObjectAccessor::GetCreature((*me), JulianneGUID));          return;      } @@ -1476,7 +1476,7 @@ void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32 &dama          //if this is true then we have to kill romulo too          if (RomuloDead)          { -            if (Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID))) +            if (Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID)))              {                  Romulo->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                  Romulo->GetMotionMaster()->Clear(); @@ -1490,7 +1490,7 @@ void boss_julianne::boss_julianneAI::DamageTaken(Unit* /*done_by*/, uint32 &dama          }          //if not already returned, then romulo is alive and we can pretend die -        if (Creature* Romulo = (Unit::GetCreature((*me), RomuloGUID))) +        if (Creature* Romulo = (ObjectAccessor::GetCreature((*me), RomuloGUID)))          {              PretendToDie(me);              IsFakingDeath = true; diff --git a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp index 9db4c4b2bfa..976a83a98c2 100644 --- a/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp +++ b/src/server/scripts/EasternKingdoms/Karazhan/karazhan.cpp @@ -286,7 +286,7 @@ public:                  {                      if (TalkCount > 3)                      { -                        if (Creature* pSpotlight = Unit::GetCreature(*me, m_uiSpotlightGUID)) +                        if (Creature* pSpotlight = ObjectAccessor::GetCreature(*me, m_uiSpotlightGUID))                              pSpotlight->DespawnOrUnsummon();                          SetEscortPaused(false); @@ -539,7 +539,7 @@ public:          uint32 NextStep(uint32 Step)          { -            Creature* arca = Unit::GetCreature(*me, ArcanagosGUID); +            Creature* arca = ObjectAccessor::GetCreature(*me, ArcanagosGUID);              Map* map = me->GetMap();              switch (Step)              { @@ -630,7 +630,7 @@ public:              if (Step >= 7 && Step <= 12)              { -                Unit* arca = Unit::GetUnit(*me, ArcanagosGUID); +                Unit* arca = ObjectAccessor::GetUnit(*me, ArcanagosGUID);                  if (FireArcanagosTimer <= diff)                  { diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp index e0c902427c2..3c4b372808b 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_felblood_kaelthas.cpp @@ -196,7 +196,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && unit->IsAlive())                  {                      float threat = me->getThreatManager().getThreat(unit); @@ -214,7 +214,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && (unit->GetTypeId() == TYPEID_PLAYER))                      unit->CastSpell(unit, SPELL_TELEPORT_CENTER, true);              } @@ -227,7 +227,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && (unit->GetTypeId() == TYPEID_PLAYER))                      // Knockback into the air                      unit->CastSpell(unit, SPELL_GRAVITY_LAPSE_DOT, true, 0, 0, me->GetGUID()); @@ -240,7 +240,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && (unit->GetTypeId() == TYPEID_PLAYER))                  {                      // Also needs an exception in spell system. @@ -260,7 +260,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && (unit->GetTypeId() == TYPEID_PLAYER))                  {                      unit->RemoveAurasDueToSpell(SPELL_GRAVITY_LAPSE_FLY); diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp index 046db7fc654..8dc8ff799ba 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_priestess_delrissa.cpp @@ -162,7 +162,7 @@ public:              for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)              { -                if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[i])) +                if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUID[i]))                  {                      if (!pAdd->GetVictim())                      { @@ -210,7 +210,7 @@ public:              {                  for (std::vector<uint32>::const_iterator itr = LackeyEntryList.begin(); itr != LackeyEntryList.end(); ++itr)                  { -                    Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[j]); +                    Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUID[j]);                      //object already removed, not exist                      if (!pAdd) @@ -271,7 +271,7 @@ public:                  Unit* target = me;                  for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)                  { -                    if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[i])) +                    if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUID[i]))                      {                          if (pAdd->IsAlive() && pAdd->GetHealth() < health)                              target = pAdd; @@ -287,7 +287,7 @@ public:                  Unit* target = me;                  if (urand(0, 1)) -                    if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY])) +                    if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))                          if (pAdd->IsAlive())                              target = pAdd; @@ -300,7 +300,7 @@ public:                  Unit* target = me;                  if (urand(0, 1)) -                    if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY])) +                    if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))                          if (pAdd->IsAlive() && !pAdd->HasAura(SPELL_SHIELD))                              target = pAdd; @@ -319,7 +319,7 @@ public:                      if (urand(0, 1))                          target = me;                      else -                        if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY])) +                        if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUID[rand()%MAX_ACTIVE_LACKEY]))                              if (pAdd->IsAlive())                                  target = pAdd;                  } @@ -390,7 +390,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI          for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)          { -            if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUIDs[i])) +            if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUIDs[i]))              {                  if (!pAdd->GetVictim() && pAdd != me)                  { @@ -400,7 +400,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI              }          } -        if (Creature* pDelrissa = Unit::GetCreature(*me, instance->GetData64(DATA_DELRISSA))) +        if (Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA)))          {              if (pDelrissa->IsAlive() && !pDelrissa->GetVictim())              { @@ -412,7 +412,7 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI      void JustDied(Unit* /*killer*/) override      { -        Creature* pDelrissa = Unit::GetCreature(*me, instance->GetData64(DATA_DELRISSA)); +        Creature* pDelrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA));          uint32 uiLackeyDeathCount = instance->GetData(DATA_DELRISSA_DEATH_COUNT);          if (!pDelrissa) @@ -441,13 +441,13 @@ struct boss_priestess_lackey_commonAI : public ScriptedAI      void KilledUnit(Unit* victim) override      { -        if (Creature* Delrissa = Unit::GetCreature(*me, instance->GetData64(DATA_DELRISSA))) +        if (Creature* Delrissa = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA)))              Delrissa->AI()->KilledUnit(victim);      }      void AcquireGUIDs()      { -        if (Creature* Delrissa = (Unit::GetCreature(*me, instance->GetData64(DATA_DELRISSA)))) +        if (Creature* Delrissa = (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DELRISSA))))          {              for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)                  m_auiLackeyGUIDs[i] = CAST_AI(boss_priestess_delrissa::boss_priestess_delrissaAI, Delrissa->AI())->m_auiLackeyGUID[i]; @@ -832,7 +832,7 @@ public:                  ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();                  for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)                  { -                    if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid())) +                    if (Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))                      {                          //if in melee range                          if (target->IsWithinDistInMap(me, 5)) @@ -918,7 +918,7 @@ public:                  ThreatContainer::StorageType const &t_list = me->getThreatManager().getThreatList();                  for (ThreatContainer::StorageType::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)                  { -                    if (Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid())) +                    if (Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))                      {                          //if in melee range                          if (target->IsWithinDistInMap(me, ATTACK_DISTANCE)) @@ -1022,7 +1022,7 @@ public:              Wing_Clip_Timer = 4000;              Freezing_Trap_Timer = 15000; -            Unit* pPet = Unit::GetUnit(*me, m_uiPetGUID); +            Unit* pPet = ObjectAccessor::GetUnit(*me, m_uiPetGUID);              if (!pPet)                  me->SummonCreature(NPC_SLIVER, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0); @@ -1171,7 +1171,7 @@ public:                  // uint64 guid = (*itr)->guid;                  // if (guid)                  // { -                //   Unit* pAdd = Unit::GetUnit(*me, (*itr)->guid); +                //   Unit* pAdd = ObjectAccessor::GetUnit(*me, (*itr)->guid);                  //   if (pAdd && pAdd->IsAlive())                  //   {                  DoCast(me, SPELL_LESSER_HEALING_WAVE); @@ -1256,7 +1256,7 @@ public:              {                  for (uint8 i = 0; i < MAX_ACTIVE_LACKEY; ++i)                  { -                    if (Unit* pAdd = Unit::GetUnit(*me, m_auiLackeyGUIDs[i])) +                    if (Unit* pAdd = ObjectAccessor::GetUnit(*me, m_auiLackeyGUIDs[i]))                      {                          if (pAdd->IsPolymorphed())                          { diff --git a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp index 74e9321d08c..d77f5db9cea 100644 --- a/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp +++ b/src/server/scripts/EasternKingdoms/MagistersTerrace/boss_selin_fireheart.cpp @@ -107,8 +107,8 @@ public:              //for (uint8 i = 0; i < CRYSTALS_NUMBER; ++i)              for (std::list<uint64>::const_iterator itr = Crystals.begin(); itr != Crystals.end(); ++itr)              { -                //Unit* unit = Unit::GetUnit(*me, FelCrystals[i]); -                if (Creature* creature = Unit::GetCreature(*me, *itr)) +                //Unit* unit = ObjectAccessor::GetUnit(*me, FelCrystals[i]); +                if (Creature* creature = ObjectAccessor::GetCreature(*me, *itr))                  {                      if (!creature->IsAlive())                          creature->Respawn();      // Let the core handle setting death state, etc. @@ -148,8 +148,8 @@ public:              for (std::list<uint64>::const_iterator itr = Crystals.begin(); itr != Crystals.end(); ++itr)              {                  pCrystal = NULL; -                //pCrystal = Unit::GetUnit(*me, FelCrystals[i]); -                pCrystal = Unit::GetUnit(*me, *itr); +                //pCrystal = ObjectAccessor::GetUnit(*me, FelCrystals[i]); +                pCrystal = ObjectAccessor::GetUnit(*me, *itr);                  if (pCrystal && pCrystal->IsAlive())                  {                      // select nearest @@ -184,8 +184,8 @@ public:              //for (uint8 i = 0; i < CRYSTALS_NUMBER; ++i)              for (std::list<uint64>::const_iterator itr = Crystals.begin(); itr != Crystals.end(); ++itr)              { -                //Creature* pCrystal = (Unit::GetCreature(*me, FelCrystals[i])); -                Creature* pCrystal = Unit::GetCreature(*me, *itr); +                //Creature* pCrystal = (ObjectAccessor::GetCreature(*me, FelCrystals[i])); +                Creature* pCrystal = ObjectAccessor::GetCreature(*me, *itr);                  if (pCrystal && pCrystal->IsAlive())                      pCrystal->Kill(pCrystal);              } @@ -206,7 +206,7 @@ public:          {              if (type == POINT_MOTION_TYPE && id == 1)              { -                Unit* CrystalChosen = Unit::GetUnit(*me, CrystalGUID); +                Unit* CrystalChosen = ObjectAccessor::GetUnit(*me, CrystalGUID);                  if (CrystalChosen && CrystalChosen->IsAlive())                  {                      // Make the crystal attackable @@ -292,7 +292,7 @@ public:                          Talk(SAY_EMPOWERED); -                        Unit* CrystalChosen = Unit::GetUnit(*me, CrystalGUID); +                        Unit* CrystalChosen = ObjectAccessor::GetUnit(*me, CrystalGUID);                          if (CrystalChosen && CrystalChosen->IsAlive())                              // Use Deal Damage to kill it, not setDeathState.                              CrystalChosen->Kill(CrystalChosen); @@ -335,7 +335,7 @@ public:          {              if (InstanceScript* instance = me->GetInstanceScript())              { -                Creature* Selin = (Unit::GetCreature(*me, instance->GetData64(DATA_SELIN))); +                Creature* Selin = (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SELIN)));                  if (Selin && Selin->IsAlive())                  {                      if (CAST_AI(boss_selin_fireheart::boss_selin_fireheartAI, Selin->AI())->CrystalGUID == me->GetGUID()) diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp index 8bc136a1a1d..fff8a92dfcd 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp @@ -314,7 +314,7 @@ public:      {          if (Creature* anchor = go->FindNearestCreature(29521, 15))              if (uint64 prisonerGUID = anchor->AI()->GetGUID()) -                if (Creature* prisoner = Creature::GetCreature(*player, prisonerGUID)) +                if (Creature* prisoner = ObjectAccessor::GetCreature(*player, prisonerGUID))                      CAST_AI(npc_unworthy_initiate::npc_unworthy_initiateAI, prisoner->AI())->EventStart(anchor, player);          return false; @@ -467,7 +467,7 @@ public:                      {                          me->setFaction(FACTION_HOSTILE); -                        if (Unit* unit = Unit::GetUnit(*me, m_uiDuelerGUID)) +                        if (Unit* unit = ObjectAccessor::GetUnit(*me, m_uiDuelerGUID))                              AttackStart(unit);                      }                      else @@ -1049,14 +1049,14 @@ class npc_scarlet_miner : public CreatureScript                      {                          if (IntroPhase == 1)                          { -                            if (Creature* car = Unit::GetCreature(*me, carGUID)) +                            if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID))                                  DoCast(car, SPELL_CART_DRAG);                              IntroTimer = 800;                              IntroPhase = 2;                          }                          else                          { -                            if (Creature* car = Unit::GetCreature(*me, carGUID)) +                            if (Creature* car = ObjectAccessor::GetCreature(*me, carGUID))                                  car->AI()->DoAction(0);                              IntroPhase = 0;                          } diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index 88c30efdf71..09377f20bed 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -307,7 +307,7 @@ public:                              break;                          case 4:                          { -                            Creature* temp = Unit::GetCreature(*me, valrothGUID); +                            Creature* temp = ObjectAccessor::GetCreature(*me, valrothGUID);                              if (!temp || !temp->IsAlive())                              { diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp index 8d5e10679ec..40773c87b68 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter5.cpp @@ -400,15 +400,15 @@ public:                  //UpdateWorldState(me->GetMap(), WORLD_STATE_COUNTDOWN, 0);                  UpdateWorldState(me->GetMap(), WORLD_STATE_EVENT_BEGIN, 0); -                if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                      temp->setDeathState(JUST_DIED); -                if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                      temp->setDeathState(JUST_DIED); -                if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                      temp->setDeathState(JUST_DIED); -                if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))                      temp->setDeathState(JUST_DIED); -                if (Creature* temp = Unit::GetCreature(*me, uiRayneGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiRayneGUID))                      temp->setDeathState(JUST_DIED);                  uiTirionGUID = 0; @@ -419,24 +419,24 @@ public:                  for (uint8 i = 0; i < ENCOUNTER_DEFENDER_NUMBER; ++i)                  { -                    if (Creature* temp = Unit::GetCreature(*me, uiDefenderGUID[i])) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDefenderGUID[i]))                          temp->setDeathState(JUST_DIED);                      uiDefenderGUID[i] = 0;                  }                  for (uint8 i = 0; i < ENCOUNTER_EARTHSHATTER_NUMBER; ++i)                  { -                    if (Creature* temp = Unit::GetCreature(*me, uiEarthshatterGUID[i])) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEarthshatterGUID[i]))                          temp->setDeathState(JUST_DIED);                      uiEarthshatterGUID[i] = 0;                  } -                if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                      temp->Respawn(); -                if (Creature* temp = Unit::GetCreature(*me, uiOrbazGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiOrbazGUID))                      temp->Respawn(); -                if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                      temp->Respawn(); -                if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                      temp->Respawn();                  uiKoltiraGUID = 0; @@ -445,25 +445,25 @@ public:                  uiLichKingGUID = 0;                  for (uint8 i = 0; i < ENCOUNTER_ABOMINATION_NUMBER; ++i)                  { -                    if (Creature* temp = Unit::GetCreature(*me, uiAbominationGUID[i])) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAbominationGUID[i]))                          temp->setDeathState(JUST_DIED);                      uiAbominationGUID[i] = 0;                  }                  for (uint8 i = 0; i < ENCOUNTER_BEHEMOTH_NUMBER; ++i)                  { -                    if (Creature* temp = Unit::GetCreature(*me, uiBehemothGUID[i])) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiBehemothGUID[i]))                          temp->setDeathState(JUST_DIED);                      uiBehemothGUID[i] = 0;                  }                  for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i)                  { -                    if (Creature* temp = Unit::GetCreature(*me, uiGhoulGUID[i])) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiGhoulGUID[i]))                          temp->setDeathState(JUST_DIED);                      uiGhoulGUID[i] = 0;                  }                  for (uint8 i = 0; i < ENCOUNTER_WARRIOR_NUMBER; ++i)                  { -                    if (Creature* temp = Unit::GetCreature(*me, uiWarriorGUID[i])) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiWarriorGUID[i]))                          temp->setDeathState(JUST_DIED);                      uiWarriorGUID[i] = 0;                  } @@ -514,9 +514,9 @@ public:                  case 1:                      SetHoldState(true);                      SpawnNPC(); -                    if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                          temp->AI()->Talk(SAY_LIGHT_OF_DAWN07); -                    if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                          temp->AI()->Talk(SAY_LIGHT_OF_DAWN08);                      for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i) @@ -534,9 +534,9 @@ public:                      me->Dismount();                      me->CastSpell(me, SPELL_THE_MIGHT_OF_MOGRAINE, true); // need to fix, on player only -                    if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                          temp->Dismount(); -                    if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                          temp->Dismount();                      bIsBattle = true; @@ -547,37 +547,37 @@ public:                      break;                  case 3:                  { -                    //Unit* pTirion = Unit::GetCreature(*me, uiTirionGUID); +                    //Unit* pTirion = ObjectAccessor::GetCreature(*me, uiTirionGUID);                      Talk(EMOTE_LIGHT_OF_DAWN05);                      if (me->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0))                          me->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN); -                    if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                      {                          if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0))                              temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);                          temp->SetWalk(true);                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[19].x, LightofDawnLoc[19].y, LightofDawnLoc[19].z);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                      {                          if (temp->HasAura(SPELL_THE_LIGHT_OF_DAWN, 0))                              temp->RemoveAurasDueToSpell(SPELL_THE_LIGHT_OF_DAWN);                          temp->SetWalk(true);                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[21].x, LightofDawnLoc[21].y, LightofDawnLoc[21].z);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                      {                          temp->SetWalk(true);                          temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_READY2H);                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[10].x, LightofDawnLoc[10].y, LightofDawnLoc[10].z);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                      {                          temp->SetWalk(true);                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[13].x, LightofDawnLoc[13].y, LightofDawnLoc[13].z);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))                      {                          temp->SetWalk(true);                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[16].x, LightofDawnLoc[16].y, LightofDawnLoc[16].z); @@ -589,9 +589,9 @@ public:                      Talk(SAY_LIGHT_OF_DAWN27);                      me->SetStandState(UNIT_STAND_STATE_KNEEL); -                    if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                          temp->SetStandState(UNIT_STAND_STATE_KNEEL); -                    if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                          temp->SetStandState(UNIT_STAND_STATE_KNEEL);                      SetHoldState(true);                      break; @@ -610,7 +610,7 @@ public:                      break;                  case 8:                      me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_UNEQUIP)); -                    if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                          me->CastSpell(temp, SPELL_ASHBRINGER, true);                      Talk(EMOTE_LIGHT_OF_DAWN14);                      SetHoldState(true); @@ -743,51 +743,51 @@ public:                          case 9: // charge begins                              SetHoldState(false); -                            if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                              {                                  temp->SetWalk(false);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiOrbazGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiOrbazGUID))                              {                                  temp->SetWalk(false);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                              {                                  temp->SetWalk(false);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              }                              for (uint8 i = 0; i < ENCOUNTER_ABOMINATION_NUMBER; ++i) -                                if (Creature* temp = Unit::GetCreature(*me, uiAbominationGUID[i])) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAbominationGUID[i]))                                      temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              for (uint8 i = 0; i < ENCOUNTER_BEHEMOTH_NUMBER; ++i) -                                if (Creature* temp = Unit::GetCreature(*me, uiBehemothGUID[i])) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiBehemothGUID[i]))                                      temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i) -                                if (Creature* temp = Unit::GetCreature(*me, uiGhoulGUID[i])) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiGhoulGUID[i]))                                      temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              for (uint8 i = 0; i < ENCOUNTER_WARRIOR_NUMBER; ++i) -                                if (Creature* temp = Unit::GetCreature(*me, uiWarriorGUID[i])) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiWarriorGUID[i]))                                      temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z);                              JumpToNextStep(5000);                              break;                          // ******* After battle *****************************************************************                          case 11: // Tirion starts to speak -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN28);                              JumpToNextStep(21000);                              break;                          case 12: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN29);                              JumpToNextStep(13000);                              break;                          case 13: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN30);                              JumpToNextStep(13000);                              break; @@ -810,7 +810,7 @@ public:                              break;                          case 16: // Alexandros out -                            if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))                              {                                  temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[23].x, LightofDawnLoc[23].y, LightofDawnLoc[23].z); @@ -837,7 +837,7 @@ public:                              break;                          case 19: // runs to father -                            if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))                              {                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN07);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[25].x, LightofDawnLoc[25].y, LightofDawnLoc[25].z); @@ -846,59 +846,59 @@ public:                              break;                          case 20: -                            if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN36);                              JumpToNextStep(4000);                              break;                          case 21: -                            if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN08);                              JumpToNextStep(4000);                              break;                          case 22: -                            if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN37);                              JumpToNextStep(8000);                              break;                          case 23: -                            if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN38);                              JumpToNextStep(8000);                              break;                          case 24: -                            if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN39); -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) // Tirion moves forward here +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) // Tirion moves forward here                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[1].x, LightofDawnLoc[1].y, LightofDawnLoc[1].z);                              JumpToNextStep(15000);                              break;                          case 25: -                            if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN40);                              JumpToNextStep(11000);                              break;                          case 26: -                            if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN41);                              JumpToNextStep(5000);                              break;                          case 27: -                            if (Creature* temp = Unit::GetCreature(*me, uiDarionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDarionGUID))                                  temp->setDeathState(JUST_DIED);                              JumpToNextStep(24000);                              break;                          case 28: -                            if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN42);                              JumpToNextStep(6000);                              break; @@ -908,19 +908,19 @@ public:                              {                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN43);                                  uiLichKingGUID = temp->GetGUID(); -                                if (Unit* pAlex = Unit::GetCreature(*me, uiAlexandrosGUID)) +                                if (Unit* pAlex = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID))                                      temp->CastSpell(pAlex, SPELL_SOUL_FEAST_ALEX, false);                              }                              JumpToNextStep(2000);                              break;                          case 30: -                            if (Creature* temp = Unit::GetCreature(*me, uiAlexandrosGUID)) // just hide him +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiAlexandrosGUID)) // just hide him                              {                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN09);                                  temp->SetVisible(false);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                              {                                  temp->InterruptNonMeleeSpells(false);                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN45); @@ -936,13 +936,13 @@ public:                              break;                          case 32: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[27].x, LightofDawnLoc[27].y, LightofDawnLoc[27].z);                              JumpToNextStep(6000);                              break;                          case 33: // Darion supports to jump to lich king here -                            if (Unit::GetCreature(*me, uiLichKingGUID)) +                            if (ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  DoCast(me, SPELL_MOGRAINE_CHARGE); // jumping charge                              // doesn't make it looks well, so workarounds, Darion charges, looks better                              me->SetSpeed(MOVE_RUN, 3.0f); @@ -952,7 +952,7 @@ public:                              break;                          case 35: // Lich king counterattacks -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                              {                                  temp->HandleEmoteCommand(EMOTE_ONESHOT_KICK);                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN46); @@ -969,29 +969,29 @@ public:                              break;                          case 38: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN47);                              JumpToNextStep(8000);                              break;                          case 39: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN48);                              JumpToNextStep(15000);                              break;                          case 40: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN49);                              JumpToNextStep(17000);                              break;                          case 41: // Lich king - Apocalypse -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                              {                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN11);                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN51); -                                if (Creature* pTirion = Unit::GetCreature(*me, uiTirionGUID)) +                                if (Creature* pTirion = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  {                                      pTirion->SetStandState(UNIT_STAND_STATE_KNEEL);                                      //temp->CastSpell(pTirion, SPELL_APOCALYPSE, false); // not working @@ -1007,7 +1007,7 @@ public:                                  float fLichPositionX = 0,                                        fLichPositionY = 0,                                        fLichPositionZ = 0; -                                if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  {                                      fLichPositionX = temp->GetPositionX();                                      fLichPositionY = temp->GetPositionY(); @@ -1032,7 +1032,7 @@ public:                                      temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);                                      uiEarthshatterGUID[0] = temp->GetGUID();                                  } -                                if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                                  {                                      temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);                                      temp->SetWalk(false); @@ -1040,7 +1040,7 @@ public:                                      temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);                                      temp->AI()->Talk(SAY_LIGHT_OF_DAWN50);                                  } -                                if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                                  {                                      temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);                                      temp->SetWalk(false); @@ -1048,7 +1048,7 @@ public:                                      temp->HandleEmoteCommand(EMOTE_STATE_ATTACK_UNARMED);                                      temp->GetMotionMaster()->MovePoint(0, fLichPositionX, fLichPositionY, fLichPositionZ);                                  } -                                if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID)) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))                                  {                                      temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_ATTACK_UNARMED);                                      temp->SetWalk(false); @@ -1060,37 +1060,37 @@ public:                              break;                          case 43: // They all got kicked -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN13); -                            if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                              {                                  temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);                                  temp->SetSpeed(MOVE_RUN, 6.0f);                                  temp->SetStandState(UNIT_STAND_STATE_DEAD);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[14].x, LightofDawnLoc[14].y, LightofDawnLoc[14].z);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                              {                                  temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);                                  temp->SetSpeed(MOVE_RUN, 6.0f);                                  temp->SetStandState(UNIT_STAND_STATE_DEAD);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[11].x, LightofDawnLoc[11].y, LightofDawnLoc[11].z);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))                              {                                  temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);                                  temp->SetSpeed(MOVE_RUN, 6.0f);                                  temp->SetStandState(UNIT_STAND_STATE_DEAD);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[17].x, LightofDawnLoc[17].y, LightofDawnLoc[17].z);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiDefenderGUID[0])) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiDefenderGUID[0]))                              {                                  temp->SetSpeed(MOVE_RUN, 6.0f);                                  temp->SetStandState(UNIT_STAND_STATE_DEAD);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[0].x+rand()%10, LightofDawnLoc[0].y+rand()%10, LightofDawnLoc[0].z);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiEarthshatterGUID[0])) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEarthshatterGUID[0]))                              {                                  temp->SetSpeed(MOVE_RUN, 6.0f);                                  temp->SetStandState(UNIT_STAND_STATE_DEAD); @@ -1100,11 +1100,11 @@ public:                              break;                          case 44: // make them stand up -                            if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                                  temp->SetStandState(UNIT_STAND_STATE_STAND); -                            if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                                  temp->SetStandState(UNIT_STAND_STATE_STAND); -                            if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))                                  temp->SetStandState(UNIT_STAND_STATE_STAND);                              JumpToNextStep(1000);                              break; @@ -1126,7 +1126,7 @@ public:                          case 47: // Ashbringer rebirth                              me->SetStandState(UNIT_STAND_STATE_KNEEL);                              Talk(EMOTE_LIGHT_OF_DAWN15); -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                              {                                  temp->SetStandState(UNIT_STAND_STATE_STAND);                                  temp->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID + 0, uint32(EQUIP_HIGHLORD_TIRION_FORDRING)); @@ -1139,38 +1139,38 @@ public:                              //if (GameObject* go = me->GetMap()->GetGameObject(uiDawnofLightGUID))                              //    go->SetPhaseMask(128, true);                              me->SummonGameObject(GO_LIGHT_OF_DAWN, 2283.896f, -5287.914f, 83.066f, 0, 0, 0, 0, 0, 30000); -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                              {                                  if (temp->HasAura(SPELL_REBIRTH_OF_THE_ASHBRINGER, 0))                                      temp->RemoveAurasDueToSpell(SPELL_REBIRTH_OF_THE_ASHBRINGER);                                  temp->CastSpell(temp, 41542, false); // workarounds, light expoded, makes it cool                                  temp->HandleEmoteCommand(EMOTE_ONESHOT_ROAR);                              } -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->InterruptNonMeleeSpells(false);                              JumpToNextStep(2500);                              break;                          case 49: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN54);                              JumpToNextStep(4000);                              break;                          case 50: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN55);                              JumpToNextStep(5000);                              break;                          case 51: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN56);                              JumpToNextStep(1000);                              break;                          case 52: // Tiron charges -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                              {                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN16);                                  temp->CastSpell(temp, SPELL_TIRION_CHARGE, false); // jumping charge @@ -1178,20 +1178,20 @@ public:                                  temp->SetSpeed(MOVE_RUN, 3.0f); // workarounds, make Tirion still running                                  temp->SetWalk(false);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[2].x, LightofDawnLoc[2].y, LightofDawnLoc[2].z); -                                if (Creature* lktemp = Unit::GetCreature(*me, uiLichKingGUID)) +                                if (Creature* lktemp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                      lktemp->Relocate(LightofDawnLoc[28].x, LightofDawnLoc[28].y, LightofDawnLoc[28].z); // workarounds, he should kick back by Tirion, but here we relocate him                              }                              JumpToNextStep(1500);                              break;                          case 53: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN57);                              JumpToNextStep(1000);                              break;                          case 54: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                              {                                  temp->SetSpeed(MOVE_RUN, 1.0f);                                  me->SetWalk(true); @@ -1201,33 +1201,33 @@ public:                              break;                          case 55: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->SetStandState(UNIT_STAND_STATE_KNEEL);                              JumpToNextStep(2000);                              break;                          case 56: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->SetStandState(UNIT_STAND_STATE_STAND);                              JumpToNextStep(1500);                              break;                          case 57: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN58);                              JumpToNextStep(10000);                              break;                          case 58: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN59);                              JumpToNextStep(10000);                              break;                          case 59: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->CastSpell(temp, SPELL_TELEPORT_VISUAL, false); -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) // Tirion runs to Darion +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID)) // Tirion runs to Darion                              {                                  temp->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE);                                  temp->SetSpeed(MOVE_RUN, 1.0f); @@ -1237,7 +1237,7 @@ public:                              break;                          case 60: -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) // Lich king disappears here +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID)) // Lich king disappears here                              {                                  temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN17);                                  temp->Kill(temp); @@ -1246,13 +1246,13 @@ public:                              break;                          case 61: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN60);                              JumpToNextStep(3000);                              break;                          case 62: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                              {                                  temp->SetWalk(true);                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[7].x, LightofDawnLoc[7].y, LightofDawnLoc[7].z); @@ -1261,7 +1261,7 @@ public:                              break;                          case 63: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                              {                                  temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[8].x, LightofDawnLoc[8].y, LightofDawnLoc[8].z);                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN61); @@ -1270,37 +1270,37 @@ public:                              break;                          case 64: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN62);                              JumpToNextStep(7000);                              break;                          case 65: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN63);                              JumpToNextStep(10000);                              break;                          case 66: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN64);                              JumpToNextStep(11000);                              break;                          case 67: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN65);                              JumpToNextStep(10000);                              break;                          case 68: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN66);                              JumpToNextStep(8000);                              break;                          case 69: -                            if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                                  temp->AI()->Talk(SAY_LIGHT_OF_DAWN67);                              JumpToNextStep(10000);                              break; @@ -1335,13 +1335,13 @@ public:                              break;                          case 73: -                            if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                                  temp->DespawnOrUnsummon(); -                            if (Creature* temp = Unit::GetCreature(*me, uiOrbazGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiOrbazGUID))                                  temp->DespawnOrUnsummon(); -                            if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                                  temp->DespawnOrUnsummon(); -                            if (Creature* temp = Unit::GetCreature(*me, uiLichKingGUID)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, uiLichKingGUID))                                  temp->DespawnOrUnsummon();                              me->DespawnOrUnsummon();                              break; @@ -1452,7 +1452,7 @@ public:                      for (uint8 i = 0; i < ENCOUNTER_WARRIOR_NUMBER; ++i)                          DespawnNPC(uiWarriorGUID[i]); -                    if (Creature* temp = Unit::GetCreature(*me, uiKorfaxGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID))                      {                          temp->RemoveAllAuras();                          temp->DeleteThreatList(); @@ -1463,7 +1463,7 @@ public:                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[9].x, LightofDawnLoc[9].y, LightofDawnLoc[9].z);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiMaxwellGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID))                      {                          temp->RemoveAllAuras();                          temp->DeleteThreatList(); @@ -1474,7 +1474,7 @@ public:                          temp->GetMotionMaster()->MovePoint(0, LightofDawnLoc[12].x, LightofDawnLoc[12].y, LightofDawnLoc[12].z);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiEligorGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiEligorGUID))                      {                          temp->RemoveAllAuras();                          temp->DeleteThreatList(); @@ -1486,7 +1486,7 @@ public:                      }                      DespawnNPC(uiRayneGUID); -                    if (Creature* temp = Unit::GetCreature(*me, uiKoltiraGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiKoltiraGUID))                      {                          temp->RemoveAllAuras();                          temp->DeleteThreatList(); @@ -1498,10 +1498,10 @@ public:                          temp->CastSpell(temp, SPELL_THE_LIGHT_OF_DAWN, false);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiOrbazGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiOrbazGUID))                          temp->AI()->Talk(EMOTE_LIGHT_OF_DAWN04); -                    if (Creature* temp = Unit::GetCreature(*me, uiThassarianGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiThassarianGUID))                      {                          temp->RemoveAllAuras();                          temp->DeleteThreatList(); @@ -1513,7 +1513,7 @@ public:                          temp->CastSpell(temp, SPELL_THE_LIGHT_OF_DAWN, false);                      } -                    if (Creature* temp = Unit::GetCreature(*me, uiTirionGUID)) +                    if (Creature* temp = ObjectAccessor::GetCreature(*me, uiTirionGUID))                          temp->AI()->Talk(SAY_LIGHT_OF_DAWN26);                      SetHoldState(false); @@ -1532,7 +1532,7 @@ public:          void NPCChangeTarget(uint64 ui_GUID)          { -            if (Creature* temp = Unit::GetCreature(*me, ui_GUID)) +            if (Creature* temp = ObjectAccessor::GetCreature(*me, ui_GUID))                  if (temp->IsAlive())                      if (Unit* pTarger = SelectTarget(SELECT_TARGET_RANDOM, 0))                          if (pTarger->IsAlive()) @@ -1553,7 +1553,7 @@ public:              // Death              for (uint8 i = 0; i < ENCOUNTER_GHOUL_NUMBER; ++i)              { -                temp = Unit::GetCreature(*me, uiGhoulGUID[i]); +                temp = ObjectAccessor::GetCreature(*me, uiGhoulGUID[i]);                  if (!temp)                  {                      temp = me->SummonCreature(NPC_ACHERUS_GHOUL, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1563,7 +1563,7 @@ public:              }              for (uint8 i = 0; i < ENCOUNTER_ABOMINATION_NUMBER; ++i)              { -                temp = Unit::GetCreature(*me, uiAbominationGUID[i]); +                temp = ObjectAccessor::GetCreature(*me, uiAbominationGUID[i]);                  if (!temp)                  {                      temp = me->SummonCreature(NPC_WARRIOR_OF_THE_FROZEN_WASTES, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1573,7 +1573,7 @@ public:              }              for (uint8 i = 0; i < ENCOUNTER_WARRIOR_NUMBER; ++i)              { -                temp = Unit::GetCreature(*me, uiWarriorGUID[i]); +                temp = ObjectAccessor::GetCreature(*me, uiWarriorGUID[i]);                  if (!temp)                  {                      temp = me->SummonCreature(NPC_RAMPAGING_ABOMINATION, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1583,7 +1583,7 @@ public:              }              for (uint8 i = 0; i < ENCOUNTER_BEHEMOTH_NUMBER; ++i)              { -                temp = Unit::GetCreature(*me, uiBehemothGUID[i]); +                temp = ObjectAccessor::GetCreature(*me, uiBehemothGUID[i]);                  if (!temp)                  {                      temp = me->SummonCreature(NPC_FLESH_BEHEMOTH, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1595,7 +1595,7 @@ public:              // Dawn              for (uint8 i = 0; i < ENCOUNTER_DEFENDER_NUMBER; ++i)              { -                temp = Unit::GetCreature(*me, uiDefenderGUID[i]); +                temp = ObjectAccessor::GetCreature(*me, uiDefenderGUID[i]);                  if (!temp)                  {                      temp = me->SummonCreature(NPC_DEFENDER_OF_THE_LIGHT, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1606,7 +1606,7 @@ public:              }              for (uint8 i = 0; i < ENCOUNTER_EARTHSHATTER_NUMBER; ++i)              { -                temp = Unit::GetCreature(*me, uiEarthshatterGUID[i]); +                temp = ObjectAccessor::GetCreature(*me, uiEarthshatterGUID[i]);                  if (!temp)                  {                      temp = me->SummonCreature(NPC_RIMBLAT_EARTHSHATTER, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1615,7 +1615,7 @@ public:                      uiEarthshatterGUID[i] = temp->GetGUID();                  }              } -            temp = Unit::GetCreature(*me, uiKorfaxGUID); +            temp = ObjectAccessor::GetCreature(*me, uiKorfaxGUID);              if (!temp)              {                  temp = me->SummonCreature(NPC_KORFAX_CHAMPION_OF_THE_LIGHT, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000); @@ -1623,7 +1623,7 @@ public:                  me->AddThreat(temp, 0.0f);                  uiKorfaxGUID = temp->GetGUID();              } -            temp = Unit::GetCreature(*me, uiMaxwellGUID); +            temp = ObjectAccessor::GetCreature(*me, uiMaxwellGUID);              if (!temp)              {                  temp = me->SummonCreature(NPC_LORD_MAXWELL_TYROSUS, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000); @@ -1631,7 +1631,7 @@ public:                  me->AddThreat(temp, 0.0f);                  uiMaxwellGUID = temp->GetGUID();              } -            temp = Unit::GetCreature(*me, uiEligorGUID); +            temp = ObjectAccessor::GetCreature(*me, uiEligorGUID);              if (!temp)              {                  temp = me->SummonCreature(NPC_COMMANDER_ELIGOR_DAWNBRINGER, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 600000); @@ -1639,7 +1639,7 @@ public:                  me->AddThreat(temp, 0.0f);                  uiEligorGUID = temp->GetGUID();              } -            temp = Unit::GetCreature(*me, uiRayneGUID); +            temp = ObjectAccessor::GetCreature(*me, uiRayneGUID);              if (!temp)              {                  temp = me->SummonCreature(NPC_RAYNE, LightofDawnLoc[0].x+rand()%30, LightofDawnLoc[0].y+rand()%30, LightofDawnLoc[0].z, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 300000); @@ -1651,7 +1651,7 @@ public:          void DespawnNPC(uint64 pGUID)          { -            if (Creature* temp = Unit::GetCreature(*me, pGUID)) +            if (Creature* temp = ObjectAccessor::GetCreature(*me, pGUID))                  if (temp->IsAlive())                  {                      temp->SetVisible(false); diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp index f47a3bc3a86..cad51dd55e0 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/zone_the_scarlet_enclave.cpp @@ -99,7 +99,7 @@ public:                          FlyBackTimer = 4500;                          break;                      case 2: -                        if (!player->IsRessurectRequested()) +                        if (!player->IsResurrectRequested())                          {                              me->HandleEmoteCommand(EMOTE_ONESHOT_CUSTOM_SPELL_01);                              DoCast(player, SPELL_REVIVE, true); diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp index 423f8f26130..0be681af915 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_headless_horseman.cpp @@ -356,7 +356,7 @@ public:                      if (wait <= diff)                      {                          die = false; -                        if (Unit* body = Unit::GetUnit(*me, bodyGUID)) +                        if (Unit* body = ObjectAccessor::GetUnit(*me, bodyGUID))                              body->Kill(body);                          me->Kill(me);                      } @@ -428,7 +428,7 @@ public:              DoCast(me, SPELL_HEAD);              if (headGUID)              { -                if (Creature* Head = Unit::GetCreature((*me), headGUID)) +                if (Creature* Head = ObjectAccessor::GetCreature((*me), headGUID))                      Head->DisappearAndDie();                  headGUID = 0; @@ -483,7 +483,7 @@ public:                      wp_reached = false;                      me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);                      SaySound(SAY_ENTRANCE); -                    if (Unit* player = Unit::GetUnit(*me, PlayerGUID)) +                    if (Unit* player = ObjectAccessor::GetUnit(*me, PlayerGUID))                          DoStartMovement(player);                      break;                  } @@ -516,7 +516,7 @@ public:                  if (withhead)                      SaySound(SAY_PLAYER_DEATH);                  //maybe possible when player dies from conflagration -                else if (Creature* Head = Unit::GetCreature((*me), headGUID)) +                else if (Creature* Head = ObjectAccessor::GetCreature((*me), headGUID))                      CAST_AI(npc_head::npc_headAI, Head->AI())->SaySound(SAY_PLAYER_DEATH);              }          } @@ -601,7 +601,7 @@ public:                  ThreatContainer::StorageType threatlist = caster->getThreatManager().getThreatList();                  for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)                  { -                    Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                    Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                      if (unit && unit->IsAlive() && unit != caster)                          me->AddThreat(unit, caster->getThreatManager().getThreat(unit));                  } @@ -621,7 +621,7 @@ public:                  if (!headGUID)                      headGUID = DoSpawnCreature(HEAD, float(rand()%6), float(rand()%6), 0, 0, TEMPSUMMON_DEAD_DESPAWN, 0)->GetGUID(); -                Unit* Head = Unit::GetUnit(*me, headGUID); +                Unit* Head = ObjectAccessor::GetUnit(*me, headGUID);                  if (Head && Head->IsAlive())                  {                      Head->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -746,7 +746,7 @@ public:                              --Phase;                          else                              Phase = 1; -                        Creature* Head = Unit::GetCreature((*me), headGUID); +                        Creature* Head = ObjectAccessor::GetCreature((*me), headGUID);                          if (Head && Head->IsAlive())                          {                              CAST_AI(npc_head::npc_headAI, Head->AI())->Phase = Phase; @@ -837,7 +837,7 @@ public:              if (!debuffGUID)                  return; -            Unit* debuff = Unit::GetUnit(*me, debuffGUID); +            Unit* debuff = ObjectAccessor::GetUnit(*me, debuffGUID);              if (debuff)              {                  debuff->SetVisible(false); @@ -909,7 +909,7 @@ void npc_head::npc_headAI::Disappear()      if (bodyGUID)      { -        Creature* body = Unit::GetCreature((*me), bodyGUID); +        Creature* body = ObjectAccessor::GetCreature((*me), bodyGUID);          if (body && body->IsAlive())          {              withbody = true; diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp index e345dc60074..a7c795a81f6 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_interrogator_vishas.cpp @@ -84,7 +84,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              //Any other Actions to do with vorrel? setStandState? -            if (Creature* vorrel = Creature::GetCreature(*me, instance->GetData64(DATA_VORREL))) +            if (Creature* vorrel = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VORREL)))                  vorrel->AI()->Talk(SAY_TRIGGER_VORREL);          } diff --git a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp index a8d1f91c443..25bb08620a1 100644 --- a/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletMonastery/boss_mograine_and_whitemane.cpp @@ -33,12 +33,12 @@ enum Says      //Mograine says      SAY_MO_AGGRO                 = 0,      SAY_MO_KILL                  = 1, -    SAY_MO_RESSURECTED           = 2, +    SAY_MO_RESURRECTED           = 2,      //Whitemane says      SAY_WH_INTRO                 = 0,      SAY_WH_KILL                  = 1, -    SAY_WH_RESSURECT             = 2, +    SAY_WH_RESURRECT             = 2,  };  enum Spells @@ -127,7 +127,7 @@ public:                  return;              //On first death, fake death and open door, as well as initiate whitemane if exist -            if (Unit* Whitemane = Unit::GetUnit(*me, instance->GetData64(DATA_WHITEMANE))) +            if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_WHITEMANE)))              {                  instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, IN_PROGRESS); @@ -157,10 +157,10 @@ public:          void SpellHit(Unit* /*who*/, const SpellInfo* spell) override          { -            //When hit with ressurection say text +            //When hit with resurrection say text              if (spell->Id == SPELL_SCARLETRESURRECTION)              { -                Talk(SAY_MO_RESSURECTED); +                Talk(SAY_MO_RESURRECTED);                  _bFakeDeath = false;                  instance->SetData(TYPE_MOGRAINE_AND_WHITE_EVENT, SPECIAL); @@ -174,8 +174,8 @@ public:              if (_bHasDied && !_bHeal && instance->GetData(TYPE_MOGRAINE_AND_WHITE_EVENT) == SPECIAL)              { -                //On ressurection, stop fake death and heal whitemane and resume fight -                if (Unit* Whitemane = Unit::GetUnit(*me, instance->GetData64(DATA_WHITEMANE))) +                //On resurrection, stop fake death and heal whitemane and resume fight +                if (Unit* Whitemane = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_WHITEMANE)))                  {                      me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                      me->SetStandState(UNIT_STAND_STATE_STAND); @@ -294,7 +294,7 @@ public:                      if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOGRAINE)))                      {                          DoCast(mograine, SPELL_SCARLETRESURRECTION); -                        Talk(SAY_WH_RESSURECT); +                        Talk(SAY_WH_RESURRECT);                          _bCanResurrect = false;                      }                  } @@ -325,7 +325,7 @@ public:                  if (!HealthAbovePct(75))                      target = me; -                if (Creature* mograine = Unit::GetCreature(*me, instance->GetData64(DATA_MOGRAINE))) +                if (Creature* mograine = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MOGRAINE)))                  {                      // checking _bCanResurrectCheck prevents her healing Mograine while he is "faking death"                      if (_bCanResurrectCheck && mograine->IsAlive() && !mograine->HealthAbovePct(75)) diff --git a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp index 9bcf67bce8c..4109328afda 100644 --- a/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp +++ b/src/server/scripts/EasternKingdoms/Stratholme/stratholme.cpp @@ -187,7 +187,7 @@ public:              {                  if (Die_Timer <= diff)                  { -                    if (Unit* temp = Unit::GetUnit(*me, Tagger)) +                    if (Unit* temp = ObjectAccessor::GetUnit(*me, Tagger))                      {                          if (Player* player = temp->ToPlayer())                              player->KilledMonsterCredit(NPC_RESTLESS, me->GetGUID()); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp index 5bca936d5b4..8a9699ed1be 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_felmyst.cpp @@ -280,7 +280,7 @@ public:                  {                      Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);                      if (!target) -                        target = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); +                        target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID));                      if (!target)                      { @@ -306,7 +306,7 @@ public:                      Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);                      if (!target) -                        target = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); +                        target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID));                      if (!target)                      { @@ -335,7 +335,7 @@ public:                  {                      Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);                      if (!target) -                        target = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); +                        target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID));                      if (!target)                      { diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp index 5562559786d..d300703152c 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kalecgos.cpp @@ -679,13 +679,16 @@ public:              if (!map->IsDungeon())                  return; -            Map::PlayerList const &PlayerList = map->GetPlayers(); -            for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i) +            Map::PlayerList const &playerList = map->GetPlayers(); +            Position homePos = me->GetHomePosition(); +            for (Map::PlayerList::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)              { -                if (i->GetSource()->GetPositionZ() <= DRAGON_REALM_Z-5) +                Player* player = itr->GetSource(); +                if (player->IsInDist(&homePos, 50.0f) && player->GetPositionZ() <= DEMON_REALM_Z + 10.f)                  { -                    i->GetSource()->RemoveAura(AURA_SPECTRAL_REALM); -                    i->GetSource()->TeleportTo(me->GetMap()->GetId(), i->GetSource()->GetPositionX(), i->GetSource()->GetPositionY(), DRAGON_REALM_Z+5, i->GetSource()->GetOrientation()); +                    player->RemoveAura(AURA_SPECTRAL_REALM); +                    player->TeleportTo(me->GetMap()->GetId(), player->GetPositionX(), +                        player->GetPositionY(), DRAGON_REALM_Z + 5, player->GetOrientation());                  }              }          } @@ -763,7 +766,7 @@ public:                  ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList();                  for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)                  { -                    if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) +                    if (Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))                          if (unit->GetPositionZ() > me->GetPositionZ() + 5)                              me->getThreatManager().modifyThreatPercent(unit, -100);                  } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp index 179a649aab4..565d40a802e 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_kiljaeden.cpp @@ -956,7 +956,7 @@ public:                      ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();                      for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)                      { -                        Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                        Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                          if (unit)                              pPortal->AddThreat(unit, 1.0f);                      } diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp index 9d9232b774d..faecb2ca2f0 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_muru.cpp @@ -603,7 +603,7 @@ public:          {              if (SpellTimer <= diff)              { -                Unit* Victim = Unit::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID)); +                Unit* Victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PLAYER_GUID));                  switch (NeedForAHack)                  {                      case 0: diff --git a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp index 9134f15959f..f06dc247883 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/boss_archaedas.cpp @@ -94,7 +94,7 @@ class boss_archaedas : public CreatureScript              void ActivateMinion(uint64 uiGuid, bool flag)              { -                Unit* minion = Unit::GetUnit(*me, uiGuid); +                Unit* minion = ObjectAccessor::GetUnit(*me, uiGuid);                  if (minion && minion->IsAlive())                  { @@ -139,7 +139,7 @@ class boss_archaedas : public CreatureScript                  } else if (bWakingUp && iAwakenTimer <= 0)                  {                      bWakingUp = false; -                    AttackStart(Unit::GetUnit(*me, instance->GetData64(0))); +                    AttackStart(ObjectAccessor::GetUnit(*me, instance->GetData64(0)));                      return;     // dont want to continue until we finish the AttackStart method                  } @@ -285,7 +285,7 @@ class npc_archaedas_minions : public CreatureScript                  {                      bWakingUp = false;                      bAmIAwake = true; -                    // AttackStart(Unit::GetUnit(*me, instance->GetData64(0))); // whoWokeArchaedasGUID +                    // AttackStart(ObjectAccessor::GetUnit(*me, instance->GetData64(0))); // whoWokeArchaedasGUID                      return;     // dont want to continue until we finish the AttackStart method                  } diff --git a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp index 717406e6750..56c84677181 100644 --- a/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp +++ b/src/server/scripts/EasternKingdoms/Uldaman/instance_uldaman.cpp @@ -252,7 +252,7 @@ class instance_uldaman : public InstanceMapScript                  if (!archaedas)                      return; -                if (Unit::GetUnit(*archaedas, target)) +                if (ObjectAccessor::GetUnit(*archaedas, target))                  {                      archaedas->CastSpell(archaedas, SPELL_ARCHAEDAS_AWAKEN, false);                      whoWokeuiArchaedasGUID = target; diff --git a/src/server/scripts/EasternKingdoms/zone_undercity.cpp b/src/server/scripts/EasternKingdoms/zone_undercity.cpp index 07cdcefcbbb..0958a9141f0 100644 --- a/src/server/scripts/EasternKingdoms/zone_undercity.cpp +++ b/src/server/scripts/EasternKingdoms/zone_undercity.cpp @@ -130,7 +130,7 @@ public:          {              if (summoned->GetEntry() == ENTRY_HIGHBORNE_BUNNY)              { -                if (Creature* target = Unit::GetCreature(*summoned, targetGUID)) +                if (Creature* target = ObjectAccessor::GetCreature(*summoned, targetGUID))                  {                      target->MonsterMoveWithSpeed(target->GetPositionX(), target->GetPositionY(), me->GetPositionZ()+15.0f, 0);                      target->SetPosition(target->GetPositionX(), target->GetPositionY(), me->GetPositionZ()+15.0f, 0.0f); diff --git a/src/server/scripts/Events/childrens_week.cpp b/src/server/scripts/Events/childrens_week.cpp index 65b21520102..c9798338b36 100644 --- a/src/server/scripts/Events/childrens_week.cpp +++ b/src/server/scripts/Events/childrens_week.cpp @@ -1036,7 +1036,7 @@ class npc_grizzlemaw_cw_trigger : public CreatureScript                  if (who && who->GetDistance2d(me) < 10.0f)                      if (Player* player = who->ToPlayer())                          if (player->GetQuestStatus(QUEST_HOME_OF_THE_BEAR_MEN) == QUEST_STATUS_INCOMPLETE) -                            if (Creature* orphan = Creature::GetCreature(*me, getOrphanGUID(player, ORPHAN_WOLVAR))) +                            if (Creature* orphan = ObjectAccessor::GetCreature(*me, getOrphanGUID(player, ORPHAN_WOLVAR)))                              {                                  player->AreaExploredOrEventHappens(QUEST_HOME_OF_THE_BEAR_MEN);                                  orphan->AI()->Talk(TEXT_WOLVAR_ORPHAN_10); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp index ebe9939390f..7aaa2239745 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_anetheron.cpp @@ -94,7 +94,7 @@ public:          {              if (waypointId == 7)              { -                Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                  if (target && target->IsAlive())                      me->AddThreat(target, 0.0f);              } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp index c0f3ea35004..d86e3342cf0 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_archimonde.cpp @@ -118,7 +118,7 @@ public:          {              if (CheckTimer <= diff)              { -                if (Unit* Archimonde = Unit::GetUnit(*me, ArchimondeGUID)) +                if (Unit* Archimonde = ObjectAccessor::GetUnit(*me, ArchimondeGUID))                  {                      if (Archimonde->HealthBelowPct(2) || !Archimonde->IsAlive())                          DoCast(me, SPELL_DENOUEMENT_WISP); @@ -205,7 +205,7 @@ public:          {              if (ChangeTargetTimer <= diff)              { -                if (Unit* temp = Unit::GetUnit(*me, TargetGUID)) +                if (Unit* temp = ObjectAccessor::GetUnit(*me, TargetGUID))                  {                      me->GetMotionMaster()->MoveFollow(temp, 0.0f, 0.0f);                      TargetGUID = 0; @@ -364,7 +364,7 @@ public:              ThreatContainer::StorageType::const_iterator itr = threatlist.begin();              for (; itr != threatlist.end(); ++itr)              { -                Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->IsAlive())                      targets.push_back(unit);              } @@ -406,7 +406,7 @@ public:                  summoned->CastSpell(summoned, SPELL_DOOMFIRE_SPAWN, false);                  summoned->CastSpell(summoned, SPELL_DOOMFIRE, true, 0, 0, me->GetGUID()); -                if (Unit* DoomfireSpirit = Unit::GetUnit(*me, DoomfireSpiritGUID)) +                if (Unit* DoomfireSpirit = ObjectAccessor::GetUnit(*me, DoomfireSpiritGUID))                  {                      summoned->GetMotionMaster()->MoveFollow(DoomfireSpirit, 0.0f, 0.0f);                      DoomfireSpiritGUID = 0; @@ -487,7 +487,7 @@ public:                          if (temp)                              WorldTreeGUID = temp->GetGUID(); -                        if (Unit* Nordrassil = Unit::GetUnit(*me, WorldTreeGUID)) +                        if (Unit* Nordrassil = ObjectAccessor::GetUnit(*me, WorldTreeGUID))                          {                              Nordrassil->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                              Nordrassil->SetDisplayId(11686); @@ -496,7 +496,7 @@ public:                          }                      } -                    if (Unit* Nordrassil = Unit::GetUnit(*me, WorldTreeGUID)) +                    if (Unit* Nordrassil = ObjectAccessor::GetUnit(*me, WorldTreeGUID))                      {                          Nordrassil->CastSpell(me, SPELL_DRAIN_WORLD_TREE_2, true);                          DrainNordrassilTimer = 1000; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp index d7c48541315..c9e010e4159 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_azgalor.cpp @@ -99,7 +99,7 @@ public:          {              if (waypointId == 7 && instance)              { -                Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                  if (target && target->IsAlive())                      me->AddThreat(target, 0.0f);              } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp index 235b27dfb10..606188250dd 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_kazrogal.cpp @@ -94,7 +94,7 @@ public:          {              if (waypointId == 7 && instance)              { -                Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                  if (target && target->IsAlive())                      me->AddThreat(target, 0.0f);              } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp index 21fe3ab946b..9ac5034d954 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/boss_rage_winterchill.cpp @@ -89,7 +89,7 @@ public:          {              if (waypointId == 7 && instance)              { -                Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                  if (target && target->IsAlive())                      me->AddThreat(target, 0.0f);              } diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp index c8006158ef1..4e6da7dcac2 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjalAI.cpp @@ -665,7 +665,7 @@ void hyjalAI::DeSpawnVeins()  {      if (Faction == 1)      { -        Creature* unit=Unit::GetCreature((*me), instance->GetData64(DATA_JAINAPROUDMOORE)); +        Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_JAINAPROUDMOORE));          if (!unit)return;          hyjalAI* ai = CAST_AI(hyjalAI, unit->AI());          if (!ai)return; @@ -676,7 +676,7 @@ void hyjalAI::DeSpawnVeins()          }      } else if (Faction)      { -        Creature* unit=Unit::GetCreature((*me), instance->GetData64(DATA_THRALL)); +        Creature* unit=ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_THRALL));          if (!unit)return;          hyjalAI* ai = CAST_AI(hyjalAI, unit->AI());          if (!ai)return; @@ -804,7 +804,7 @@ void hyjalAI::UpdateAI(uint32 diff)          {              if (BossGUID[i])              { -                Unit* unit = Unit::GetUnit(*me, BossGUID[i]); +                Unit* unit = ObjectAccessor::GetUnit(*me, BossGUID[i]);                  if (unit && (!unit->IsAlive()))                  {                      if (BossGUID[i] == BossGUID[0]) @@ -937,7 +937,7 @@ void hyjalAI::WaypointReached(uint32 waypointId)              DoCast(me, SPELL_MASS_TELEPORT, false);          if (me->GetEntry() == THRALL && DummyGuid)          { -            if (Creature* creature = Unit::GetCreature(*me, DummyGuid)) +            if (Creature* creature = ObjectAccessor::GetCreature(*me, DummyGuid))              {                  hyjalAI* ai = CAST_AI(hyjalAI, creature->AI());                  ai->DoMassTeleport = true; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp index 038b7ab69ce..85de43cb4c4 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/BattleForMountHyjal/hyjal_trash.cpp @@ -447,7 +447,7 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -486,7 +486,7 @@ public:                      CanMove = true;                      if (instance->GetData(DATA_ALLIANCE_RETREAT) && !instance->GetData(DATA_HORDE_RETREAT))                      { -                        Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                        Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                          if (target && target->IsAlive())                              me->AddThreat(target, 0.0f);                      } else if (instance->GetData(DATA_ALLIANCE_RETREAT) && instance->GetData(DATA_HORDE_RETREAT)){ @@ -563,13 +563,13 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  }                  else                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -662,13 +662,13 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  }                  else                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -773,13 +773,13 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  }                  else                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -886,13 +886,13 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  }                  else                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -982,13 +982,13 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  }                  else                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -1068,13 +1068,13 @@ public:              {                  if (instance->GetData(DATA_ALLIANCE_RETREAT))//2.alliance boss down, attack thrall                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  }                  else                  { -                    Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE)); +                    Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_JAINAPROUDMOORE));                      if (target && target->IsAlive())                          me->AddThreat(target, 0.0f);                  } @@ -1155,7 +1155,7 @@ public:          {              if (waypointId == 2 && !IsOverrun)              { -                Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                  if (target && target->IsAlive())                  {                      me->AddThreat(target, 0.0f); @@ -1276,7 +1276,7 @@ public:          {              if (waypointId == 2 && !IsOverrun)              { -                Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_THRALL)); +                Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_THRALL));                  if (target && target->IsAlive())                  {                      me->AddThreat(target, 0.0f); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp index 0e6d60395d8..fd832051421 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/culling_of_stratholme.cpp @@ -627,7 +627,7 @@ public:                              JumpToNextStep(2000);                              break;                          case 3: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                              {                                  uther->AI()->Talk(SAY_PHASE102);                              } @@ -642,13 +642,13 @@ public:                              break;                          //After waypoint 1                          case 5: -                            if (Creature* jaina = Unit::GetCreature(*me, jainaGUID)) +                            if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))                                  jaina->SetTarget(me->GetGUID());                              Talk(SAY_PHASE104);                              JumpToNextStep(10000);                              break;                          case 6: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                                  uther->AI()->Talk(SAY_PHASE105);                              JumpToNextStep(1000);                              break; @@ -657,7 +657,7 @@ public:                              JumpToNextStep(4000);                              break;                          case 8: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                                   uther->AI()->Talk(SAY_PHASE107);                              JumpToNextStep(6000);                              break; @@ -666,7 +666,7 @@ public:                              JumpToNextStep(4000);                              break;                          case 10: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                                   uther->AI()->Talk(SAY_PHASE109);                              JumpToNextStep(8000);                              break; @@ -675,7 +675,7 @@ public:                              JumpToNextStep(4000);                              break;                          case 12: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                                   uther->AI()->Talk(SAY_PHASE111);                              JumpToNextStep(4000);                              break; @@ -684,7 +684,7 @@ public:                              JumpToNextStep(11000);                              break;                          case 14: -                            if (Creature* jaina = Unit::GetCreature(*me, jainaGUID)) +                            if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))                                   jaina->AI()->Talk(SAY_PHASE113);                              JumpToNextStep(3000);                              break; @@ -693,12 +693,12 @@ public:                              JumpToNextStep(9000);                              break;                          case 16: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                                  uther->AI()->Talk(SAY_PHASE115);                              JumpToNextStep(4000);                              break;                          case 17: -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                              {                                  uther->SetWalk(true);                                  uther->GetMotionMaster()->MovePoint(0, 1794.357f, 1272.183f, 140.558f); @@ -706,7 +706,7 @@ public:                              JumpToNextStep(1000);                              break;                          case 18: -                            if (Creature* jaina = Unit::GetCreature(*me, jainaGUID)) +                            if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))                              {                                  me->SetTarget(jainaGUID);                                  jaina->SetWalk(true); @@ -719,7 +719,7 @@ public:                              JumpToNextStep(1000);                              break;                          case 20: -                            if (Creature* jaina = Unit::GetCreature(*me, jainaGUID)) +                            if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))                                  jaina->AI()->Talk(SAY_PHASE117);                              JumpToNextStep(3000);                              break; @@ -740,10 +740,10 @@ public:                              bStepping = false;                              SetRun(true); -                            if (Creature* jaina = Unit::GetCreature(*me, jainaGUID)) +                            if (Creature* jaina = ObjectAccessor::GetCreature(*me, jainaGUID))                                  jaina->DisappearAndDie(); -                            if (Creature* uther = Unit::GetCreature(*me, utherGUID)) +                            if (Creature* uther = ObjectAccessor::GetCreature(*me, utherGUID))                                  uther->DisappearAndDie();                              me->SetTarget(0); @@ -772,7 +772,7 @@ public:                          //After waypoint 9                          case 27:                              me->SetTarget(citymenGUID[0]); -                            if (Creature* cityman = Unit::GetCreature(*me, citymenGUID[0])) +                            if (Creature* cityman = ObjectAccessor::GetCreature(*me, citymenGUID[0]))                              {                                  cityman->SetTarget(me->GetGUID());                                  cityman->SetWalk(true); @@ -781,7 +781,7 @@ public:                              JumpToNextStep(2000);                              break;                          case 28: -                            if (Creature* cityman = Unit::GetCreature(*me, citymenGUID[0])) +                            if (Creature* cityman = ObjectAccessor::GetCreature(*me, citymenGUID[0]))                                  cityman->AI()->Talk(SAY_PHASE202);                              JumpToNextStep(4000);                              break; @@ -799,11 +799,11 @@ public:                          case 31:                              SetEscortPaused(false);                              bStepping = false; -                            if (Creature* cityman1 = Unit::GetCreature(*me, citymenGUID[1])) +                            if (Creature* cityman1 = ObjectAccessor::GetCreature(*me, citymenGUID[1]))                              {                                  cityman1->AI()->Talk(SAY_PHASE204);                                  cityman1->SetTarget(me->GetGUID()); -                                if (Creature* cityman0 = Unit::GetCreature(*me, citymenGUID[0])) +                                if (Creature* cityman0 = ObjectAccessor::GetCreature(*me, citymenGUID[0]))                                      cityman0->Kill(cityman0);                                  me->SetTarget(citymenGUID[1]);                              } @@ -815,7 +815,7 @@ public:                              JumpToNextStep(1000);                              break;                          case 33: -                            if (Creature* cityman1 = Unit::GetCreature(*me, citymenGUID[1])) +                            if (Creature* cityman1 = ObjectAccessor::GetCreature(*me, citymenGUID[1]))                                  cityman1->Kill(cityman1);                              JumpToNextStep(1000);                              break; @@ -839,7 +839,7 @@ public:                          case 36:                              if (Creature* malganis = me->SummonCreature(NPC_MAL_GANIS, 2117.349f, 1288.624f, 136.271f, 1.37f, TEMPSUMMON_TIMED_DESPAWN, 60000))                              { -                                if (Creature* pStalkerM = Unit::GetCreature(*me, stalkerGUID)) +                                if (Creature* pStalkerM = ObjectAccessor::GetCreature(*me, stalkerGUID))                                      malganis->CastSpell(pStalkerM, 63793, false);                                  malganisGUID = malganis->GetGUID(); @@ -850,7 +850,7 @@ public:                              JumpToNextStep(11000);                              break;                          case 37: -                            if (Creature* malganis = Unit::GetCreature(*me, malganisGUID)) +                            if (Creature* malganis = ObjectAccessor::GetCreature(*me, malganisGUID))                              {                                  Creature* pZombie = GetClosestCreatureWithEntry(malganis, NPC_CITY_MAN, 100.0f);                                  if (!pZombie) @@ -865,12 +865,12 @@ public:                              phaseTimer = 500;                              break;                          case 38: -                            if (Creature* malganis = Unit::GetCreature(*me, malganisGUID)) +                            if (Creature* malganis = ObjectAccessor::GetCreature(*me, malganisGUID))                                  malganis->AI()->Talk(SAY_PHASE207);                              JumpToNextStep(17000);                              break;                          case 39: -                            if (Creature* malganis = Unit::GetCreature(*me, malganisGUID)) +                            if (Creature* malganis = ObjectAccessor::GetCreature(*me, malganisGUID))                                  malganis->SetVisible(false);                              Talk(SAY_PHASE208);                              JumpToNextStep(7000); @@ -922,7 +922,7 @@ public:                                      if (waveGUID[i] == 0)                                          break;                                      ++mobCounter; -                                    Unit* temp = Unit::GetCreature(*me, waveGUID[i]); +                                    Unit* temp = ObjectAccessor::GetCreature(*me, waveGUID[i]);                                      if (!temp || temp->isDead())                                          ++deadCounter;                                  } @@ -976,16 +976,16 @@ public:                          //After Gossip 2 (waypoint 22)                          case 61:                              me->SetReactState(REACT_AGGRESSIVE); -                            if (Creature* disguised0 = Unit::GetCreature(*me, infiniteDraconianGUID[0])) +                            if (Creature* disguised0 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[0]))                                  disguised0->SetTarget(me->GetGUID()); -                            if (Creature* disguised1 = Unit::GetCreature(*me, infiniteDraconianGUID[1])) +                            if (Creature* disguised1 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[1]))                                  disguised1->SetTarget(me->GetGUID()); -                            if (Creature* disguised2 = Unit::GetCreature(*me, infiniteDraconianGUID[2])) +                            if (Creature* disguised2 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[2]))                                  disguised2->SetTarget(me->GetGUID());                              JumpToNextStep(1000);                              break;                          case 62: -                            if (Creature* disguised0 = Unit::GetCreature(*me, infiniteDraconianGUID[0])) +                            if (Creature* disguised0 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[0]))                                  disguised0->AI()->Talk(SAY_PHASE302);                              JumpToNextStep(7000);                              break; @@ -1001,7 +1001,7 @@ public:                              JumpToNextStep(1000);                              break;                          case 65: -                            if (Creature* disguised0 = Unit::GetCreature(*me, infiniteDraconianGUID[0])) +                            if (Creature* disguised0 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[0]))                                  disguised0->HandleEmoteCommand(11);                              JumpToNextStep(1000);                              break; @@ -1010,12 +1010,12 @@ public:                              JumpToNextStep(2000);                              break;                          case 67: -                            if (Creature* disguised0 = Unit::GetCreature(*me, infiniteDraconianGUID[0])) +                            if (Creature* disguised0 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[0]))                                  disguised0->AI()->Talk(SAY_PHASE305);                              JumpToNextStep(1000);                              break;                          case 68: -                            if (Creature* disguised2 = Unit::GetCreature(*me, infiniteDraconianGUID[2])) +                            if (Creature* disguised2 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[2]))                              {                                  disguised2->UpdateEntry(NPC_INFINITE_HUNTER);                                  //Make them unattackable @@ -1025,7 +1025,7 @@ public:                              JumpToNextStep(2000);                              break;                          case 69: -                            if (Creature* disguised1 = Unit::GetCreature(*me, infiniteDraconianGUID[1])) +                            if (Creature* disguised1 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[1]))                              {                                  disguised1->UpdateEntry(NPC_INFINITE_AGENT);                                  //Make them unattackable @@ -1035,7 +1035,7 @@ public:                              JumpToNextStep(2000);                              break;                          case 70: -                            if (Creature* disguised0 = Unit::GetCreature(*me, infiniteDraconianGUID[0])) +                            if (Creature* disguised0 = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[0]))                              {                                  disguised0->UpdateEntry(NPC_INFINITE_ADVERSARY);                                  //Make them unattackable @@ -1051,7 +1051,7 @@ public:                          case 77:                              //Make cratures attackable                              for (uint32 i = 0; i< ENCOUNTER_DRACONIAN_NUMBER; ++i) -                                if (Creature* temp = Unit::GetCreature(*me, infiniteDraconianGUID[i])) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, infiniteDraconianGUID[i]))                                  {                                      temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);                                      temp->SetReactState(REACT_AGGRESSIVE); @@ -1091,7 +1091,7 @@ public:                              if (instance->GetData(DATA_EPOCH_EVENT) != DONE)                              {                                  SpawnTimeRift(17, &epochGUID); -                                if (Creature* epoch = Unit::GetCreature(*me, epochGUID)) +                                if (Creature* epoch = ObjectAccessor::GetCreature(*me, epochGUID))                                      epoch->AI()->Talk(SAY_PHASE314);                                  me->SetTarget(epochGUID);                              } @@ -1105,7 +1105,7 @@ public:                          case 82:                              if (instance->GetData(DATA_EPOCH_EVENT) != DONE)                              { -                                if (Creature* epoch = Unit::GetCreature(*me, epochGUID)) +                                if (Creature* epoch = ObjectAccessor::GetCreature(*me, epochGUID))                                  {                                      //Make Epoch attackable                                      epoch->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC); @@ -1157,7 +1157,7 @@ public:                              me->SetTarget(malganisGUID);                              break;                          case 87: -                            if (Creature* malganis = Unit::GetCreature(*me, malganisGUID)) +                            if (Creature* malganis = ObjectAccessor::GetCreature(*me, malganisGUID))                              {                                  malganis->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_UNK_6 | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_UNK_15);                                  malganis->SetReactState(REACT_AGGRESSIVE); diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp index dbd844aa34c..503166e0b12 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/CullingOfStratholme/instance_culling_of_stratholme.cpp @@ -187,7 +187,7 @@ class instance_culling_of_stratholme : public InstanceMapScript                              // Summon Chromie and global whisper                              if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos))                                  if (!instance->GetPlayers().isEmpty()) -                                    sCreatureTextMgr->SendChat(chromie, SAY_CRATES_COMPLETED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP); +                                    chromie->AI()->TalkToMap(SAY_CRATES_COMPLETED);                          }                          DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount);                          break; diff --git a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp index f6ff1719391..14f9bfb2e2f 100644 --- a/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp +++ b/src/server/scripts/Kalimdor/CavernsOfTime/EscapeFromDurnholdeKeep/old_hillsbrad.cpp @@ -402,7 +402,7 @@ public:                  case 94:                      if (uint64 TarethaGUID = instance->GetData64(DATA_TARETHA))                      { -                        if (Creature* Taretha = Creature::GetCreature(*me, TarethaGUID)) +                        if (Creature* Taretha = ObjectAccessor::GetCreature(*me, TarethaGUID))                              Taretha->AI()->Talk(SAY_TA_ESCAPED, me);                      }                      break; @@ -590,7 +590,7 @@ public:                  if (instance->GetData64(DATA_EPOCH) == 0)                       creature->SummonCreature(ENTRY_EPOCH, 2639.13f, 698.55f, 65.43f, 4.59f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000); -                if (Creature* thrall = (Unit::GetCreature(*creature, instance->GetData64(DATA_THRALL)))) +                if (Creature* thrall = (ObjectAccessor::GetCreature(*creature, instance->GetData64(DATA_THRALL))))                      CAST_AI(npc_thrall_old_hillsbrad::npc_thrall_old_hillsbradAI, thrall->AI())->StartWP();              }          } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp index 35086afa42e..21da920e4fd 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_cthun.cpp @@ -545,7 +545,7 @@ public:              while (i != Stomach_Map.end())              {                  //Check for valid player -                Unit* unit = Unit::GetUnit(*me, i->first); +                Unit* unit = ObjectAccessor::GetUnit(*me, i->first);                  //Only units out of stomach                  if (unit && i->second == false) @@ -640,7 +640,7 @@ public:                          me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);                          //Emerging phase -                        //AttackStart(Unit::GetUnit(*me, HoldpPlayer)); +                        //AttackStart(ObjectAccessor::GetUnit(*me, HoldpPlayer));                          DoZoneInCombat();                          //Place all units in threat list on outside of stomach @@ -686,7 +686,7 @@ public:                          while (i != Stomach_Map.end())                          {                              //Check for valid player -                            Unit* unit = Unit::GetUnit(*me, i->first); +                            Unit* unit = ObjectAccessor::GetUnit(*me, i->first);                              //Only move units in stomach                              if (unit && i->second == true) @@ -717,7 +717,7 @@ public:                          while (i != Stomach_Map.end())                          {                              //Check for valid player -                            Unit* unit = Unit::GetUnit(*me, i->first); +                            Unit* unit = ObjectAccessor::GetUnit(*me, i->first);                              //Only apply to units in stomach                              if (unit && i->second == true) @@ -767,7 +767,7 @@ public:                          if (StomachEnterVisTimer <= diff)                          {                              //Check for valid player -                            Unit* unit = Unit::GetUnit(*me, StomachEnterTarget); +                            Unit* unit = ObjectAccessor::GetUnit(*me, StomachEnterTarget);                              if (unit)                              { @@ -917,7 +917,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Unit* p = Unit::GetUnit(*me, Portal)) +            if (Unit* p = ObjectAccessor::GetUnit(*me, Portal))                  p->Kill(p);          } @@ -998,7 +998,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Unit* p = Unit::GetUnit(*me, Portal)) +            if (Unit* p = ObjectAccessor::GetUnit(*me, Portal))                  p->Kill(p);          } @@ -1026,7 +1026,7 @@ public:              {                  if (EvadeTimer <= diff)                  { -                    if (Unit* p = Unit::GetUnit(*me, Portal)) +                    if (Unit* p = ObjectAccessor::GetUnit(*me, Portal))                          p->Kill(p);                      //Dissapear and reappear at new position @@ -1115,7 +1115,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Unit* p = Unit::GetUnit(*me, Portal)) +            if (Unit* p = ObjectAccessor::GetUnit(*me, Portal))                  p->Kill(p);          } @@ -1144,7 +1144,7 @@ public:              {                  if (EvadeTimer <= diff)                  { -                    if (Unit* p = Unit::GetUnit(*me, Portal)) +                    if (Unit* p = ObjectAccessor::GetUnit(*me, Portal))                          p->Kill(p);                      //Dissapear and reappear at new position @@ -1234,7 +1234,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Unit* p = Unit::GetUnit(*me, Portal)) +            if (Unit* p = ObjectAccessor::GetUnit(*me, Portal))                  p->Kill(p);          } diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp index 6775d84d435..acf0215f9ff 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/boss_twinemperors.cpp @@ -103,7 +103,7 @@ struct boss_twinemperorsAI : public ScriptedAI      Creature* GetOtherBoss()      { -        return Unit::GetCreature(*me, instance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR)); +        return ObjectAccessor::GetCreature(*me, instance->GetData64(IAmVeklor() ? DATA_VEKNILASH : DATA_VEKLOR));      }      void DamageTaken(Unit* /*done_by*/, uint32 &damage) override diff --git a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp index aa9180d79c2..0614303515c 100644 --- a/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp +++ b/src/server/scripts/Kalimdor/TempleOfAhnQiraj/mob_anubisath_sentinel.cpp @@ -132,7 +132,7 @@ public:          void SendMyListToBuddies()          {              for (int i=0; i<3; ++i) -                if (Creature* pNearby = Unit::GetCreature(*me, NearbyGUID[i])) +                if (Creature* pNearby = ObjectAccessor::GetCreature(*me, NearbyGUID[i]))                      GiveBuddyMyList(pNearby);          } @@ -140,7 +140,7 @@ public:          {              for (int i=0; i<3; ++i)              { -                Creature* c = Unit::GetCreature(*me, NearbyGUID[i]); +                Creature* c = ObjectAccessor::GetCreature(*me, NearbyGUID[i]);                  if (c)                  {                      if (!c->IsInCombat()) @@ -195,7 +195,7 @@ public:                  if (!NearbyGUID[bli])                      break; -                Creature* pNearby = Unit::GetCreature(*me, NearbyGUID[bli]); +                Creature* pNearby = ObjectAccessor::GetCreature(*me, NearbyGUID[bli]);                  if (!pNearby)                      break; @@ -221,7 +221,7 @@ public:                  {                      if (!NearbyGUID[i])                          continue; -                    if (Creature* pNearby = Unit::GetCreature(*me, NearbyGUID[i])) +                    if (Creature* pNearby = ObjectAccessor::GetCreature(*me, NearbyGUID[i]))                      {                          if (pNearby->isDead())                              pNearby->Respawn(); @@ -250,7 +250,7 @@ public:          {              for (int ni=0; ni<3; ++ni)              { -                Creature* sent = Unit::GetCreature(*me, NearbyGUID[ni]); +                Creature* sent = ObjectAccessor::GetCreature(*me, NearbyGUID[ni]);                  if (!sent)                      continue;                  if (sent->isDead()) diff --git a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp index 51e97b43554..c3c1d7c146b 100644 --- a/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp +++ b/src/server/scripts/Kalimdor/zone_azuremyst_isle.cpp @@ -442,7 +442,7 @@ public:          uint32 NextStep(uint8 Step)          { -            Creature* Spark = Unit::GetCreature(*me, SparkGUID); +            Creature* Spark = ObjectAccessor::GetCreature(*me, SparkGUID);              if (!Spark)                  return 99999999; diff --git a/src/server/scripts/Kalimdor/zone_silithus.cpp b/src/server/scripts/Kalimdor/zone_silithus.cpp index 3dd2419de4a..00ef96dc785 100644 --- a/src/server/scripts/Kalimdor/zone_silithus.cpp +++ b/src/server/scripts/Kalimdor/zone_silithus.cpp @@ -706,7 +706,7 @@ public:                          break;                      case 65:                          me->SetVisible(false); -                        if (Creature* AnachronosQuestTrigger = (Unit::GetCreature(*me, AnachronosQuestTriggerGUID))) +                        if (Creature* AnachronosQuestTrigger = (ObjectAccessor::GetCreature(*me, AnachronosQuestTriggerGUID)))                          {                              Talk(ARYGOS_YELL_1);                              AnachronosQuestTrigger->AI()->EnterEvadeMode(); @@ -1002,11 +1002,11 @@ void npc_qiraj_war_spawn::npc_qiraj_war_spawnAI::JustDied(Unit* /*slayer*/)      if (!MobGUID)          return; -    if (Creature* mob = Unit::GetCreature(*me, MobGUID)) +    if (Creature* mob = ObjectAccessor::GetCreature(*me, MobGUID))          if (npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI* triggerAI = CAST_AI(npc_anachronos_quest_trigger::npc_anachronos_quest_triggerAI, mob->AI()))              triggerAI->LiveCounter(); -}; +}  /*#####  # go_crystalline_tear diff --git a/src/server/scripts/Kalimdor/zone_tanaris.cpp b/src/server/scripts/Kalimdor/zone_tanaris.cpp index 780ee046eda..af0bfdd982d 100644 --- a/src/server/scripts/Kalimdor/zone_tanaris.cpp +++ b/src/server/scripts/Kalimdor/zone_tanaris.cpp @@ -515,7 +515,7 @@ public:                      {                          PostEventTimer = 5000; -                        Creature* torta = Creature::GetCreature(*me, TortaGUID); +                        Creature* torta = ObjectAccessor::GetCreature(*me, TortaGUID);                          if (!torta || !torta->IsAlive())                          {                              //something happened, so just complete diff --git a/src/server/scripts/Kalimdor/zone_the_barrens.cpp b/src/server/scripts/Kalimdor/zone_the_barrens.cpp index b9bfedc59e3..42caaaca9fd 100644 --- a/src/server/scripts/Kalimdor/zone_the_barrens.cpp +++ b/src/server/scripts/Kalimdor/zone_the_barrens.cpp @@ -375,7 +375,7 @@ public:                      {                          if (AffrayChallenger[i])                          { -                            Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]); +                            Creature* creature = ObjectAccessor::GetCreature((*me), AffrayChallenger[i]);                              if (creature && creature->IsAlive())                                  creature->DisappearAndDie();                          } @@ -383,7 +383,7 @@ public:                      if (BigWill) // unsummon bigWill                      { -                        Creature* creature = Unit::GetCreature((*me), BigWill); +                        Creature* creature = ObjectAccessor::GetCreature((*me), BigWill);                          if (creature && creature->IsAlive())                              creature->DisappearAndDie();                      } @@ -424,7 +424,7 @@ public:                          {                              if (AffrayChallenger[i])                              { -                                Creature* creature = Unit::GetCreature((*me), AffrayChallenger[i]); +                                Creature* creature = ObjectAccessor::GetCreature((*me), AffrayChallenger[i]);                                  if ((!creature || (!creature->IsAlive())) && !ChallengerDown[i])                                  {                                      Talk(SAY_TWIGGY_FLATHEAD_DOWN); diff --git a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp index 09fdbcbce70..1c042f4d185 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_herald_volazj.cpp @@ -211,7 +211,7 @@ public:              // Check if all summons in this phase killed              for (SummonList::const_iterator iter = Summons.begin(); iter != Summons.end(); ++iter)              { -                if (Creature* visage = Unit::GetCreature(*me, *iter)) +                if (Creature* visage = ObjectAccessor::GetCreature(*me, *iter))                  {                      // Not all are dead                      if (phase == visage->GetPhaseMask()) 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 aab0f22169f..b78bdae5c87 100644 --- a/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/Ahnkahet/boss_jedoga_shadowseeker.cpp @@ -212,7 +212,7 @@ public:              }              else              { -                if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_PL_JEDOGA_TARGET))) +                if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_PL_JEDOGA_TARGET)))                  {                      AttackStart(target);                      instance->SetData(DATA_JEDOGA_RESET_INITIANDS, 0); diff --git a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp index a4c3edb85f3..bf5855c3318 100644 --- a/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp +++ b/src/server/scripts/Northrend/AzjolNerub/AzjolNerub/boss_anubarak.cpp @@ -188,7 +188,7 @@ public:                          }                          break;                      case IMPALE_PHASE_ATTACK: -                        if (Creature* impaleTarget = Unit::GetCreature(*me, ImpaleTarget)) +                        if (Creature* impaleTarget = ObjectAccessor::GetCreature(*me, ImpaleTarget))                          {                              impaleTarget->CastSpell(impaleTarget, SPELL_IMPALE_SPIKE, false);                              impaleTarget->RemoveAurasDueToSpell(SPELL_IMPALE_SHAKEGROUND); @@ -197,7 +197,7 @@ public:                          ImpaleTimer = 1*IN_MILLISECONDS;                          break;                      case IMPALE_PHASE_DMG: -                        if (Creature* impaleTarget = Unit::GetCreature(*me, ImpaleTarget)) +                        if (Creature* impaleTarget = ObjectAccessor::GetCreature(*me, ImpaleTarget))                              me->CastSpell(impaleTarget, SPELL_IMPALE_DMG, true);                          ImpalePhase = IMPALE_PHASE_TARGET;                          ImpaleTimer = 9*IN_MILLISECONDS; diff --git a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp index 12c3c580cae..81e124cf5bc 100644 --- a/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp +++ b/src/server/scripts/Northrend/ChamberOfAspects/ObsidianSanctum/boss_sartharion.cpp @@ -178,15 +178,15 @@ public:              Talk(SAY_SARTHARION_DEATH);              _JustDied(); -            if (Creature* tenebron = Unit::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) +            if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON)))                  if (tenebron->IsAlive())                      tenebron->DisappearAndDie(); -            if (Creature* shadron = Unit::GetCreature(*me, instance->GetData64(DATA_SHADRON))) +            if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON)))                  if (shadron->IsAlive())                      shadron->DisappearAndDie(); -            if (Creature* vesperon = Unit::GetCreature(*me, instance->GetData64(DATA_VESPERON))) +            if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON)))                  if (vesperon->IsAlive())                      vesperon->DisappearAndDie();          } @@ -211,7 +211,7 @@ public:          void DrakeRespawn() // Drakes respawning system          { -            if (Creature* tenebron = Unit::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) +            if (Creature* tenebron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON)))              {                  tenebron->SetHomePosition(3239.07f, 657.235f, 86.8775f, 4.74729f);                  if (tenebron->IsAlive()) @@ -231,7 +231,7 @@ public:                  }              } -            if (Creature* shadron = Unit::GetCreature(*me, instance->GetData64(DATA_SHADRON))) +            if (Creature* shadron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON)))              {                  shadron->SetHomePosition(3363.06f, 525.28f, 98.362f, 4.76475f);                  if (shadron->IsAlive()) @@ -251,7 +251,7 @@ public:                  }              } -            if (Creature* vesperon = Unit::GetCreature(*me, instance->GetData64(DATA_VESPERON))) +            if (Creature* vesperon = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON)))              {                  vesperon->SetHomePosition(3145.68f, 520.71f, 89.7f, 4.64258f);                  if (vesperon->IsAlive()) @@ -280,7 +280,7 @@ public:              //if at least one of the dragons are alive and are being called              bool _canUseWill = false; -            if (Creature* fetchTene = Unit::GetCreature(*me, instance->GetData64(DATA_TENEBRON))) +            if (Creature* fetchTene = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TENEBRON)))              {                  if (fetchTene->IsAlive() && !fetchTene->GetVictim())                  { @@ -298,7 +298,7 @@ public:                  }              } -            if (Creature* fetchShad = Unit::GetCreature(*me, instance->GetData64(DATA_SHADRON))) +            if (Creature* fetchShad = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADRON)))              {                  if (fetchShad->IsAlive() && !fetchShad->GetVictim())                  { @@ -316,7 +316,7 @@ public:                  }              } -            if (Creature* fetchVesp = Unit::GetCreature(*me, instance->GetData64(DATA_VESPERON))) +            if (Creature* fetchVesp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_VESPERON)))              {                  if (fetchVesp && fetchVesp->IsAlive() && !fetchVesp->GetVictim())                  { @@ -340,7 +340,7 @@ public:          void CallDragon(uint32 dataId)          { -            if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(dataId))) +            if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(dataId)))              {                  if (temp->IsAlive() && !temp->GetVictim())                  { diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp index cb0cba21d6c..7e9e351ae9c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_argent_challenge.cpp @@ -292,7 +292,7 @@ public:              bHealth = false;              bDone = false; -            if (Creature* pMemory = Unit::GetCreature(*me, MemoryGUID)) +            if (Creature* pMemory = ObjectAccessor::GetCreature(*me, MemoryGUID))                  if (pMemory->IsAlive())                      pMemory->RemoveFromWorld();          } @@ -373,7 +373,7 @@ public:                              DoCast(me, SPELL_RENEW);                              break;                          case 1: -                            if (Creature* pMemory = Unit::GetCreature(*me, MemoryGUID)) +                            if (Creature* pMemory = ObjectAccessor::GetCreature(*me, MemoryGUID))                                  if (pMemory->IsAlive())                                      DoCast(pMemory, SPELL_RENEW);                              break; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp index 46817e46512..a8aff70b034 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_black_knight.cpp @@ -140,7 +140,7 @@ public:              for (std::list<uint64>::const_iterator itr = SummonList.begin(); itr != SummonList.end(); ++itr)              { -                if (Creature* temp = Unit::GetCreature(*me, *itr)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, *itr))                      if (temp)                          temp->DisappearAndDie();              } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp index c1d6d2c7c3f..b39734224f6 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/boss_grand_champions.cpp @@ -126,9 +126,9 @@ bool GrandChampionsOutVehicle(Creature* me)      if (!instance)          return false; -    Creature* pGrandChampion1 = Unit::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_1)); -    Creature* pGrandChampion2 = Unit::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_2)); -    Creature* pGrandChampion3 = Unit::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_3)); +    Creature* pGrandChampion1 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_1)); +    Creature* pGrandChampion2 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_2)); +    Creature* pGrandChampion3 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_GRAND_CHAMPION_3));      if (pGrandChampion1 && pGrandChampion2 && pGrandChampion3)      { @@ -829,7 +829,7 @@ public:              if (bShoot && uiMultiShotTimer <= uiDiff)              {                  me->InterruptNonMeleeSpells(true); -                Unit* target = Unit::GetUnit(*me, uiTargetGUID); +                Unit* target = ObjectAccessor::GetUnit(*me, uiTargetGUID);                  if (target && me->IsInRange(target, 5.0f, 30.0f, false))                  { diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp index faeb92e4595..e22ee040599 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheChampion/trial_of_the_champion.cpp @@ -161,7 +161,7 @@ public:                          }                          for (std::list<uint64>::const_iterator itr = TempList.begin(); itr != TempList.end(); ++itr) -                            if (Creature* summon = Unit::GetCreature(*me, *itr)) +                            if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))                                  AggroAllPlayers(summon);                      }else if (uiLesserChampions == 9)                          StartGrandChampionsAttack(); @@ -173,9 +173,9 @@ public:          void StartGrandChampionsAttack()          { -            Creature* pGrandChampion1 = Unit::GetCreature(*me, uiVehicle1GUID); -            Creature* pGrandChampion2 = Unit::GetCreature(*me, uiVehicle2GUID); -            Creature* pGrandChampion3 = Unit::GetCreature(*me, uiVehicle3GUID); +            Creature* pGrandChampion1 = ObjectAccessor::GetCreature(*me, uiVehicle1GUID); +            Creature* pGrandChampion2 = ObjectAccessor::GetCreature(*me, uiVehicle2GUID); +            Creature* pGrandChampion3 = ObjectAccessor::GetCreature(*me, uiVehicle3GUID);              if (pGrandChampion1 && pGrandChampion2 && pGrandChampion3)              { @@ -417,7 +417,7 @@ public:                          if (!Champion1List.empty())                          {                              for (std::list<uint64>::const_iterator itr = Champion1List.begin(); itr != Champion1List.end(); ++itr) -                                if (Creature* summon = Unit::GetCreature(*me, *itr)) +                                if (Creature* summon = ObjectAccessor::GetCreature(*me, *itr))                                      AggroAllPlayers(summon);                              NextStep(0, false);                          } 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 77e4e740333..6a664ec7f8d 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_anubarak_trial.cpp @@ -344,7 +344,7 @@ class boss_anubarak_trial : public CreatureScript                              uint32 at = urand(0, _burrowGUID.size()-1);                              for (uint32 k = 0; k < at; k++)                                  ++i; -                            if (Creature* pBurrow = Unit::GetCreature(*me, *i)) +                            if (Creature* pBurrow = ObjectAccessor::GetCreature(*me, *i))                                  pBurrow->CastSpell(pBurrow, 66340, false);                              events.ScheduleEvent(EVENT_SUMMON_SCARAB, 4*IN_MILLISECONDS, 0, PHASE_SUBMERGED); @@ -377,7 +377,7 @@ class boss_anubarak_trial : public CreatureScript                              uint8 i = startAt;                              do                              { -                                if (Unit* pSphere = Unit::GetCreature(*me, _sphereGUID[i])) +                                if (Unit* pSphere = ObjectAccessor::GetCreature(*me, _sphereGUID[i]))                                  {                                      if (!pSphere->HasAura(SPELL_FROST_SPHERE))                                      { diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp index 71df7d05378..77697cdb3e8 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_faction_champions.cpp @@ -479,7 +479,7 @@ class boss_toc_champion_controller : public CreatureScript                      case 1:                          for (std::list<uint64>::iterator i = _summons.begin(); i != _summons.end(); ++i)                          { -                            if (Creature* temp = Unit::GetCreature(*me, *i)) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, *i))                              {                                  temp->SetReactState(REACT_AGGRESSIVE);                                  temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_IMMUNE_TO_PC); @@ -559,7 +559,7 @@ struct boss_faction_championsAI : public BossAI      void JustReachedHome() override      { -        if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) +        if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))              pChampionController->AI()->SetData(2, FAIL);          me->DespawnOrUnsummon();      } @@ -577,7 +577,7 @@ struct boss_faction_championsAI : public BossAI          std::list<HostileReference*> const& tList = me->getThreatManager().getThreatList();          for (std::list<HostileReference*>::const_iterator itr = tList.begin(); itr != tList.end(); ++itr)          { -            Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +            Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());              if (unit && me->getThreatManager().getThreat(unit))              {                  if (unit->GetTypeId() == TYPEID_PLAYER) @@ -609,7 +609,7 @@ struct boss_faction_championsAI : public BossAI      void JustDied(Unit* /*killer*/) override      {          if (_aiType != AI_PET) -            if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) +            if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))                  pChampionController->AI()->SetData(2, DONE);      } @@ -617,7 +617,7 @@ struct boss_faction_championsAI : public BossAI      {          DoCast(me, SPELL_ANTI_AOE, true);          _EnterCombat(); -        if (Creature* pChampionController = Unit::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) +        if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))              pChampionController->AI()->SetData(2, IN_PROGRESS);      } @@ -634,11 +634,11 @@ struct boss_faction_championsAI : public BossAI              if (TeamInInstance == ALLIANCE)              { -                if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_VARIAN))) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_VARIAN)))                      temp->AI()->Talk(SAY_KILL_PLAYER);              }              else -                if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(NPC_GARROSH))) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GARROSH)))                      temp->AI()->Talk(SAY_KILL_PLAYER); @@ -663,7 +663,7 @@ struct boss_faction_championsAI : public BossAI          Unit* target;          for (iter = tList.begin(); iter!=tList.end(); ++iter)          { -            target = Unit::GetUnit(*me, (*iter)->getUnitGuid()); +            target = ObjectAccessor::GetUnit(*me, (*iter)->getUnitGuid());              if (target && target->getPowerType() == POWER_MANA)                  return target;          } @@ -678,7 +678,7 @@ struct boss_faction_championsAI : public BossAI          Unit* target;          for (iter = tList.begin(); iter != tList.end(); ++iter)          { -            target = Unit::GetUnit(*me, (*iter)->getUnitGuid()); +            target = ObjectAccessor::GetUnit(*me, (*iter)->getUnitGuid());                  if (target && me->GetDistance2d(target) < distance)                      ++count;          } diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp index abeafe156ad..c0f7b2f1856 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_lord_jaraxxus.cpp @@ -553,7 +553,7 @@ class spell_mistress_kiss_area : public SpellScriptLoader          class spell_mistress_kiss_area_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_mistress_kiss_area_SpellScript) +            PrepareSpellScript(spell_mistress_kiss_area_SpellScript);              void FilterTargets(std::list<WorldObject*>& targets)              { diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp index f45a57bd0bc..9e75bef9735 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_northrend_beasts.cpp @@ -508,7 +508,7 @@ struct boss_jormungarAI : public BossAI      void JustDied(Unit* /*killer*/) override      { -        if (Creature* otherWorm = Unit::GetCreature(*me, instance->GetData64(OtherWormEntry))) +        if (Creature* otherWorm = ObjectAccessor::GetCreature(*me, instance->GetData64(OtherWormEntry)))          {              if (!otherWorm->IsAlive())              { diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp index 00eb970b57b..e40cd9d5f41 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/boss_twin_valkyr.cpp @@ -245,7 +245,7 @@ struct boss_twin_baseAI : public BossAI      // Called when sister pointer needed      Creature* GetSister()      { -        return Unit::GetCreature((*me), instance->GetData64(SisterNpcId)); +        return ObjectAccessor::GetCreature((*me), instance->GetData64(SisterNpcId));      }      void EnterCombat(Unit* /*who*/) override @@ -673,8 +673,7 @@ class spell_powering_up : public SpellScriptLoader          class spell_powering_up_SpellScript : public SpellScript          { -            public: -                PrepareSpellScript(spell_powering_up_SpellScript) +            PrepareSpellScript(spell_powering_up_SpellScript);              uint32 spellId;              uint32 poweringUp; diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp index 64afe8d5b2e..7cab84ee4a7 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/instance_trial_of_the_crusader.cpp @@ -95,7 +95,7 @@ class instance_trial_of_the_crusader : public InstanceMapScript                  // make sure Anub'arak isnt missing and floor is destroyed after a crash                  if (GetBossState(BOSS_LICH_KING) == DONE && TrialCounter && GetBossState(BOSS_ANUBARAK) != DONE)                  { -                    Creature* anubArak = Unit::GetCreature(*player, GetData64(NPC_ANUBARAK)); +                    Creature* anubArak = ObjectAccessor::GetCreature(*player, GetData64(NPC_ANUBARAK));                      if (!anubArak)                          anubArak = player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp index 74e4f4caa9d..11548ba4b1c 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.cpp @@ -173,7 +173,7 @@ class npc_announcer_toc10 : public CreatureScript              else if (instance->GetBossState(BOSS_JARAXXUS) != DONE)              {                  // if Jaraxxus is spawned, but the raid wiped -                if (Creature* jaraxxus = Unit::GetCreature(*player, instance->GetData64(NPC_JARAXXUS))) +                if (Creature* jaraxxus = ObjectAccessor::GetCreature(*player, instance->GetData64(NPC_JARAXXUS)))                  {                      jaraxxus->RemoveAurasDueToSpell(SPELL_JARAXXUS_CHAINS);                      jaraxxus->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -207,7 +207,7 @@ class npc_announcer_toc10 : public CreatureScript                  creature->CastSpell(creature, SPELL_CORPSE_TELEPORT, false);                  creature->CastSpell(creature, SPELL_DESTROY_FLOOR_KNOCKUP, false); -                Creature* anubArak = Unit::GetCreature(*creature, instance->GetData64(NPC_ANUBARAK)); +                Creature* anubArak = ObjectAccessor::GetCreature(*creature, instance->GetData64(NPC_ANUBARAK));                  if (!anubArak || !anubArak->IsAlive())                      anubArak = creature->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); @@ -330,7 +330,7 @@ class boss_lich_king_toc : public CreatureScript                              me->CastSpell(me, SPELL_DESTROY_FLOOR_KNOCKUP, false);                              _instance->SetBossState(BOSS_LICH_KING, DONE); -                            Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK)); +                            Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_ANUBARAK));                              if (!temp || !temp->IsAlive())                                  temp = me->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME); @@ -377,7 +377,7 @@ class npc_fizzlebang_toc : public CreatureScript              {                  Talk(SAY_STAGE_1_06, killer);                  _instance->SetData(TYPE_EVENT, 1180); -                if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))                  {                      temp->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);                      temp->SetReactState(REACT_AGGRESSIVE); @@ -484,23 +484,23 @@ class npc_fizzlebang_toc : public CreatureScript                              _updateTimer = 5*IN_MILLISECONDS;                              break;                          case 1142: -                            if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))                                  temp->SetTarget(me->GetGUID()); -                            if (Creature* pTrigger = Unit::GetCreature(*me, _triggerGUID)) +                            if (Creature* pTrigger = ObjectAccessor::GetCreature(*me, _triggerGUID))                                  pTrigger->DespawnOrUnsummon(); -                            if (Creature* pPortal = Unit::GetCreature(*me, _portalGUID)) +                            if (Creature* pPortal = ObjectAccessor::GetCreature(*me, _portalGUID))                                  pPortal->DespawnOrUnsummon();                              _instance->SetData(TYPE_EVENT, 1144);                              _updateTimer = 10*IN_MILLISECONDS;                              break;                          case 1144: -                            if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))                                  temp->AI()->Talk(SAY_STAGE_1_05);                              _instance->SetData(TYPE_EVENT, 1150);                              _updateTimer = 5*IN_MILLISECONDS;                              break;                          case 1150: -                            if (Creature* temp = Unit::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS))) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, _instance->GetData64(NPC_JARAXXUS)))                              {                                  //1-shot Fizzlebang                                  temp->CastSpell(me, 67888, false); @@ -699,7 +699,7 @@ class npc_tirion_toc : public CreatureScript                              _instance->SetData(TYPE_EVENT, 3092);                              break;                          case 3092: -                            if (Creature* pChampionController = Unit::GetCreature((*me), _instance->GetData64(NPC_CHAMPIONS_CONTROLLER))) +                            if (Creature* pChampionController = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_CHAMPIONS_CONTROLLER)))                                  pChampionController->AI()->SetData(1, NOT_STARTED);                              _instance->SetData(TYPE_EVENT, 3095);                              break; @@ -735,12 +735,12 @@ class npc_tirion_toc : public CreatureScript                              break;                          case 4015:                              _instance->DoUseDoorOrButton(_instance->GetData64(GO_MAIN_GATE_DOOR)); -                            if (Creature* temp = Unit::GetCreature((*me), _instance->GetData64(NPC_LIGHTBANE))) +                            if (Creature* temp = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_LIGHTBANE)))                              {                                  temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[8].GetPositionX(), ToCCommonLoc[8].GetPositionY(), ToCCommonLoc[8].GetPositionZ());                                  temp->SetVisible(true);                              } -                            if (Creature* temp = Unit::GetCreature((*me), _instance->GetData64(NPC_DARKBANE))) +                            if (Creature* temp = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_DARKBANE)))                              {                                  temp->GetMotionMaster()->MovePoint(1, ToCCommonLoc[9].GetPositionX(), ToCCommonLoc[9].GetPositionY(), ToCCommonLoc[9].GetPositionZ());                                  temp->SetVisible(true); @@ -779,7 +779,7 @@ class npc_tirion_toc : public CreatureScript                              _instance->SetData(TYPE_EVENT, 6005);                              break;                          case 6005: -                            if (Creature* tirionFordring = Unit::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING))) +                            if (Creature* tirionFordring = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING)))                                  tirionFordring->AI()->Talk(SAY_STAGE_4_06);                              _updateTimer = 20*IN_MILLISECONDS;                              _instance->SetData(TYPE_EVENT, 6010); @@ -787,7 +787,7 @@ class npc_tirion_toc : public CreatureScript                          case 6010:                              if (IsHeroic())                              { -                                if (Creature* tirionFordring = Unit::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING))) +                                if (Creature* tirionFordring = ObjectAccessor::GetCreature((*me), _instance->GetData64(NPC_TIRION_FORDRING)))                                      tirionFordring->AI()->Talk(SAY_STAGE_4_07);                                  _updateTimer = 1*MINUTE*IN_MILLISECONDS;                                  _instance->SetBossState(BOSS_ANUBARAK, SPECIAL); diff --git a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h index 562105c0866..8a62453d7c1 100644 --- a/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h +++ b/src/server/scripts/Northrend/CrusadersColiseum/TrialOfTheCrusader/trial_of_the_crusader.h @@ -40,7 +40,7 @@ enum SpellIds  enum MiscData  { -    DESPAWN_TIME                = 300000, +    DESPAWN_TIME                = 1200000,      DISPLAYID_DESTROYED_FLOOR   = 9060  }; diff --git a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp index 72e4b0b5eb9..63b1359a406 100644 --- a/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp +++ b/src/server/scripts/Northrend/DraktharonKeep/boss_novos.cpp @@ -314,7 +314,7 @@ public:          {              if (InstanceScript* instance = me->GetInstanceScript())                  if (uint64 guid = instance->GetData64(DATA_NOVOS)) -                    if (Creature* novos = Creature::GetCreature(*me, guid)) +                    if (Creature* novos = ObjectAccessor::GetCreature(*me, guid))                          novos->AI()->JustSummoned(summon);              if (summon) diff --git a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp index 0c5514a1c0a..4303026ba64 100644 --- a/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp @@ -1100,7 +1100,7 @@ class npc_jaina_or_sylvanas_escape_hor : public CreatureScript                                  Talk(SAY_JAINA_ESCAPE_9);                              if (Transport* gunship = ObjectAccessor::GetTransport(*me, _instance->GetData64(DATA_GUNSHIP)))                                  gunship->EnableMovement(true); -                            _instance->SetBossState(DATA_THE_LICH_KING_ESCAPE, DONE);  +                            _instance->SetBossState(DATA_THE_LICH_KING_ESCAPE, DONE);                              break;                          case EVENT_ESCAPE_17:                              if (_instance->GetData(DATA_TEAM_IN_INSTANCE) == ALLIANCE) @@ -1139,7 +1139,7 @@ class npc_the_lich_king_escape_hor : public CreatureScript          struct npc_the_lich_king_escape_horAI : public ScriptedAI          { -            npc_the_lich_king_escape_horAI(Creature* creature) : ScriptedAI(creature)  +            npc_the_lich_king_escape_horAI(Creature* creature) : ScriptedAI(creature)              {                  _instance = me->GetInstanceScript();                  _instance->SetBossState(DATA_THE_LICH_KING_ESCAPE, NOT_STARTED); @@ -1248,12 +1248,12 @@ class npc_the_lich_king_escape_hor : public CreatureScript                          _events.ScheduleEvent(EVENT_ESCAPE_SUMMON_WITCH_DOCTOR, 66000);                          _events.ScheduleEvent(EVENT_ESCAPE_SUMMON_LUMBERING_ABOMINATION, 14000);                          Talk(SAY_LK_ESCAPE_ICEWALL_SUMMONED_4); -                        break;  +                        break;                      default:                          break;                  }              } -             +              void EnterEvadeMode() override              {                  if (_despawn) @@ -2021,12 +2021,12 @@ class at_hor_waves_restarter : public AreaTriggerScript              {                  _instance->ProcessEvent(0, EVENT_SPAWN_WAVES); -                if (Creature* falric = player->GetCreature(*player, _instance->GetData64(DATA_FALRIC))) +                if (Creature* falric = ObjectAccessor::GetCreature(*player, _instance->GetData64(DATA_FALRIC)))                  {                      falric->CastSpell(falric, SPELL_BOSS_SPAWN_AURA, true);                      falric->SetVisible(true);                  } -                if (Creature* marwyn = player->GetCreature(*player, _instance->GetData64(DATA_MARWYN))) +                if (Creature* marwyn = ObjectAccessor::GetCreature(*player, _instance->GetData64(DATA_MARWYN)))                  {                      marwyn->CastSpell(marwyn, SPELL_BOSS_SPAWN_AURA, true);                      marwyn->SetVisible(true); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp index 9cbd296d69e..783f9e245c8 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_forgemaster_garfrost.cpp @@ -113,7 +113,7 @@ class boss_garfrost : public CreatureScript                  Talk(SAY_DEATH);                  me->RemoveAllGameObjects(); -                if (Creature* tyrannus = me->GetCreature(*me, instance->GetData64(DATA_TYRANNUS))) +                if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_TYRANNUS)))                      tyrannus->AI()->Talk(SAY_TYRANNUS_DEATH);              } diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp index 26ab1f61ae8..1c126bc54fd 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_krickandick.cpp @@ -362,7 +362,7 @@ class boss_krick : public CreatureScript                      {                          case EVENT_OUTRO_1:                          { -                            if (Creature* temp = me->GetCreature(*me, _instanceScript->GetData64(DATA_JAINA_SYLVANAS_1))) +                            if (Creature* temp = ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_JAINA_SYLVANAS_1)))                                  temp->DespawnOrUnsummon();                              Creature* jainaOrSylvanas = NULL; @@ -410,7 +410,7 @@ class boss_krick : public CreatureScript                              _events.ScheduleEvent(EVENT_OUTRO_6, 1000);                              break;                          case EVENT_OUTRO_6: -                            if (Creature* tyrannus = me->GetCreature(*me, _instanceScript->GetData64(DATA_TYRANNUS_EVENT))) +                            if (Creature* tyrannus = ObjectAccessor::GetCreature(*me, _instanceScript->GetData64(DATA_TYRANNUS_EVENT)))                              {                                  tyrannus->SetSpeed(MOVE_FLIGHT, 3.5f, true);                                  tyrannus->GetMotionMaster()->MovePoint(1, outroPos[4]); diff --git a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp index a501bf4ea55..c4f46136bd9 100644 --- a/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp +++ b/src/server/scripts/Northrend/FrozenHalls/PitOfSaron/boss_scourgelord_tyrannus.cpp @@ -25,12 +25,12 @@  enum Yells  { -    //Gorkun +    // Gorkun      SAY_GORKUN_INTRO_2              = 0,      SAY_GORKUN_OUTRO_1              = 1,      SAY_GORKUN_OUTRO_2              = 2, -    //Tyrannus +    // Tyrannus      SAY_AMBUSH_1                    = 3,      SAY_AMBUSH_2                    = 4,      SAY_GAUNTLET_START              = 5, @@ -44,12 +44,12 @@ enum Yells      SAY_DARK_MIGHT_1                = 13,      SAY_DARK_MIGHT_2                = 14, -    //Jaina +    // Jaina      SAY_JAYNA_OUTRO_3               = 3,      SAY_JAYNA_OUTRO_4               = 4,      SAY_JAYNA_OUTRO_5               = 5, -    //Sylvanas +    // Sylvanas      SAY_SYLVANAS_OUTRO_3            = 3,      SAY_SYLVANAS_OUTRO_4            = 4  }; @@ -121,7 +121,7 @@ static const Position rimefangPos[10] =      {1012.601f, 142.4965f, 665.0453f, 0.000000f},  }; -static const Position miscPos = {1018.376f, 167.2495f, 628.2811f, 0.000000f};   //tyrannus combat start position +static Position const miscPos = { 1018.376f, 167.2495f, 628.2811f, 0.000000f }; // tyrannus combat start position  class boss_tyrannus : public CreatureScript  { @@ -235,7 +235,7 @@ class boss_tyrannus : public CreatureScript                              me->GetMotionMaster()->MovePoint(0, miscPos);                              break;                          case EVENT_COMBAT_START: -                            if (Creature* rimefang = me->GetCreature(*me, instance->GetData64(DATA_RIMEFANG))) +                            if (Creature* rimefang = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_RIMEFANG)))                                  rimefang->AI()->DoAction(ACTION_START_RIMEFANG);    //set rimefang also infight                              events.SetPhase(PHASE_COMBAT);                              me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -357,7 +357,7 @@ class boss_rimefang : public CreatureScript                              _events.ScheduleEvent(EVENT_ICY_BLAST, 15000, 0, PHASE_COMBAT);                              break;                          case EVENT_HOARFROST: -                            if (Unit* target = me->GetUnit(*me, _hoarfrostTargetGUID)) +                            if (Unit* target = ObjectAccessor::GetUnit(*me, _hoarfrostTargetGUID))                              {                                  DoCast(target, SPELL_HOARFROST);                                  _hoarfrostTargetGUID = 0; @@ -490,6 +490,43 @@ class spell_tyrannus_mark_of_rimefang : public SpellScriptLoader          }  }; +// 69232 - Icy Blast +class spell_tyrannus_rimefang_icy_blast : public SpellScriptLoader +{ +    public: +        spell_tyrannus_rimefang_icy_blast() : SpellScriptLoader("spell_tyrannus_rimefang_icy_blast") { } + +        class spell_tyrannus_rimefang_icy_blast_SpellScript : public SpellScript +        { +            PrepareSpellScript(spell_tyrannus_rimefang_icy_blast_SpellScript); + +            bool Validate(SpellInfo const* /*spellInfo*/) override +            { +                if (!sSpellMgr->GetSpellInfo(SPELL_ICY_BLAST_AURA)) +                    return false; +                return true; +            } + +            void HandleTriggerMissile(SpellEffIndex effIndex) +            { +                PreventHitDefaultEffect(effIndex); +                if (Position const* pos = GetHitDest()) +                    if (TempSummon* summon = GetCaster()->SummonCreature(NPC_ICY_BLAST, *pos, TEMPSUMMON_TIMED_DESPAWN, 60000)) +                        summon->CastSpell(summon, SPELL_ICY_BLAST_AURA, true); +            } + +            void Register() override +            { +                OnEffectHit += SpellEffectFn(spell_tyrannus_rimefang_icy_blast_SpellScript::HandleTriggerMissile, EFFECT_1, SPELL_EFFECT_TRIGGER_MISSILE); +            } +        }; + +        SpellScript* GetSpellScript() const override +        { +            return new spell_tyrannus_rimefang_icy_blast_SpellScript(); +        } +}; +  class at_tyrannus_event_starter : public AreaTriggerScript  {      public: @@ -518,5 +555,6 @@ void AddSC_boss_tyrannus()      new boss_rimefang();      new spell_tyrannus_overlord_brand();      new spell_tyrannus_mark_of_rimefang(); +    new spell_tyrannus_rimefang_icy_blast();      new at_tyrannus_event_starter();  } diff --git a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp index f0affa66d0f..b02a319abdc 100644 --- a/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp +++ b/src/server/scripts/Northrend/Gundrak/boss_drakkari_colossus.cpp @@ -278,7 +278,7 @@ class boss_drakkari_elemental : public CreatureScript                  if (killer == me)                      return; -                if (Creature* colossus = Unit::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) +                if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS)))                      killer->Kill(colossus);              } @@ -314,7 +314,7 @@ class boss_drakkari_elemental : public CreatureScript                  {                      case ACTION_RETURN_TO_COLOSSUS:                          DoCast(SPELL_SURGE_VISUAL); -                        if (Creature* colossus = Unit::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) +                        if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS)))                              // what if the elemental is more than 80 yards from drakkari colossus ?                              DoCast(colossus, SPELL_MERGE, true);                          break; @@ -325,7 +325,7 @@ class boss_drakkari_elemental : public CreatureScript              {                  if (HealthBelowPct(50) && instance)                  { -                    if (Creature* colossus = Unit::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) +                    if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS)))                      {                          if (colossus->AI()->GetData(DATA_COLOSSUS_PHASE) ==  COLOSSUS_PHASE_FIRST_ELEMENTAL_SUMMON)                          { @@ -423,7 +423,7 @@ public:              if (id == 1)              { -                if (Creature* colossus = Unit::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS))) +                if (Creature* colossus = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DRAKKARI_COLOSSUS)))                  {                      colossus->AI()->DoAction(ACTION_UNFREEZE_COLOSSUS);                      if (!colossus->AI()->GetData(DATA_INTRO_DONE)) diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp index 9847d7191c6..4e45d72cadf 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_festergut.cpp @@ -345,7 +345,7 @@ class npc_stinky_icc : public CreatureScript              void JustDied(Unit* /*killer*/) override              { -                if (Creature* festergut = me->GetCreature(*me, _instance->GetData64(DATA_FESTERGUT))) +                if (Creature* festergut = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_FESTERGUT)))                      if (festergut->IsAlive())                          festergut->AI()->Talk(SAY_STINKY_DEAD);              } diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp index c408c486b30..3bf8fd8d305 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_professor_putricide.cpp @@ -372,7 +372,7 @@ class boss_professor_putricide : public CreatureScript                          instance->SetBossState(DATA_FESTERGUT, IN_PROGRESS); // needed here for delayed gate close                          me->SetSpeed(MOVE_RUN, _baseSpeed, true);                          DoAction(ACTION_FESTERGUT_GAS); -                        if (Creature* festergut = Unit::GetCreature(*me, instance->GetData64(DATA_FESTERGUT))) +                        if (Creature* festergut = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FESTERGUT)))                              festergut->CastSpell(festergut, SPELL_GASEOUS_BLIGHT_LARGE, false, NULL, NULL, festergut->GetGUID());                          break;                      case POINT_ROTFACE: @@ -442,7 +442,7 @@ class boss_professor_putricide : public CreatureScript                          _oozeFloodStage = 0;                          DoZoneInCombat(me);                          // init random sequence of floods -                        if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE))) +                        if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))                          {                              std::list<Creature*> list;                              GetCreatureListWithEntryInGrid(list, rotface, NPC_PUDDLE_STALKER, 50.0f); @@ -469,7 +469,7 @@ class boss_professor_putricide : public CreatureScript                      }                      case ACTION_ROTFACE_OOZE:                          Talk(SAY_ROTFACE_OOZE_FLOOD); -                        if (Creature* dummy = Unit::GetCreature(*me, _oozeFloodDummyGUIDs[_oozeFloodStage])) +                        if (Creature* dummy = ObjectAccessor::GetCreature(*me, _oozeFloodDummyGUIDs[_oozeFloodStage]))                              dummy->CastSpell(dummy, oozeFloodSpells[_oozeFloodStage], true, NULL, NULL, me->GetGUID()); // cast from self for LoS (with prof's GUID for logs)                          if (++_oozeFloodStage == 4)                              _oozeFloodStage = 0; diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp index 8766781de7c..c1ee616218c 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_rotface.cpp @@ -126,7 +126,7 @@ class boss_rotface : public CreatureScript                  me->setActive(true);                  Talk(SAY_AGGRO); -                if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) +                if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))                      professor->AI()->DoAction(ACTION_ROTFACE_COMBAT);                  DoZoneInCombat(); @@ -138,7 +138,7 @@ class boss_rotface : public CreatureScript                  instance->DoRemoveAurasDueToSpellOnPlayers(MUTATED_INFECTION);                  _JustDied();                  Talk(SAY_DEATH); -                if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) +                if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))                      professor->AI()->DoAction(ACTION_ROTFACE_DEATH);              } @@ -158,7 +158,7 @@ class boss_rotface : public CreatureScript              void EnterEvadeMode() override              {                  ScriptedAI::EnterEvadeMode(); -                if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) +                if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))                      professor->AI()->EnterEvadeMode();              } @@ -176,7 +176,7 @@ class boss_rotface : public CreatureScript              void JustSummoned(Creature* summon) override              {                  if (summon->GetEntry() == NPC_VILE_GAS_STALKER) -                    if (Creature* professor = Unit::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE))) +                    if (Creature* professor = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PROFESSOR_PUTRICIDE)))                          professor->CastSpell(summon, SPELL_VILE_GAS_H, true);              } @@ -308,13 +308,13 @@ class npc_big_ooze : public CreatureScript                  DoCast(me, SPELL_GREEN_ABOMINATION_HITTIN__YA_PROC, true);                  events.ScheduleEvent(EVENT_STICKY_OOZE, 5000);                  // register in Rotface's summons - not summoned with Rotface as owner -                if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE))) +                if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))                      rotface->AI()->JustSummoned(me);              }              void JustDied(Unit* /*killer*/) override              { -                if (Creature* rotface = Unit::GetCreature(*me, instance->GetData64(DATA_ROTFACE))) +                if (Creature* rotface = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ROTFACE)))                      rotface->AI()->SummonedCreatureDespawn(me);                  me->DespawnOrUnsummon();              } @@ -395,7 +395,7 @@ class npc_precious_icc : public CreatureScript              void JustDied(Unit* /*killer*/) override              {                  _summons.DespawnAll(); -                if (Creature* rotface = Unit::GetCreature(*me, _instance->GetData64(DATA_ROTFACE))) +                if (Creature* rotface = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_ROTFACE)))                      if (rotface->IsAlive())                          rotface->AI()->Talk(SAY_PRECIOUS_DIES);              } @@ -657,7 +657,7 @@ class spell_rotface_large_ooze_buff_combine : public SpellScriptLoader                          GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_BUFF_COMBINE);                          GetCaster()->RemoveAurasDueToSpell(SPELL_LARGE_OOZE_COMBINE);                          if (InstanceScript* instance = GetCaster()->GetInstanceScript()) -                            if (Creature* rotface = Unit::GetCreature(*GetCaster(), instance->GetData64(DATA_ROTFACE))) +                            if (Creature* rotface = ObjectAccessor::GetCreature(*GetCaster(), instance->GetData64(DATA_ROTFACE)))                                  if (rotface->IsAlive())                                  {                                      rotface->AI()->Talk(EMOTE_UNSTABLE_EXPLOSION); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp index 0543b0274b5..77486c37498 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_four_horsemen.cpp @@ -138,10 +138,10 @@ public:          bool DoEncounteraction(Unit* who, bool attack, bool reset, bool checkAllDead)          { -            Creature* Thane = Unit::GetCreature(*me, instance->GetData64(DATA_THANE)); -            Creature* Lady = Unit::GetCreature(*me, instance->GetData64(DATA_LADY)); -            Creature* Baron = Unit::GetCreature(*me, instance->GetData64(DATA_BARON)); -            Creature* Sir = Unit::GetCreature(*me, instance->GetData64(DATA_SIR)); +            Creature* Thane = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THANE)); +            Creature* Lady = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_LADY)); +            Creature* Baron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BARON)); +            Creature* Sir = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SIR));              if (Thane && Lady && Baron && Sir)              { @@ -226,7 +226,7 @@ public:                  movementCompleted = true;                  me->SetReactState(REACT_AGGRESSIVE); -                Unit* eventStarter = Unit::GetUnit(*me, uiEventStarterGUID); +                Unit* eventStarter = ObjectAccessor::GetUnit(*me, uiEventStarterGUID);                  if (eventStarter && me->IsValidAttackTarget(eventStarter))                      AttackStart(eventStarter); diff --git a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp index 29e435e2127..d973ce867f2 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_gothik.cpp @@ -257,25 +257,25 @@ class boss_gothik : public CreatureScript                      {                          case NPC_LIVE_TRAINEE:                          { -                            if (Creature* liveTrigger = Unit::GetCreature(*me, LiveTriggerGUID[0])) +                            if (Creature* liveTrigger = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[0]))                                  DoSummon(NPC_LIVE_TRAINEE, liveTrigger, 1); -                            if (Creature* liveTrigger1 = Unit::GetCreature(*me, LiveTriggerGUID[1])) +                            if (Creature* liveTrigger1 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[1]))                                  DoSummon(NPC_LIVE_TRAINEE, liveTrigger1, 1); -                            if (Creature* liveTrigger2 = Unit::GetCreature(*me, LiveTriggerGUID[2])) +                            if (Creature* liveTrigger2 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[2]))                                  DoSummon(NPC_LIVE_TRAINEE, liveTrigger2, 1);                              break;                          }                          case NPC_LIVE_KNIGHT:                          { -                            if (Creature* liveTrigger3 = Unit::GetCreature(*me, LiveTriggerGUID[3])) +                            if (Creature* liveTrigger3 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[3]))                                  DoSummon(NPC_LIVE_KNIGHT, liveTrigger3, 1); -                            if (Creature* liveTrigger5 = Unit::GetCreature(*me, LiveTriggerGUID[5])) +                            if (Creature* liveTrigger5 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[5]))                                  DoSummon(NPC_LIVE_KNIGHT, liveTrigger5, 1);                              break;                          }                          case NPC_LIVE_RIDER:                          { -                            if (Creature* liveTrigger4 = Unit::GetCreature(*me, LiveTriggerGUID[4])) +                            if (Creature* liveTrigger4 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[4]))                                  DoSummon(NPC_LIVE_RIDER, liveTrigger4, 1);                              break;                          } @@ -287,21 +287,21 @@ class boss_gothik : public CreatureScript                      {                          case NPC_LIVE_TRAINEE:                          { -                            if (Creature* liveTrigger = Unit::GetCreature(*me, LiveTriggerGUID[4])) +                            if (Creature* liveTrigger = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[4]))                                  DoSummon(NPC_LIVE_TRAINEE, liveTrigger, 1); -                            if (Creature* liveTrigger2 = Unit::GetCreature(*me, LiveTriggerGUID[4])) +                            if (Creature* liveTrigger2 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[4]))                                  DoSummon(NPC_LIVE_TRAINEE, liveTrigger2, 1);                              break;                          }                          case NPC_LIVE_KNIGHT:                          { -                            if (Creature* liveTrigger5 = Unit::GetCreature(*me, LiveTriggerGUID[4])) +                            if (Creature* liveTrigger5 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[4]))                                  DoSummon(NPC_LIVE_KNIGHT, liveTrigger5, 1);                              break;                          }                          case NPC_LIVE_RIDER:                          { -                            if (Creature* liveTrigger4 = Unit::GetCreature(*me, LiveTriggerGUID[4])) +                            if (Creature* liveTrigger4 = ObjectAccessor::GetCreature(*me, LiveTriggerGUID[4]))                                  DoSummon(NPC_LIVE_RIDER, liveTrigger4, 1);                              break;                          } @@ -359,7 +359,7 @@ class boss_gothik : public CreatureScript                  if (spellId && me->IsInCombat())                  {                      me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST); -                    if (Creature* pRandomDeadTrigger = Unit::GetCreature(*me, DeadTriggerGUID[rand() % POS_DEAD])) +                    if (Creature* pRandomDeadTrigger = ObjectAccessor::GetCreature(*me, DeadTriggerGUID[rand() % POS_DEAD]))                          me->CastSpell(pRandomDeadTrigger, spellId, true);                  }              } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp index 8b3ac64fb89..c5c70cf3957 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_kelthuzad.cpp @@ -368,38 +368,33 @@ public:              if (Phase == 1)              { -                while (uint32 eventId = events.GetEvent()) +                while (uint32 eventId = events.ExecuteEvent())                  {                      switch (eventId)                      {                          case EVENT_WASTE:                              DoSummon(NPC_WASTE, Pos[RAND(0, 3, 6, 9)]); -                            events.RepeatEvent(urand(2000, 5000)); +                            events.Repeat(2000, 5000);                              break;                          case EVENT_ABOMIN:                              if (nAbomination < 8)                              {                                  DoSummon(NPC_ABOMINATION, Pos[RAND(1, 4, 7, 10)]);                                  nAbomination++; -                                events.RepeatEvent(20000); +                                events.Repeat(20000);                              } -                            else -                                events.PopEvent();                              break;                          case EVENT_WEAVER:                              if (nWeaver < 8)                              {                                  DoSummon(NPC_WEAVER, Pos[RAND(0, 3, 6, 9)]);                                  nWeaver++; -                                events.RepeatEvent(25000); +                                events.Repeat(25000);                              } -                            else -                                events.PopEvent();                              break;                          case EVENT_TRIGGER:                              if (GameObject* trigger = ObjectAccessor::GetGameObject(*me, instance->GetData64(DATA_KELTHUZAD_TRIGGER)))                                  trigger->SetPhaseMask(2, true); -                            events.PopEvent();                              break;                          case EVENT_PHASE:                              events.Reset(); @@ -419,7 +414,6 @@ public:                              Phase = 2;                              break;                          default: -                            events.PopEvent();                              break;                      }                  } @@ -461,17 +455,17 @@ public:                  if (me->HasUnitState(UNIT_STATE_CASTING))                      return; -                if (uint32 eventId = events.GetEvent()) +                if (uint32 eventId = events.ExecuteEvent())                  {                      switch (eventId)                      {                          case EVENT_BOLT:                              DoCastVictim(SPELL_FROST_BOLT); -                            events.RepeatEvent(urand(5000, 10000)); +                            events.Repeat(5000, 10000);                              break;                          case EVENT_NOVA:                              DoCastAOE(SPELL_FROST_BOLT_AOE); -                            events.RepeatEvent(urand(15000, 30000)); +                            events.Repeat(15000, 30000);                              break;                          case EVENT_CHAIN:                          { @@ -490,7 +484,7 @@ public:                              }                              if (!chained.empty())                                  Talk(SAY_CHAIN); -                            events.RepeatEvent(urand(100000, 180000)); +                            events.Repeat(100000, 180000);                              break;                          }                          case EVENT_CHAINED_SPELL: @@ -565,10 +559,8 @@ public:                                  ++itr;                              } -                            if (chained.empty()) -                                events.PopEvent(); -                            else -                                events.RepeatEvent(5000); +                            if (!chained.empty()) +                                events.Repeat(5000);                              break;                          } @@ -596,23 +588,22 @@ public:                                  Talk(SAY_SPECIAL);                              } -                            events.RepeatEvent(urand(20000, 50000)); +                            events.Repeat(20000, 50000);                              break;                          }                          case EVENT_FISSURE:                              if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                                  DoCast(target, SPELL_SHADOW_FISURE); -                            events.RepeatEvent(urand(10000, 45000)); +                            events.Repeat(10000, 45000);                              break;                          case EVENT_BLAST:                              if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, RAID_MODE(1, 0), 0, true))                                  DoCast(target, SPELL_FROST_BLAST);                              if (rand()%2)                                  Talk(SAY_FROST_BLAST); -                            events.RepeatEvent(urand(30000, 90000)); +                            events.Repeat(30000, 90000);                              break;                          default: -                            events.PopEvent();                              break;                      }                  } diff --git a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp index ce605987890..52723b591a2 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_maexxna.cpp @@ -169,14 +169,14 @@ public:          {              victimGUID = guid;              if (me->m_spells[0] && victimGUID) -                if (Unit* victim = Unit::GetUnit(*me, victimGUID)) +                if (Unit* victim = ObjectAccessor::GetUnit(*me, victimGUID))                      victim->CastSpell(victim, me->m_spells[0], true, NULL, NULL, me->GetGUID());          }          void JustDied(Unit* /*killer*/) override          {              if (me->m_spells[0] && victimGUID) -                if (Unit* victim = Unit::GetUnit(*me, victimGUID)) +                if (Unit* victim = ObjectAccessor::GetUnit(*me, victimGUID))                      victim->RemoveAurasDueToSpell(me->m_spells[0], me->GetGUID());          }      }; diff --git a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp index 528b2fec348..406ca3963a4 100644 --- a/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp +++ b/src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp @@ -123,11 +123,11 @@ public:              // Moreover, the adds may not yet be spawn. So just track down the status if mob is spawn              // and each mob will send its status at reset (meaning that it is alive)              checkFeugenAlive = false; -            if (Creature* pFeugen = me->GetCreature(*me, instance->GetData64(DATA_FEUGEN))) +            if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FEUGEN)))                  checkFeugenAlive = pFeugen->IsAlive();              checkStalaggAlive = false; -            if (Creature* pStalagg = me->GetCreature(*me, instance->GetData64(DATA_STALAGG))) +            if (Creature* pStalagg = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STALAGG)))                  checkStalaggAlive = pStalagg->IsAlive();              if (!checkFeugenAlive && !checkStalaggAlive) @@ -230,12 +230,12 @@ public:                  {                      if (!checkStalaggAlive)                      { -                        if (Creature* pStalagg = me->GetCreature(*me, instance->GetData64(DATA_STALAGG))) +                        if (Creature* pStalagg = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_STALAGG)))                              pStalagg->Respawn();                      }                      else                      { -                        if (Creature* pFeugen = me->GetCreature(*me, instance->GetData64(DATA_FEUGEN))) +                        if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FEUGEN)))                              pFeugen->Respawn();                      }                  } @@ -300,7 +300,7 @@ public:          void Reset() override          { -            if (Creature* pThaddius = me->GetCreature(*me, instance->GetData64(DATA_THADDIUS))) +            if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS)))                  if (pThaddius->AI())                      pThaddius->AI()->DoAction(ACTION_STALAGG_RESET);              powerSurgeTimer = urand(20000, 25000); @@ -322,7 +322,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              Talk(SAY_STAL_DEATH); -            if (Creature* pThaddius = me->GetCreature(*me, instance->GetData64(DATA_THADDIUS))) +            if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS)))                  if (pThaddius->AI())                      pThaddius->AI()->DoAction(ACTION_STALAGG_DIED);          } @@ -334,7 +334,7 @@ public:              if (magneticPullTimer <= uiDiff)              { -                if (Creature* pFeugen = me->GetCreature(*me, instance->GetData64(DATA_FEUGEN))) +                if (Creature* pFeugen = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_FEUGEN)))                  {                      Unit* pStalaggVictim = me->GetVictim();                      Unit* pFeugenVictim = pFeugen->GetVictim(); @@ -391,7 +391,7 @@ public:          void Reset() override          { -            if (Creature* pThaddius = me->GetCreature(*me, instance->GetData64(DATA_THADDIUS))) +            if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS)))                  if (pThaddius->AI())                      pThaddius->AI()->DoAction(ACTION_FEUGEN_RESET);              staticFieldTimer = 5000; @@ -412,7 +412,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              Talk(SAY_FEUG_DEATH); -            if (Creature* pThaddius = me->GetCreature(*me, instance->GetData64(DATA_THADDIUS))) +            if (Creature* pThaddius = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_THADDIUS)))                  if (pThaddius->AI())                      pThaddius->AI()->DoAction(ACTION_FEUGEN_DIED);          } diff --git a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp index 2570a44b0a0..5291e4baed3 100644 --- a/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp +++ b/src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp @@ -664,7 +664,7 @@ public:                  Talk(SAY_BUFF_SPARK);              }              else if (spell->Id == SPELL_MALYGOS_BERSERK) -                sCreatureTextMgr->SendChat(me, EMOTE_HIT_BERSERKER_TIMER, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP); +                TalkToMap(EMOTE_HIT_BERSERKER_TIMER);          }          void MoveInLineOfSight(Unit* who) override @@ -1113,8 +1113,7 @@ public:          npc_power_sparkAI(Creature* creature) : ScriptedAI(creature)          {              _instance = creature->GetInstanceScript(); -            // Talk range was not enough for this encounter -            sCreatureTextMgr->SendChat(me, EMOTE_POWER_SPARK_SUMMONED, NULL, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP); +            TalkToMap(EMOTE_POWER_SPARK_SUMMONED);              MoveToMalygos();          } @@ -1810,7 +1809,7 @@ public:      class spell_malygos_vortex_dummy_SpellScript : public SpellScript      { -        PrepareSpellScript(spell_malygos_vortex_dummy_SpellScript) +        PrepareSpellScript(spell_malygos_vortex_dummy_SpellScript);          bool Load() override          { @@ -2282,7 +2281,7 @@ class spell_malygos_surge_of_power_warning_selector_25 : public SpellScriptLoade          class spell_malygos_surge_of_power_warning_selector_25_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_malygos_surge_of_power_warning_selector_25_SpellScript) +            PrepareSpellScript(spell_malygos_surge_of_power_warning_selector_25_SpellScript);              bool Load() override              { @@ -2348,7 +2347,7 @@ class spell_malygos_surge_of_power_25 : public SpellScriptLoader          class spell_malygos_surge_of_power_25_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_malygos_surge_of_power_25_SpellScript) +            PrepareSpellScript(spell_malygos_surge_of_power_25_SpellScript);              bool Load() override              { diff --git a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp index 0870614ba78..585da8e28d3 100644 --- a/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp +++ b/src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp @@ -299,7 +299,7 @@ class spell_varos_energize_core_area_enemy : public SpellScriptLoader          class spell_varos_energize_core_area_enemySpellScript : public SpellScript          { -            PrepareSpellScript(spell_varos_energize_core_area_enemySpellScript) +            PrepareSpellScript(spell_varos_energize_core_area_enemySpellScript);              void FilterTargets(std::list<WorldObject*>& targets)              { @@ -343,7 +343,7 @@ class spell_varos_energize_core_area_entry : public SpellScriptLoader          class spell_varos_energize_core_area_entrySpellScript : public SpellScript          { -            PrepareSpellScript(spell_varos_energize_core_area_entrySpellScript) +            PrepareSpellScript(spell_varos_energize_core_area_entrySpellScript);              void FilterTargets(std::list<WorldObject*>& targets)              { diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp index 727060578c8..24d145f097f 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_bjarngrim.cpp @@ -164,7 +164,7 @@ public:              for (uint8 i = 0; i < 2; ++i)              { -                if (Creature* pStormforgedLieutenant = (Unit::GetCreature((*me), m_auiStormforgedLieutenantGUID[i]))) +                if (Creature* pStormforgedLieutenant = (ObjectAccessor::GetCreature((*me), m_auiStormforgedLieutenantGUID[i])))                  {                      if (!pStormforgedLieutenant->IsAlive())                          pStormforgedLieutenant->Respawn(); diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp index 880045b96ef..d0b8f75e711 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfLightning/boss_volkhan.cpp @@ -164,7 +164,7 @@ public:              for (std::list<uint64>::const_iterator itr = m_lGolemGUIDList.begin(); itr != m_lGolemGUIDList.end(); ++itr)              { -                if (Creature* temp = Unit::GetCreature(*me, *itr)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, *itr))                  {                      if (temp->IsAlive())                          temp->DespawnOrUnsummon(); @@ -181,7 +181,7 @@ public:              for (std::list<uint64>::const_iterator itr = m_lGolemGUIDList.begin(); itr != m_lGolemGUIDList.end(); ++itr)              { -                if (Creature* temp = Unit::GetCreature(*me, *itr)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, *itr))                  {                      // Only shatter brittle golems                      if (temp->IsAlive() && temp->GetEntry() == NPC_BRITTLE_GOLEM) diff --git a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp index c81cd0b0b80..07cdfa3353c 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/boss_krystallus.cpp @@ -15,14 +15,6 @@   * with this program. If not, see <http://www.gnu.org/licenses/>.   */ -/* Script Data Start -SDName: Boss krystallus -SDAuthor: LordVanMartin -SD%Complete: -SDComment: -SDCategory: -Script Data End */ -  #include "ScriptMgr.h"  #include "ScriptedCreature.h"  #include "SpellScript.h" @@ -30,17 +22,13 @@ Script Data End */  enum Spells  { -    SPELL_BOULDER_TOSS                             = 50843, -    H_SPELL_BOULDER_TOSS                           = 59742, -    SPELL_GROUND_SPIKE                             = 59750, -    SPELL_GROUND_SLAM                              = 50827, -    SPELL_SHATTER                                  = 50810, -    H_SPELL_SHATTER                                = 61546, -    SPELL_SHATTER_EFFECT                           = 50811, -    H_SPELL_SHATTER_EFFECT                         = 61547, -    SPELL_STONED                                   = 50812, -    SPELL_STOMP                                    = 48131, -    H_SPELL_STOMP                                  = 59744 +    SPELL_BOULDER_TOSS                          = 50843, +    SPELL_GROUND_SPIKE                          = 59750, +    SPELL_GROUND_SLAM                           = 50827, +    SPELL_SHATTER                               = 50810, +    SPELL_SHATTER_EFFECT                        = 50811, +    SPELL_STONED                                = 50812, +    SPELL_STOMP                                 = 48131  };  enum Yells @@ -51,133 +39,103 @@ enum Yells      SAY_SHATTER                                 = 3  }; -class boss_krystallus : public CreatureScript +enum Events  { -public: -    boss_krystallus() : CreatureScript("boss_krystallus") { } - -    struct boss_krystallusAI : public ScriptedAI -    { -        boss_krystallusAI(Creature* creature) : ScriptedAI(creature) -        { -            instance = creature->GetInstanceScript(); -        } - -        uint32 uiBoulderTossTimer; -        uint32 uiGroundSpikeTimer; -        uint32 uiGroundSlamTimer; -        uint32 uiShatterTimer; -        uint32 uiStompTimer; - -        bool bIsSlam; - -        InstanceScript* instance; - -        void Reset() override -        { -            bIsSlam = false; - -            uiBoulderTossTimer = urand(3000, 9000); -            uiGroundSpikeTimer = urand(9000, 14000); -            uiGroundSlamTimer = urand(15000, 18000); -            uiStompTimer = urand(20000, 29000); -            uiShatterTimer = 0; - -            instance->SetBossState(DATA_KRYSTALLUS, NOT_STARTED); -        } -        void EnterCombat(Unit* /*who*/) override -        { -            Talk(SAY_AGGRO); +    EVENT_BOULDER_TOSS                          = 1, +    EVENT_GROUND_SPIKE, +    EVENT_GROUND_SLAM, +    EVENT_STOMP, +    EVENT_SHATTER +}; -            instance->SetBossState(DATA_KRYSTALLUS, IN_PROGRESS); -        } +class boss_krystallus : public CreatureScript +{ +    public: +        boss_krystallus() : CreatureScript("boss_krystallus") { } -        void UpdateAI(uint32 diff) override +        struct boss_krystallusAI : public BossAI          { -            //Return since we have no target -            if (!UpdateVictim()) -                return; +            boss_krystallusAI(Creature* creature) : BossAI(creature, DATA_KRYSTALLUS) { } -            if (uiBoulderTossTimer <= diff) +            void Reset() override              { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_BOULDER_TOSS); -                uiBoulderTossTimer = urand(9000, 15000); -            } else uiBoulderTossTimer -= diff; - -            if (uiGroundSpikeTimer <= diff) -            { -                if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) -                    DoCast(target, SPELL_GROUND_SPIKE); -                uiGroundSpikeTimer = urand(12000, 17000); -            } else uiGroundSpikeTimer -= diff; - -            if (uiStompTimer <= diff) -            { -                DoCast(me, SPELL_STOMP); -                uiStompTimer = urand(20000, 29000); -            } else uiStompTimer -= diff; - -            if (uiGroundSlamTimer <= diff) -            { -                DoCast(me, SPELL_GROUND_SLAM); -                bIsSlam = true; -                uiShatterTimer = 10000; -                uiGroundSlamTimer = urand(15000, 18000); -            } else uiGroundSlamTimer -= diff; +                _Reset(); +            } -            if (bIsSlam) +            void EnterCombat(Unit* /*who*/) override              { -                if (uiShatterTimer <= diff) -                { -                    DoCast(me, DUNGEON_MODE(SPELL_SHATTER, H_SPELL_SHATTER)); -                } else uiShatterTimer -= diff; +                Talk(SAY_AGGRO); +                _EnterCombat(); + +                events.ScheduleEvent(EVENT_BOULDER_TOSS, urand(3000, 9000)); +                events.ScheduleEvent(EVENT_GROUND_SLAM, urand(15000, 18000)); +                events.ScheduleEvent(EVENT_STOMP, urand(20000, 29000)); +                if (IsHeroic()) +                    events.ScheduleEvent(EVENT_GROUND_SPIKE, urand(9000, 14000));              } -            DoMeleeAttackIfReady(); -        } - -        void JustDied(Unit* /*killer*/) override -        { -            Talk(SAY_DEATH); - -            instance->SetBossState(DATA_KRYSTALLUS, DONE); -        } +            void UpdateAI(uint32 diff) override +            { +                // Return since we have no target +                if (!UpdateVictim()) +                    return; -        void KilledUnit(Unit* victim) override -        { -            if (victim->GetTypeId() != TYPEID_PLAYER) -                return; +                events.Update(diff); -            Talk(SAY_KILL); -        } +                if (me->HasUnitState(UNIT_STATE_CASTING)) +                    return; -        void SpellHitTarget(Unit* /*target*/, const SpellInfo* pSpell) override -        { -            //this part should be in the core -            if (pSpell->Id == SPELL_SHATTER || pSpell->Id == H_SPELL_SHATTER) -            { -                /// @todo we need eventmap to kill this stuff -                //clear this, if we are still performing -                if (bIsSlam) +                while (uint32 eventId = events.ExecuteEvent())                  { -                    bIsSlam = false; - -                    //and correct movement, if not already -                    if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() != CHASE_MOTION_TYPE) +                    switch (eventId)                      { -                        if (me->GetVictim()) -                            me->GetMotionMaster()->MoveChase(me->GetVictim()); +                        case EVENT_BOULDER_TOSS: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 50.0f, true)) +                                DoCast(target, SPELL_BOULDER_TOSS); +                            events.ScheduleEvent(EVENT_BOULDER_TOSS, urand(9000, 15000)); +                            break; +                        case EVENT_GROUND_SPIKE: +                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true)) +                                DoCast(target, SPELL_GROUND_SPIKE); +                            events.ScheduleEvent(EVENT_GROUND_SPIKE, urand(12000, 17000)); +                            break; +                        case EVENT_GROUND_SLAM: +                            DoCast(me, SPELL_GROUND_SLAM); +                            events.ScheduleEvent(EVENT_SHATTER, 10000); +                            events.ScheduleEvent(EVENT_GROUND_SLAM, urand(15000, 18000)); +                            break; +                        case EVENT_STOMP: +                            DoCast(me, SPELL_STOMP); +                            events.ScheduleEvent(EVENT_STOMP, urand(20000, 29000)); +                            break; +                        case EVENT_SHATTER: +                            DoCast(me, SPELL_SHATTER); +                            break; +                        default: +                            break;                      }                  } + +                DoMeleeAttackIfReady(); +            } + +            void JustDied(Unit* /*killer*/) override +            { +                Talk(SAY_DEATH); +                _JustDied();              } -        } -    }; -    CreatureAI* GetAI(Creature* creature) const override -    { -        return GetHallsOfStoneAI<boss_krystallusAI>(creature); -    } +            void KilledUnit(Unit* victim) override +            { +                if (victim->GetTypeId() == TYPEID_PLAYER) +                    Talk(SAY_KILL); +            } +        }; + +        CreatureAI* GetAI(Creature* creature) const override +        { +            return GetHallsOfStoneAI<boss_krystallusAI>(creature); +        }  };  class spell_krystallus_shatter : public SpellScriptLoader 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 f666f5d5874..cedf06a3154 100644 --- a/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp +++ b/src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp @@ -211,7 +211,7 @@ public:                          if (!KaddrakGUIDList.empty())                              for (std::list<uint64>::const_iterator itr = KaddrakGUIDList.begin(); itr != KaddrakGUIDList.end(); ++itr)                              { -                                if (Creature* pKaddrak = Unit::GetCreature(*me, *itr)) +                                if (Creature* pKaddrak = ObjectAccessor::GetCreature(*me, *itr))                                  {                                      if (pKaddrak->IsAlive())                                          pKaddrak->CastSpell(target, DUNGEON_MODE(SPELL_GLARE_OF_THE_TRIBUNAL, H_SPELL_GLARE_OF_THE_TRIBUNAL), true); @@ -331,7 +331,7 @@ public:                  return;              for (std::list<uint64>::const_iterator itr = lDwarfGUIDList.begin(); itr != lDwarfGUIDList.end(); ++itr)              { -                Creature* temp = Unit::GetCreature(*me, instance ? (*itr) : 0); +                Creature* temp = ObjectAccessor::GetCreature(*me, instance ? (*itr) : 0);                  if (temp && temp->IsAlive())                      temp->DespawnOrUnsummon();              } @@ -446,7 +446,7 @@ public:                          JumpToNextStep(0);                          break;                      case 5: -                        if (Creature* temp = (Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))) +                        if (Creature* temp = (ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))))                              temp->AI()->Talk(SAY_EVENT_INTRO_3_ABED);                          JumpToNextStep(8500);                          break; @@ -455,14 +455,14 @@ public:                          JumpToNextStep(6500);                          break;                      case 7: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK)))                              temp->AI()->Talk(SAY_EVENT_A_2_KADD);                          JumpToNextStep(12500);                          break;                      case 8:                          Talk(SAY_EVENT_A_3);                          instance->HandleGameObject(instance->GetData64(DATA_GO_KADDRAK), true); -                        if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID))                              CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bKaddrakActivated = true;                          JumpToNextStep(5000);                          break; @@ -476,7 +476,7 @@ public:                          JumpToNextStep(6000);                          break;                      case 11: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK)))                              temp->AI()->Talk(SAY_EVENT_B_2_MARN);                          SpawnDwarf(1);                          JumpToNextStep(20000); @@ -484,7 +484,7 @@ public:                      case 12:                          Talk(SAY_EVENT_B_3);                          instance->HandleGameObject(instance->GetData64(DATA_GO_MARNAK), true); -                        if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID))                              CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bMarnakActivated = true;                          JumpToNextStep(10000);                          break; @@ -506,7 +506,7 @@ public:                          JumpToNextStep(20000);                          break;                      case 17: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_C_2_ABED);                          SpawnDwarf(1);                          JumpToNextStep(20000); @@ -514,7 +514,7 @@ public:                      case 18:                          Talk(SAY_EVENT_C_3);                          instance->HandleGameObject(instance->GetData64(DATA_GO_ABEDNEUM), true); -                        if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID))                              CAST_AI(npc_tribuna_controller::npc_tribuna_controllerAI, temp->AI())->bAbedneumActivated = true;                          JumpToNextStep(5000);                          break; @@ -532,7 +532,7 @@ public:                          JumpToNextStep(20000);                          break;                      case 22: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_D_2_ABED);                          SpawnDwarf(1);                          JumpToNextStep(5000); @@ -555,7 +555,7 @@ public:                          JumpToNextStep(10000);                          break;                      case 27: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_D_4_ABED);                          SpawnDwarf(1);                          JumpToNextStep(10000); @@ -565,7 +565,7 @@ public:                          Talk(SAY_EVENT_END_01);                          me->SetStandState(UNIT_STAND_STATE_STAND);                          instance->HandleGameObject(instance->GetData64(DATA_GO_SKY_FLOOR), true); -                        if (Creature* temp = Unit::GetCreature(*me, uiControllerGUID)) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, uiControllerGUID))                              temp->DealDamage(temp, temp->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);                          bIsBattle = true;                          SetEscortPaused(false); @@ -578,7 +578,7 @@ public:                          JumpToNextStep(5500);                          break;                      case 30: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_END_03_ABED);                          JumpToNextStep(8500);                          break; @@ -587,7 +587,7 @@ public:                          JumpToNextStep(11500);                          break;                      case 32: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_END_05_ABED);                          JumpToNextStep(11500);                          break; @@ -596,7 +596,7 @@ public:                          JumpToNextStep(4500);                          break;                      case 34: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_END_07_ABED);                          JumpToNextStep(22500);                          break; @@ -605,7 +605,7 @@ public:                          JumpToNextStep(7500);                          break;                      case 36: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK)))                              temp->AI()->Talk(SAY_EVENT_END_09_KADD);                          JumpToNextStep(18500);                          break; @@ -614,7 +614,7 @@ public:                          JumpToNextStep(5500);                          break;                      case 38: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK)))                              temp->AI()->Talk(SAY_EVENT_END_11_KADD);                          JumpToNextStep(20500);                          break; @@ -623,7 +623,7 @@ public:                          JumpToNextStep(2500);                          break;                      case 40: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_KADDRAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KADDRAK)))                              temp->AI()->Talk(SAY_EVENT_END_13_KADD);                          JumpToNextStep(19500);                          break; @@ -632,7 +632,7 @@ public:                          JumpToNextStep(10500);                          break;                      case 42: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK)))                              temp->AI()->Talk(SAY_EVENT_END_15_MARN);                          JumpToNextStep(6500);                          break; @@ -641,7 +641,7 @@ public:                          JumpToNextStep(6500);                          break;                      case 44: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK)))                              temp->AI()->Talk(SAY_EVENT_END_17_MARN);                          JumpToNextStep(25500);                          break; @@ -650,7 +650,7 @@ public:                          JumpToNextStep(23500);                          break;                      case 46: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_MARNAK))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MARNAK)))                              temp->AI()->Talk(SAY_EVENT_END_19_MARN);                          JumpToNextStep(3500);                          break; @@ -659,7 +659,7 @@ public:                          JumpToNextStep(8500);                          break;                      case 48: -                        if (Creature* temp = Unit::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM))) +                        if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ABEDNEUM)))                              temp->AI()->Talk(SAY_EVENT_END_21_ABED);                          JumpToNextStep(5500);                          break; 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 58df31a4471..011d1844adf 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_general_vezax.cpp @@ -332,7 +332,7 @@ class boss_saronite_animus : public CreatureScript              void JustDied(Unit* /*killer*/) override              { -                if (Creature* Vezax = me->GetCreature(*me, instance->GetData64(BOSS_VEZAX))) +                if (Creature* Vezax = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_VEZAX)))                      Vezax->AI()->DoAction(ACTION_ANIMUS_DIE);              } @@ -427,7 +427,7 @@ class npc_saronite_vapors : public CreatureScript                      DoCast(me, SPELL_SARONITE_VAPORS);                      me->DespawnOrUnsummon(30000); -                    if (Creature* Vezax = me->GetCreature(*me, instance->GetData64(BOSS_VEZAX))) +                    if (Creature* Vezax = ObjectAccessor::GetCreature(*me, instance->GetData64(BOSS_VEZAX)))                          Vezax->AI()->DoAction(ACTION_VAPORS_DIE);                  }              } @@ -494,13 +494,13 @@ class spell_general_vezax_mark_of_the_faceless_leech : public SpellScriptLoader                      FinishCast(SPELL_FAILED_NO_VALID_TARGETS);              } -            void Register() +            void Register() override              {                  OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_general_vezax_mark_of_the_faceless_leech_SpellScript::FilterTargets, EFFECT_1, TARGET_UNIT_DEST_AREA_ENEMY);              }          }; -        SpellScript* GetSpellScript() const +        SpellScript* GetSpellScript() const override          {              return new spell_general_vezax_mark_of_the_faceless_leech_SpellScript();          } diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp index ef9bd9a8b12..6be3586de28 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp @@ -399,7 +399,7 @@ class npc_scorch_ground : public CreatureScript                  {                      if (_heatTimer <= uiDiff)                      { -                        Creature* construct = me->GetCreature(*me, _constructGUID); +                        Creature* construct = ObjectAccessor::GetCreature(*me, _constructGUID);                          if (construct && !construct->HasAura(SPELL_MOLTEN))                          {                              me->AddAura(SPELL_HEAT, construct); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp index e77350e2710..58969fd63c8 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_kologarn.cpp @@ -234,7 +234,7 @@ class boss_kologarn : public CreatureScript                  // Victim gets 67351                  if (eyebeamTarget)                  { -                    if (Unit* target = Unit::GetUnit(*summon, eyebeamTarget)) +                    if (Unit* target = ObjectAccessor::GetUnit(*summon, eyebeamTarget))                      {                          summon->Attack(target, false);                          summon->GetMotionMaster()->MoveChase(target); diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp index cfa5429ea79..f284aacf996 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_mimiron.cpp @@ -89,7 +89,7 @@ class spell_ulduar_proximity_mines : public SpellScriptLoader          class spell_ulduar_proximity_minesSpellScript : public SpellScript          { -            PrepareSpellScript(spell_ulduar_proximity_minesSpellScript) +            PrepareSpellScript(spell_ulduar_proximity_minesSpellScript);              void HandleScript(SpellEffIndex effIndex)              { diff --git a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp index c57c3b33d01..87192f39a5c 100644 --- a/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp +++ b/src/server/scripts/Northrend/Ulduar/Ulduar/boss_xt002.cpp @@ -457,7 +457,7 @@ class npc_xt002_heart : public CreatureScript              void JustDied(Unit* /*killer*/) override              { -                Creature* xt002 = _instance ? me->GetCreature(*me, _instance->GetData64(BOSS_XT002)) : NULL; +                Creature* xt002 = _instance ? ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002)) : NULL;                  if (!xt002 || !xt002->AI())                      return; @@ -503,7 +503,7 @@ class npc_scrapbot : public CreatureScript                  _rangeCheckTimer = 500; -                if (Creature* pXT002 = me->GetCreature(*me, _instance->GetData64(BOSS_XT002))) +                if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002)))                      me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f);              } @@ -511,7 +511,7 @@ class npc_scrapbot : public CreatureScript              {                  if (_rangeCheckTimer <= diff)                  { -                    if (Creature* xt002 = me->GetCreature(*me, _instance->GetData64(BOSS_XT002))) +                    if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002)))                      {                          if (me->IsWithinMeleeRange(xt002))                          { @@ -560,7 +560,7 @@ class npc_pummeller : public CreatureScript                  _trampleTimer = TIMER_TRAMPLE;                  _uppercutTimer = TIMER_UPPERCUT; -                if (Creature* xt002 = me->GetCreature(*me, _instance->GetData64(BOSS_XT002))) +                if (Creature* xt002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002)))                  {                      Position pos = xt002->GetPosition();                      me->GetMotionMaster()->MovePoint(0, pos); @@ -668,7 +668,7 @@ class npc_boombot : public CreatureScript                  me->SetFloatValue(UNIT_FIELD_MAXDAMAGE, 18000.0f);                  /// @todo proper waypoints? -                if (Creature* pXT002 = me->GetCreature(*me, _instance->GetData64(BOSS_XT002))) +                if (Creature* pXT002 = ObjectAccessor::GetCreature(*me, _instance->GetData64(BOSS_XT002)))                      me->GetMotionMaster()->MoveFollow(pXT002, 0.0f, 0.0f);              } diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp index 4a5c0291ce0..41dd1a165f2 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp @@ -206,7 +206,7 @@ public:              Summons.DespawnAll();              me->SetSpeed(MOVE_FLIGHT, 3.0f); -            if ((Unit::GetCreature(*me, m_uiGraufGUID) == NULL) && !me->IsMounted()) +            if ((ObjectAccessor::GetCreature(*me, m_uiGraufGUID) == NULL) && !me->IsMounted())                   me->SummonCreature(NPC_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);              instance->SetBossState(DATA_SKADI_THE_RUTHLESS, NOT_STARTED);              instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT); @@ -217,7 +217,7 @@ public:              me->SetCanFly(false);              me->Dismount();              me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE); -            if (!Unit::GetCreature(*me, m_uiGraufGUID)) +            if (!ObjectAccessor::GetCreature(*me, m_uiGraufGUID))                  me->SummonCreature(NPC_GRAUF, Location[0].GetPositionX(), Location[0].GetPositionY(), Location[0].GetPositionZ(), 3.0f);          } @@ -469,7 +469,7 @@ public:          if (!instance)              return false; -        if (Creature* pSkadi = Unit::GetCreature(*go, instance->GetData64(DATA_SKADI_THE_RUTHLESS))) +        if (Creature* pSkadi = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_SKADI_THE_RUTHLESS)))              player->CastSpell(pSkadi, SPELL_RAPID_FIRE, true);          return false; diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp index a33d02fb083..de4d6c32c97 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp @@ -369,7 +369,7 @@ public:          void DespawnBoatGhosts(uint64& m_uiCreatureGUID)          {              if (m_uiCreatureGUID) -                if (Creature* temp = Unit::GetCreature(*me, m_uiCreatureGUID)) +                if (Creature* temp = ObjectAccessor::GetCreature(*me, m_uiCreatureGUID))                      temp->DisappearAndDie();              m_uiCreatureGUID = 0; diff --git a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp index 205030947d1..ea5c5b9ee48 100644 --- a/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp +++ b/src/server/scripts/Northrend/VaultOfArchavon/boss_emalon.cpp @@ -103,7 +103,7 @@ class boss_emalon : public CreatureScript                  {                      for (std::list<uint64>::const_iterator itr = summons.begin(); itr != summons.end(); ++itr)                      { -                        Creature* minion = Unit::GetCreature(*me, *itr); +                        Creature* minion = ObjectAccessor::GetCreature(*me, *itr);                          if (minion && minion->IsAlive() && !minion->GetVictim() && minion->AI())                              minion->AI()->AttackStart(who);                      } @@ -143,7 +143,7 @@ class boss_emalon : public CreatureScript                          case EVENT_OVERCHARGE:                              if (!summons.empty())                              { -                                Creature* minion = Unit::GetCreature(*me, Trinity::Containers::SelectRandomContainerElement(summons)); +                                Creature* minion = ObjectAccessor::GetCreature(*me, Trinity::Containers::SelectRandomContainerElement(summons));                                  if (minion && minion->IsAlive())                                  {                                      minion->CastSpell(me, SPELL_OVERCHARGED, true); diff --git a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp index 5cbd4cafffb..4aede5e5f46 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_ichoron.cpp @@ -242,7 +242,7 @@ public:                          if (!m_waterElements.empty())                          {                              for (std::list<uint64>::const_iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr) -                                if (Creature* temp = Unit::GetCreature(*me, *itr)) +                                if (Creature* temp = ObjectAccessor::GetCreature(*me, *itr))                                      if (temp->IsAlive())                                      {                                          bIsWaterElementsAlive = true; @@ -362,7 +362,7 @@ public:          {              if (uiRangeCheck_Timer < uiDiff)              { -                if (Creature* pIchoron = Unit::GetCreature(*me, instance->GetData64(DATA_ICHORON))) +                if (Creature* pIchoron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ICHORON)))                  {                      if (me->IsWithinDist(pIchoron, 2.0f, false))                      { @@ -379,7 +379,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              DoCast(me, SPELL_SPLASH); -            if (Creature* pIchoron = Unit::GetCreature(*me, instance->GetData64(DATA_ICHORON))) +            if (Creature* pIchoron = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ICHORON)))                  if (pIchoron->AI())                      pIchoron->AI()->DoAction(ACTION_WATER_ELEMENT_KILLED);          } diff --git a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp index de08022b5ed..2bac444a558 100644 --- a/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp +++ b/src/server/scripts/Northrend/VioletHold/boss_xevozz.cpp @@ -254,7 +254,7 @@ public:              if (uiRangeCheck_Timer < uiDiff)              { -                if (Creature* pXevozz = Unit::GetCreature(*me, instance->GetData64(DATA_XEVOZZ))) +                if (Creature* pXevozz = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_XEVOZZ)))                  {                      float fDistance = me->GetDistance2d(pXevozz);                      if (fDistance <= 3) diff --git a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp index a4f142e1c89..b623d5e6ddc 100644 --- a/src/server/scripts/Northrend/VioletHold/violet_hold.cpp +++ b/src/server/scripts/Northrend/VioletHold/violet_hold.cpp @@ -535,7 +535,7 @@ public:          {              me->CastSpell(me, SABOTEUR_SHIELD_DISRUPTION, false);              me->DisappearAndDie(); -            Creature* pSaboPort = Unit::GetCreature((*me), instance->GetData64(DATA_SABOTEUR_PORTAL)); +            Creature* pSaboPort = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SABOTEUR_PORTAL));              if (pSaboPort)                  pSaboPort->DisappearAndDie();              instance->SetData(DATA_START_BOSS_ENCOUNTER, 1); diff --git a/src/server/scripts/Northrend/zone_borean_tundra.cpp b/src/server/scripts/Northrend/zone_borean_tundra.cpp index c226edf28b8..38d73e0673d 100644 --- a/src/server/scripts/Northrend/zone_borean_tundra.cpp +++ b/src/server/scripts/Northrend/zone_borean_tundra.cpp @@ -1071,8 +1071,8 @@ public:              if (phaseTimer <= diff)              { -                Creature* talbot = me->GetCreature(*me, talbotGUID); -                Creature* arthas = me->GetCreature(*me, arthasGUID); +                Creature* talbot = ObjectAccessor::GetCreature(*me, talbotGUID); +                Creature* arthas = ObjectAccessor::GetCreature(*me, arthasGUID);                  switch (phase)                  {                      case 1: @@ -1209,9 +1209,9 @@ public:                          break;                     case 17: -                        if (Creature* leryssa = me->GetCreature(*me, leryssaGUID)) +                        if (Creature* leryssa = ObjectAccessor::GetCreature(*me, leryssaGUID))                              leryssa->RemoveFromWorld(); -                        if (Creature* arlos= me->GetCreature(*me, arlosGUID)) +                        if (Creature* arlos= ObjectAccessor::GetCreature(*me, arlosGUID))                              arlos->RemoveFromWorld();                          if (talbot)                              talbot->RemoveFromWorld(); @@ -1230,16 +1230,16 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Creature* talbot = me->GetCreature(*me, talbotGUID)) +            if (Creature* talbot = ObjectAccessor::GetCreature(*me, talbotGUID))                  talbot->RemoveFromWorld(); -            if (Creature* leryssa = me->GetCreature(*me, leryssaGUID)) +            if (Creature* leryssa = ObjectAccessor::GetCreature(*me, leryssaGUID))                  leryssa->RemoveFromWorld(); -            if (Creature* arlos = me->GetCreature(*me, arlosGUID)) +            if (Creature* arlos = ObjectAccessor::GetCreature(*me, arlosGUID))                  arlos->RemoveFromWorld(); -            if (Creature* arthas = me->GetCreature(*me, arthasGUID)) +            if (Creature* arthas = ObjectAccessor::GetCreature(*me, arthasGUID))                  arthas->RemoveFromWorld();          }      }; @@ -1433,8 +1433,8 @@ public:              if (!leryssaGUID || !arlosGUID)                  return; -            Creature* leryssa = Unit::GetCreature(*me, leryssaGUID); -            Creature* arlos = Unit::GetCreature(*me, arlosGUID); +            Creature* leryssa = ObjectAccessor::GetCreature(*me, leryssaGUID); +            Creature* arlos = ObjectAccessor::GetCreature(*me, arlosGUID);              if (!leryssa || !arlos)                  return; diff --git a/src/server/scripts/Northrend/zone_crystalsong_forest.cpp b/src/server/scripts/Northrend/zone_crystalsong_forest.cpp index a5ff2271316..e4bd9c469fb 100644 --- a/src/server/scripts/Northrend/zone_crystalsong_forest.cpp +++ b/src/server/scripts/Northrend/zone_crystalsong_forest.cpp @@ -97,7 +97,7 @@ public:              } -            if (Creature* pOrb = me->GetCreature(*me, targetGUID)) +            if (Creature* pOrb = ObjectAccessor::GetCreature(*me, targetGUID))                  DoCast(pOrb, SPELL_TRANSITUS_SHIELD_BEAM);          } diff --git a/src/server/scripts/Northrend/zone_grizzly_hills.cpp b/src/server/scripts/Northrend/zone_grizzly_hills.cpp index e98d424abd5..d0fd948ce6a 100644 --- a/src/server/scripts/Northrend/zone_grizzly_hills.cpp +++ b/src/server/scripts/Northrend/zone_grizzly_hills.cpp @@ -85,18 +85,18 @@ public:                          _mrfloppyGUID = Mrfloppy->GetGUID();                      break;                  case 10: -                    if (Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                      {                          Talk(SAY_WORGHAGGRO1);                          me->SummonCreature(NPC_HUNGRY_WORG, me->GetPositionX()+5, me->GetPositionY()+2, me->GetPositionZ()+1, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000);                      }                      break;                  case 11: -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                          Mrfloppy->GetMotionMaster()->MoveFollow(me, PET_FOLLOW_DIST, PET_FOLLOW_ANGLE);                      break;                  case 17: -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                          Mrfloppy->GetMotionMaster()->MovePoint(0, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());                      Talk(SAY_WORGRAGGRO3);                      if (Creature* RWORG = me->SummonCreature(NPC_RAVENOUS_WORG, me->GetPositionX()+10, me->GetPositionY()+8, me->GetPositionZ()+2, 3.229f, TEMPSUMMON_TIMED_OR_DEAD_DESPAWN, 120000)) @@ -106,31 +106,31 @@ public:                      }                      break;                  case 18: -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                      { -                        if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID)) +                        if (Creature* RWORG = ObjectAccessor::GetCreature(*me, _RavenousworgGUID))                              RWORG->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ());                          DoCast(Mrfloppy, SPELL_MRFLOPPY);                      }                      break;                  case 19: -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                      {                          if (Mrfloppy->HasAura(SPELL_MRFLOPPY, 0))                          { -                            if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID)) +                            if (Creature* RWORG = ObjectAccessor::GetCreature(*me, _RavenousworgGUID))                                  Mrfloppy->EnterVehicle(RWORG);                          }                      }                      break;                  case 20: -                    if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID)) +                    if (Creature* RWORG = ObjectAccessor::GetCreature(*me, _RavenousworgGUID))                          RWORG->HandleEmoteCommand(34);                      break;                  case 21: -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                      { -                        if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID)) +                        if (Creature* RWORG = ObjectAccessor::GetCreature(*me, _RavenousworgGUID))                          {                              RWORG->Kill(Mrfloppy);                              Mrfloppy->ExitVehicle(); @@ -141,11 +141,11 @@ public:                      }                      break;                  case 22: -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                      {                          if (Mrfloppy->isDead())                          { -                            if (Creature* RWORG = Unit::GetCreature(*me, _RavenousworgGUID)) +                            if (Creature* RWORG = ObjectAccessor::GetCreature(*me, _RavenousworgGUID))                                  RWORG->DisappearAndDie();                              me->GetMotionMaster()->MovePoint(0, Mrfloppy->GetPositionX(), Mrfloppy->GetPositionY(), Mrfloppy->GetPositionZ());                              Mrfloppy->setDeathState(ALIVE); @@ -167,7 +167,7 @@ public:                      break;                  case 27:                      me->DisappearAndDie(); -                    if (Creature* Mrfloppy = Unit::GetCreature(*me, _mrfloppyGUID)) +                    if (Creature* Mrfloppy = ObjectAccessor::GetCreature(*me, _mrfloppyGUID))                          Mrfloppy->DisappearAndDie();                      break;              } diff --git a/src/server/scripts/Northrend/zone_icecrown.cpp b/src/server/scripts/Northrend/zone_icecrown.cpp index 93e1f19b195..32b9805470e 100644 --- a/src/server/scripts/Northrend/zone_icecrown.cpp +++ b/src/server/scripts/Northrend/zone_icecrown.cpp @@ -595,14 +595,14 @@ public:                      break;                  case EVENT_INTRO_1:                      { -                        if (Creature* Dalfors = me->GetCreature(*me, guidDalfors)) +                        if (Creature* Dalfors = ObjectAccessor::GetCreature(*me, guidDalfors))                              Dalfors->AI()->Talk(DALFORS_SAY_PRE_1);                          events.ScheduleEvent(EVENT_INTRO_2, 5000);                      }                      break;                  case EVENT_INTRO_2:                      { -                        if (Creature* Dalfors = me->GetCreature(*me, guidDalfors)) +                        if (Creature* Dalfors = ObjectAccessor::GetCreature(*me, guidDalfors))                          {                              Dalfors->SetFacingTo(6.215f);                              Dalfors->AI()->Talk(DALFORS_SAY_PRE_2); @@ -612,37 +612,37 @@ public:                      break;                  case EVENT_INTRO_3:                      { -                        if (Creature* Dalfors = me->GetCreature(*me, guidDalfors)) +                        if (Creature* Dalfors = ObjectAccessor::GetCreature(*me, guidDalfors))                          {                              Dalfors->GetMotionMaster()->MovePoint(0, DalforsPos[2]);                              Dalfors->SetHomePosition(DalforsPos[2]);                          } -                        if (Creature* Priest1 = me->GetCreature(*me, guidPriest[0])) +                        if (Creature* Priest1 = ObjectAccessor::GetCreature(*me, guidPriest[0]))                          {                              Priest1->SetFacingTo(5.7421f);                              Priest1->SetHomePosition(Priest1Pos[1]);                          } -                        if (Creature* Priest2 = me->GetCreature(*me, guidPriest[1])) +                        if (Creature* Priest2 = ObjectAccessor::GetCreature(*me, guidPriest[1]))                          {                              Priest2->SetFacingTo(5.7421f);                              Priest2->SetHomePosition(Priest2Pos[1]);                          } -                        if (Creature* Priest3 = me->GetCreature(*me, guidPriest[2])) +                        if (Creature* Priest3 = ObjectAccessor::GetCreature(*me, guidPriest[2]))                          {                              Priest3->SetFacingTo(5.7421f);                              Priest3->SetHomePosition(Priest3Pos[1]);                          } -                        if (Creature* Mason1 = me->GetCreature(*me, guidMason[0])) +                        if (Creature* Mason1 = ObjectAccessor::GetCreature(*me, guidMason[0]))                          {                              Mason1->GetMotionMaster()->MovePoint(0, Mason1Pos[2]);                              Mason1->SetHomePosition(Mason1Pos[2]);                          } -                        if (Creature* Mason2 = me->GetCreature(*me, guidMason[1])) +                        if (Creature* Mason2 = ObjectAccessor::GetCreature(*me, guidMason[1]))                          {                              Mason2->GetMotionMaster()->MovePoint(0, Mason2Pos[2]);                              Mason2->SetHomePosition(Mason2Pos[2]);                          } -                        if (Creature* Mason3 = me->GetCreature(*me, guidMason[2])) +                        if (Creature* Mason3 = ObjectAccessor::GetCreature(*me, guidMason[2]))                          {                              Mason3->GetMotionMaster()->MovePoint(0, Mason3Pos[2]);                              Mason3->SetHomePosition(Mason3Pos[2]); @@ -653,17 +653,17 @@ public:                      break;                  case EVENT_MASON_ACTION:                      { -                        if (Creature* Mason1 = me->GetCreature(*me, guidMason[0])) +                        if (Creature* Mason1 = ObjectAccessor::GetCreature(*me, guidMason[0]))                          {                              Mason1->SetFacingTo(2.8972f);                              Mason1->AI()->SetData(1, 1); // triggers SAI actions on npc                          } -                        if (Creature* Mason2 = me->GetCreature(*me, guidMason[1])) +                        if (Creature* Mason2 = ObjectAccessor::GetCreature(*me, guidMason[1]))                          {                              Mason2->SetFacingTo(3.1241f);                              Mason2->AI()->SetData(1, 1); // triggers SAI actions on npc                          } -                        if (Creature* Mason3 = me->GetCreature(*me, guidMason[2])) +                        if (Creature* Mason3 = ObjectAccessor::GetCreature(*me, guidMason[2]))                          {                              Mason3->SetFacingTo(3.6651f);                              Mason3->AI()->SetData(1, 1); // triggers SAI actions on npc @@ -674,7 +674,7 @@ public:                      {                          if (Creature* LK = GetClosestCreatureWithEntry(me, NPC_LK, 100))                              LK->AI()->Talk(LK_TALK_1); -                        if (Creature* Dalfors = me->GetCreature(*me, guidDalfors)) +                        if (Creature* Dalfors = ObjectAccessor::GetCreature(*me, guidDalfors))                              Dalfors->AI()->Talk(DALFORS_SAY_START);                          events.ScheduleEvent(EVENT_WAVE_SPAWN, 1000);                      } @@ -763,7 +763,7 @@ public:              }              if (PhaseCount == 8) -                if (Creature* Halof = me->GetCreature(*me, guidHalof)) +                if (Creature* Halof = ObjectAccessor::GetCreature(*me, guidHalof))                      if (Halof->isDead())                      {                          DoCast(me, SPELL_CRUSADERS_SPIRE_VICTORY, true); @@ -771,7 +771,7 @@ public:                          Summons.DespawnEntry(NPC_REANIMATED_CAPTAIN);                          Summons.DespawnEntry(NPC_SCOURGE_DRUDGE);                          Summons.DespawnEntry(NPC_HALOF_THE_DEATHBRINGER); -                        if (Creature* Dalfors = me->GetCreature(*me, guidDalfors)) +                        if (Creature* Dalfors = ObjectAccessor::GetCreature(*me, guidDalfors))                              Dalfors->AI()->Talk(DALFORS_YELL_FINISHED);                          events.ScheduleEvent(EVENT_ENDED, 10000);                      } @@ -963,35 +963,35 @@ class npc_margrave_dhakar : public CreatureScript                          }                          case EVENT_LK_SAY_1:                          { -                            if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid)) +                            if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid))                                  lichKing->AI()->Talk(SAY_LK_1);                              _events.ScheduleEvent(EVENT_LK_SAY_2, 5000);                              break;                          }                          case EVENT_LK_SAY_2:                          { -                            if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid)) +                            if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid))                                  lichKing->AI()->Talk(SAY_LK_2);                              _events.ScheduleEvent(EVENT_LK_SAY_3, 5000);                              break;                          }                          case EVENT_LK_SAY_3:                          { -                            if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid)) +                            if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid))                                  lichKing->AI()->Talk(SAY_LK_3);                              _events.ScheduleEvent(EVENT_LK_SAY_4, 5000);                              break;                          }                          case EVENT_LK_SAY_4:                          { -                            if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid)) +                            if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid))                                  lichKing->AI()->Talk(SAY_LK_4);                              _events.ScheduleEvent(EVENT_OUTRO, 12000);                              break;                          }                          case EVENT_LK_SAY_5:                          { -                            if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid)) +                            if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid))                                  lichKing->AI()->Talk(SAY_LK_5);                              _events.ScheduleEvent(EVENT_OUTRO, 8000);                              break; @@ -1001,7 +1001,7 @@ class npc_margrave_dhakar : public CreatureScript                              if (Creature* olakin = me->FindNearestCreature(NPC_OLAKIN, 50.0f, true))                                  olakin->AI()->Talk(SAY_OLAKIN_PAY); -                            if (Creature* lichKing = Unit::GetCreature(*me, _lichKingGuid)) +                            if (Creature* lichKing = ObjectAccessor::GetCreature(*me, _lichKingGuid))                                  lichKing->DespawnOrUnsummon(0);                              _events.ScheduleEvent(EVENT_START, 5000); diff --git a/src/server/scripts/Northrend/zone_zuldrak.cpp b/src/server/scripts/Northrend/zone_zuldrak.cpp index 78b9a99b2e4..cf8c4cd9b36 100644 --- a/src/server/scripts/Northrend/zone_zuldrak.cpp +++ b/src/server/scripts/Northrend/zone_zuldrak.cpp @@ -91,7 +91,7 @@ public:              {                  if (caster->ToPlayer()->GetQuestStatus(QUEST_TROLLS_IS_GONE_CRAZY) == QUEST_STATUS_INCOMPLETE)                  { -                    if (Creature* rageclaw = Unit::GetCreature(*me, _rageclawGUID)) +                    if (Creature* rageclaw = ObjectAccessor::GetCreature(*me, _rageclawGUID))                      {                          UnlockRageclaw(caster, rageclaw);                          caster->ToPlayer()->KilledMonster(rageclaw->GetCreatureTemplate(), _rageclawGUID); diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp index 9ab35aa188b..ea877435acf 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp @@ -223,7 +223,7 @@ public:                  summoned->SetDisplayId(soulmodel);                  summoned->setFaction(me->getFaction()); -                if (Unit* target = Unit::GetUnit(*me, soulholder)) +                if (Unit* target = ObjectAccessor::GetUnit(*me, soulholder))                  {                  CAST_AI(npc_stolen_soul::npc_stolen_soulAI, summoned->AI())->SetMyClass(soulclass); diff --git a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp index bd65cd9fc89..26e9df6620c 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_shirrak_the_dead_watcher.cpp @@ -92,7 +92,7 @@ public:                  summoned->SetLevel(me->getLevel());                  summoned->AddUnitState(UNIT_STATE_ROOT); -                if (Unit* pFocusedTarget = Unit::GetUnit(*me, FocusedTargetGUID)) +                if (Unit* pFocusedTarget = ObjectAccessor::GetUnit(*me, FocusedTargetGUID))                      summoned->AI()->AttackStart(pFocusedTarget);              }          } diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp index 427265e2562..5edae14d47a 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp @@ -155,11 +155,11 @@ public:                          case EVENT_SET_CHANNELERS:                          {                              for (std::list<uint64>::const_iterator itr = bloodmage.begin(); itr != bloodmage.end(); ++itr) -                                if (Creature* bloodmage = (Unit::GetCreature(*me, *itr))) +                                if (Creature* bloodmage = (ObjectAccessor::GetCreature(*me, *itr)))                                      bloodmage->CastSpell((Unit*)NULL, SPELL_SUMMON_CHANNEL);                              for (std::list<uint64>::const_iterator itr = deathshaper.begin(); itr != deathshaper.end(); ++itr) -                                if (Creature* deathshaper = (Unit::GetCreature(*me, *itr))) +                                if (Creature* deathshaper = (ObjectAccessor::GetCreature(*me, *itr)))                                      deathshaper->CastSpell((Unit*)NULL, SPELL_SUMMON_CHANNEL);                              events.ScheduleEvent(EVENT_SET_CHANNELERS, 12000); diff --git a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp index 1f8c090230b..0004df68016 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_bloodboil.cpp @@ -150,7 +150,7 @@ public:              std::list<HostileReference*>::const_iterator itr = m_threatlist.begin();              for (; itr!= m_threatlist.end(); ++itr)             //store the threat list in a different container              { -                Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                                                                  //only on alive players                  if (target && target->IsAlive() && target->GetTypeId() == TYPEID_PLAYER)                      targets.push_back(target); @@ -184,7 +184,7 @@ public:          void RevertThreatOnTarget(uint64 guid)          { -            if (Unit* unit = Unit::GetUnit(*me, guid)) +            if (Unit* unit = ObjectAccessor::GetUnit(*me, guid))              {                  if (DoGetThreat(unit))                      DoModifyThreatPercent(unit, -100); diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index f0498d8a5c2..b1c3d607396 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -596,9 +596,9 @@ public:              if (Conversation[count].creature == ILLIDAN_STORMRAGE)                  creature = me;              else if (Conversation[count].creature == AKAMA) -                creature = (Unit::GetCreature((*me), AkamaGUID)); +                creature = (ObjectAccessor::GetCreature((*me), AkamaGUID));              else if (Conversation[count].creature == MAIEV_SHADOWSONG) -                creature = (Unit::GetCreature((*me), MaievGUID)); +                creature = (ObjectAccessor::GetCreature((*me), MaievGUID));              if (creature)              { @@ -831,7 +831,7 @@ public:                  {                      if (GlaiveGUID[i])                      { -                        Unit* Glaive = Unit::GetUnit(*me, GlaiveGUID[i]); +                        Unit* Glaive = ObjectAccessor::GetUnit(*me, GlaiveGUID[i]);                          if (Glaive)                          {                              Glaive->CastSpell(me, SPELL_GLAIVE_RETURNS, false); // Make it look like the Glaive flies back up to us @@ -1437,7 +1437,7 @@ public:              std::vector<Unit*> eliteList;              for (ThreatContainer::StorageType::const_iterator itr = threatList.begin(); itr != threatList.end(); ++itr)              { -                Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->GetEntry() == ILLIDARI_ELITE)                      eliteList.push_back(unit);              } @@ -1588,9 +1588,9 @@ public:              Unit* Spirit[2] = { NULL, NULL };              if (ChannelCount <= 5)              { -                Channel = Unit::GetUnit(*me, ChannelGUID); -                Spirit[0] = Unit::GetUnit(*me, SpiritGUID[0]); -                Spirit[1] = Unit::GetUnit(*me, SpiritGUID[1]); +                Channel = ObjectAccessor::GetUnit(*me, ChannelGUID); +                Spirit[0] = ObjectAccessor::GetUnit(*me, SpiritGUID[0]); +                Spirit[1] = ObjectAccessor::GetUnit(*me, SpiritGUID[1]);                  if (!Channel || !Spirit[0] || !Spirit[1])                      return;              } @@ -2007,7 +2007,7 @@ public:                  // if (IllidanGUID && !SummonedBeams)                  // { -                //    if (Unit* Illidan = Unit::GetUnit(*me, IllidanGUID) +                //    if (Unit* Illidan = ObjectAccessor::GetUnit(*me, IllidanGUID)                  //    {                  //        /// @todo Find proper spells and properly apply 'caged' Illidan effect                  //    } @@ -2068,7 +2068,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Unit* target = Unit::GetUnit(*me, TargetGUID)) +            if (Unit* target = ObjectAccessor::GetUnit(*me, TargetGUID))                  target->RemoveAurasDueToSpell(SPELL_PARALYZE);          } @@ -2157,7 +2157,7 @@ public:                  if (!me->EnsureVictim()->HasAura(SPELL_PARASITIC_SHADOWFIEND)                      && !me->EnsureVictim()->HasAura(SPELL_PARASITIC_SHADOWFIEND2))                  { -                    if (Creature* illidan = Unit::GetCreature((*me), IllidanGUID))// summon only in 1. phase +                    if (Creature* illidan = ObjectAccessor::GetCreature((*me), IllidanGUID))// summon only in 1. phase                          if (CAST_AI(boss_illidan_stormrage::boss_illidan_stormrageAI, illidan->AI())->Phase == PHASE_NORMAL)                              me->CastSpell(me->GetVictim(), SPELL_PARASITIC_SHADOWFIEND2, true, 0, 0, IllidanGUID); // do not stack                  } diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index ac91c2ac034..db3fcea35db 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -245,7 +245,7 @@ public:                      {                          if (TargetGUID[i])                          { -                            if (Unit* unit = Unit::GetUnit(*me, TargetGUID[i])) +                            if (Unit* unit = ObjectAccessor::GetUnit(*me, TargetGUID[i]))                                  unit->CastSpell(unit, SPELL_ATTRACTION, true);                              TargetGUID[i] = 0;                          } diff --git a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp index 39edb6b04aa..9b304c3cd7b 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -229,7 +229,7 @@ public:              ThreatContainer::StorageType threatlist = target->getThreatManager().getThreatList();              for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr)              { -                Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit)                  {                      DoModifyThreatPercent(unit, -100); @@ -258,7 +258,7 @@ public:              Creature* Essence = NULL;              if (EssenceGUID)              { -                Essence = Unit::GetCreature(*me, EssenceGUID); +                Essence = ObjectAccessor::GetCreature(*me, EssenceGUID);                  if (!Essence)                  {                      EnterEvadeMode(); @@ -378,7 +378,7 @@ public:  void npc_enslaved_soul::npc_enslaved_soulAI::JustDied(Unit* /*killer*/)  {      if (ReliquaryGUID) -        if (Creature* Reliquary = (Unit::GetCreature((*me), ReliquaryGUID))) +        if (Creature* Reliquary = (ObjectAccessor::GetCreature((*me), ReliquaryGUID)))              ++(CAST_AI(boss_reliquary_of_souls::boss_reliquary_of_soulsAI, Reliquary->AI())->SoulDeathCount);      DoCast(me, SPELL_SOUL_RELEASE, true); @@ -454,7 +454,7 @@ public:              ThreatContainer::StorageType::const_iterator itr = threatlist.begin();              for (; itr != threatlist.end(); ++itr)              { -                Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->IsAlive() && (unit->GetTypeId() == TYPEID_PLAYER)) // Only alive players                      targets.push_back(unit);              } diff --git a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp index 8e5eb5ca888..b59d073c17d 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -777,7 +777,7 @@ public:          void IsSummonedBy(Unit* /*summoner*/) override          { -            if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid))) +            if (Creature* summoner = (ObjectAccessor::GetCreature((*me), summonerGuid)))                  CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);          } @@ -883,7 +883,7 @@ public:          void IsSummonedBy(Unit* /*summoner*/) override          { -            if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid))) +            if (Creature* summoner = (ObjectAccessor::GetCreature((*me), summonerGuid)))                  CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);          } @@ -973,7 +973,7 @@ public:          void IsSummonedBy(Unit* /*summoner*/) override          { -            if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid))) +            if (Creature* summoner = (ObjectAccessor::GetCreature((*me), summonerGuid)))                  CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);          } @@ -1053,7 +1053,7 @@ public:          void IsSummonedBy(Unit* /*summoner*/) override          { -            if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid))) +            if (Creature* summoner = (ObjectAccessor::GetCreature((*me), summonerGuid)))                  CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);          } @@ -1135,7 +1135,7 @@ public:          void IsSummonedBy(Unit* /*summoner*/) override          { -            if (Creature* summoner = (Unit::GetCreature((*me), summonerGuid))) +            if (Creature* summoner = (ObjectAccessor::GetCreature((*me), summonerGuid)))                  CAST_AI(npc_creature_generator_akama::npc_creature_generator_akamaAI, summoner->AI())->JustSummoned(me);          } diff --git a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp index 98a349f3606..a705659337f 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_supremus.cpp @@ -178,7 +178,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && me->IsWithinMeleeRange(unit))                  {                      if (unit->GetHealth() > health) diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 35521a783be..0d9537b8b7a 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -95,7 +95,7 @@ public:                  {                      DoZoneInCombat(); -                    Creature* Teron = (Unit::GetCreature((*me), TeronGUID)); +                    Creature* Teron = (ObjectAccessor::GetCreature((*me), TeronGUID));                      if ((Teron) && (!Teron->IsAlive() || Teron->IsInEvadeMode()))                          Despawn();                  } @@ -177,7 +177,7 @@ public:              std::list<Unit*> targets;              for (; itr != threatlist.end(); ++itr)              { -                Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                  if (unit && unit->IsAlive())                      targets.push_back(unit);              } @@ -200,7 +200,7 @@ public:              if (CheckTeronTimer <= diff)              { -                Creature* Teron = (Unit::GetCreature((*me), TeronGUID)); +                Creature* Teron = (ObjectAccessor::GetCreature((*me), TeronGUID));                  if (!Teron || !Teron->IsAlive() || Teron->IsInEvadeMode())                      me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); @@ -324,7 +324,7 @@ public:              ThreatContainer::StorageType::const_iterator i = threatlist.begin();              for (i = threatlist.begin(); i != threatlist.end(); ++i)              { -                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                  if (unit && unit->IsAlive())                  {                      float threat = DoGetThreat(unit); @@ -344,7 +344,7 @@ public:              Unit* ghost = NULL;              if (GhostGUID) -                ghost = Unit::GetUnit(*me, GhostGUID); +                ghost = ObjectAccessor::GetUnit(*me, GhostGUID);              if (ghost && ghost->IsAlive() && ghost->HasAura(SPELL_SHADOW_OF_DEATH))              {                  /*float x, y, z; @@ -391,7 +391,7 @@ public:                      Done = true;                      if (AggroTargetGUID)                      { -                        Unit* unit = Unit::GetUnit(*me, AggroTargetGUID); +                        Unit* unit = ObjectAccessor::GetUnit(*me, AggroTargetGUID);                          if (unit)                              AttackStart(unit); diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index 5228f891294..2362f534b05 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -141,7 +141,7 @@ public:              if (!SpineTargetGUID)                  return false; -            Unit* target = Unit::GetUnit(*me, SpineTargetGUID); +            Unit* target = ObjectAccessor::GetUnit(*me, SpineTargetGUID);              if (target && target->HasAura(SPELL_IMPALING_SPINE))                  target->RemoveAurasDueToSpell(SPELL_IMPALING_SPINE);              SpineTargetGUID=0; diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 4a4addd253e..8fd9a421a49 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -182,7 +182,7 @@ public:              {                  if (AggroYellTimer <= diff)              { -                if (Creature* pMember = Creature::GetCreature(*me, Council[YellCounter])) +                if (Creature* pMember = ObjectAccessor::GetCreature(*me, Council[YellCounter]))                  {                      pMember->AI()->Talk(CouncilAggro[YellCounter].entry);                      AggroYellTimer = CouncilAggro[YellCounter].timer; @@ -197,7 +197,7 @@ public:              {                  if (EnrageTimer <= diff)              { -                if (Creature* pMember = Creature::GetCreature(*me, Council[YellCounter])) +                if (Creature* pMember = ObjectAccessor::GetCreature(*me, Council[YellCounter]))                  {                      pMember->CastSpell(pMember, SPELL_BERSERK, true);                      pMember->AI()->Talk(CouncilEnrage[YellCounter].entry); @@ -251,7 +251,7 @@ public:              Creature* pMember = NULL;              for (uint8 i = 0; i < 4; ++i)              { -                pMember = Unit::GetCreature((*me), Council[i]); +                pMember = ObjectAccessor::GetCreature((*me), Council[i]);                  if (!pMember)                      continue; @@ -330,7 +330,7 @@ public:                          return;                      } -                    Creature* pMember = (Unit::GetCreature(*me, Council[DeathCount])); +                    Creature* pMember = (ObjectAccessor::GetCreature(*me, Council[DeathCount]));                      if (pMember && pMember->IsAlive())                          pMember->DealDamage(pMember, pMember->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);                      ++DeathCount; @@ -347,7 +347,7 @@ public:                      {                          if (Council[i])                          { -                            if (Creature* Member = (Unit::GetCreature((*me), Council[i]))) +                            if (Creature* Member = (ObjectAccessor::GetCreature((*me), Council[i])))                              {                                  // This is the evade/death check.                                  if (Member->IsAlive() && !Member->GetVictim()) @@ -407,7 +407,7 @@ struct boss_illidari_councilAI : public ScriptedAI      {          for (uint8 i = 0; i < 4; ++i)          { -            if (Unit* unit = Unit::GetUnit(*me, Council[i])) +            if (Unit* unit = ObjectAccessor::GetUnit(*me, Council[i]))                  if (unit != me && unit->GetVictim())                  {                      AttackStart(unit->GetVictim()); @@ -425,7 +425,7 @@ struct boss_illidari_councilAI : public ScriptedAI          damage /= 4;          for (uint8 i = 0; i < 4; ++i)          { -            if (Creature* unit = Unit::GetCreature(*me, Council[i])) +            if (Creature* unit = ObjectAccessor::GetCreature(*me, Council[i]))                  if (unit != me && damage < unit->GetHealth())                  {                      unit->ModifyHealth(-int32(damage)); @@ -493,7 +493,7 @@ public:                  member = urand(1, 3);              if (member != 2)                                     // No need to create another pointer to us using Unit::GetUnit -                unit = Unit::GetUnit(*me, Council[member]); +                unit = ObjectAccessor::GetUnit(*me, Council[member]);              return unit;          } @@ -507,7 +507,7 @@ public:              }              for (uint8 i = 0; i < 4; ++i)              { -                Unit* unit = Unit::GetUnit(*me, Council[i]); +                Unit* unit = ObjectAccessor::GetUnit(*me, Council[i]);                  if (unit)                      unit->CastSpell(unit, spellid, true, 0, 0, me->GetGUID());              } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp index 6d43b0e910c..c6b62ee8de7 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -216,7 +216,7 @@ public:              //Only if not incombat check if the event is started              if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT))              { -                if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) +                if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))                  {                      AttackStart(target);                      GetAdvisors(); @@ -357,7 +357,7 @@ public:              //Only if not incombat check if the event is started              if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT))              { -                if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) +                if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))                      AttackStart(target);              } @@ -484,7 +484,7 @@ public:              //Only if not incombat check if the event is started              if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT))              { -                if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) +                if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))                      AttackStart(target);              } @@ -515,7 +515,7 @@ public:              if (Spitfire_Timer <= diff)              {                  DoCast(me, SPELL_SPITFIRE_TOTEM); -                if (Unit* SpitfireTotem = Unit::GetUnit(*me, CREATURE_SPITFIRE_TOTEM)) +                if (Unit* SpitfireTotem = ObjectAccessor::GetUnit(*me, CREATURE_SPITFIRE_TOTEM))                      SpitfireTotem->ToCreature()->AI()->AttackStart(me->GetVictim());                  Spitfire_Timer = 60000; @@ -599,7 +599,7 @@ public:              //Only if not incombat check if the event is started              if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT))              { -                if (Unit* target = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) +                if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER)))                      AttackStart(target);              } @@ -675,13 +675,13 @@ public:              switch (rand()%4)              {              case 0: -                unit = Unit::GetUnit(*me, instance->GetData64(DATA_KARATHRESS)); +                unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESS));                  break;              case 1: -                unit = Unit::GetUnit(*me, instance->GetData64(DATA_SHARKKIS)); +                unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SHARKKIS));                  break;              case 2: -                unit = Unit::GetUnit(*me, instance->GetData64(DATA_TIDALVESS)); +                unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_TIDALVESS));                  break;              case 3:                  unit = me; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp index c4d21d30328..bcde75584fb 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_hydross_the_unstable.cpp @@ -162,7 +162,7 @@ public:          {              for (uint8 i = 0; i < 2; ++i)              { -                if (Creature* mob = Unit::GetCreature(*me, beams[i])) +                if (Creature* mob = ObjectAccessor::GetCreature(*me, beams[i]))                  {                      mob->setDeathState(DEAD);                      mob->RemoveCorpse(); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp index dbf0c419fad..0745a85bf02 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -207,7 +207,7 @@ public:              {                  if (ShieldGeneratorChannel[i])                  { -                    if (Unit* remo = Unit::GetUnit(*me, ShieldGeneratorChannel[i])) +                    if (Unit* remo = ObjectAccessor::GetUnit(*me, ShieldGeneratorChannel[i]))                      {                          remo->setDeathState(JUST_DIED);                          ShieldGeneratorChannel[i] = 0; @@ -431,7 +431,7 @@ public:                      std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();                      for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)                      { -                        Unit* target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                        Unit* target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                          if (target && target->IsWithinDistInMap(me, 5)) // if in melee range                          {                              inMeleeRange = true; @@ -620,7 +620,7 @@ public:                      if (me->IsWithinDist3d(MIDDLE_X, MIDDLE_Y, MIDDLE_Z, 3))                          DoCast(me, SPELL_SURGE);                  } -                if (Creature* vashj = Unit::GetCreature(*me, VashjGUID)) +                if (Creature* vashj = ObjectAccessor::GetCreature(*me, VashjGUID))                      if (!vashj->IsInCombat() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase != 2 || vashj->isDead())                          me->Kill(me);                  Move = 1000; @@ -662,7 +662,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            if (Creature* vashj = Unit::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ))) +            if (Creature* vashj = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ)))                  CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->EventTaintedElementalDeath();          } @@ -778,7 +778,7 @@ public:              if (CheckTimer <= diff)              {                  // check if vashj is death -                Unit* Vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); +                Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));                  if (!Vashj || !Vashj->IsAlive() || CAST_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3)                  {                      // remove @@ -833,7 +833,7 @@ public:          {              if (CheckTimer <= diff)              { -                Unit* vashj = Unit::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); +                Unit* vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ));                  if (vashj && vashj->IsAlive())                  { @@ -865,7 +865,7 @@ public:              return true;          } -        Creature* vashj = Unit::GetCreature((*player), instance->GetData64(DATA_LADYVASHJ)); +        Creature* vashj = ObjectAccessor::GetCreature((*player), instance->GetData64(DATA_LADYVASHJ));          if (vashj && (CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase == 2))          {              if (GameObject* gObj = targets.GetGOTarget()) @@ -901,7 +901,7 @@ public:                  }                  // get and remove channel -                if (Unit* channel = Unit::GetCreature(*vashj, CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->ShieldGeneratorChannel[channelIdentifier])) +                if (Unit* channel = ObjectAccessor::GetCreature(*vashj, CAST_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->ShieldGeneratorChannel[channelIdentifier]))                      channel->setDeathState(JUST_DIED); // call Unsummon()                  instance->SetData(identifier, 1); diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp index 462babdc597..cc09952d336 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_leotheras_the_blind.cpp @@ -112,7 +112,7 @@ public:          void JustDied(Unit* /*killer*/) override          { -            Unit* unit = Unit::GetUnit(*me, victimGUID); +            Unit* unit = ObjectAccessor::GetUnit(*me, victimGUID);              if (unit && unit->HasAura(SPELL_INSIDIOUS_WHISPER))                  unit->RemoveAurasDueToSpell(SPELL_INSIDIOUS_WHISPER);          } @@ -141,7 +141,7 @@ public:              if (me->EnsureVictim()->GetGUID() != victimGUID)              {                  DoModifyThreatPercent(me->GetVictim(), -100); -                Unit* owner = Unit::GetUnit(*me, victimGUID); +                Unit* owner = ObjectAccessor::GetUnit(*me, victimGUID);                  if (owner && owner->IsAlive())                  {                      me->AddThreat(owner, 999999); @@ -249,7 +249,7 @@ public:          {              for (uint8 i = 0; i < 3; ++i)              { -                if (Creature* add = Unit::GetCreature(*me, SpellBinderGUID[i])) +                if (Creature* add = ObjectAccessor::GetCreature(*me, SpellBinderGUID[i]))                      add->DisappearAndDie();                  float nx = x; @@ -297,7 +297,7 @@ public:              uint8 AliveChannelers = 0;              for (uint8 i = 0; i < 3; ++i)              { -                Unit* add = Unit::GetUnit(*me, SpellBinderGUID[i]); +                Unit* add = ObjectAccessor::GetUnit(*me, SpellBinderGUID[i]);                  if (add && add->IsAlive())                      ++AliveChannelers;              } @@ -350,7 +350,7 @@ public:                  if (InnderDemon[i])                  {                          //delete creature -                        Creature* creature = Unit::GetCreature((*me), InnderDemon[i]); +                        Creature* creature = ObjectAccessor::GetCreature((*me), InnderDemon[i]);                          if (creature && creature->IsAlive())                          {                              creature->DespawnOrUnsummon(); @@ -368,10 +368,10 @@ public:              {                  if (InnderDemon[i] > 0)                  { -                    Creature* unit = Unit::GetCreature((*me), InnderDemon[i]); +                    Creature* unit = ObjectAccessor::GetCreature((*me), InnderDemon[i]);                      if (unit && unit->IsAlive())                      { -                        Unit* unit_target = Unit::GetUnit(*unit, unit->AI()->GetGUID(INNER_DEMON_VICTIM)); +                        Unit* unit_target = ObjectAccessor::GetUnit(*unit, unit->AI()->GetGUID(INNER_DEMON_VICTIM));                          if (unit_target && unit_target->IsAlive())                          {                              unit->CastSpell(unit_target, SPELL_CONSUMING_MADNESS, true); @@ -397,7 +397,7 @@ public:              //despawn copy              if (Demon)              { -                if (Creature* pDemon = Unit::GetCreature(*me, Demon)) +                if (Creature* pDemon = ObjectAccessor::GetCreature(*me, Demon))                      pDemon->DespawnOrUnsummon();              }              instance->SetData(DATA_LEOTHERASTHEBLINDEVENT, DONE); @@ -518,7 +518,7 @@ public:                      std::vector<Unit*> TargetList;                      for (ThreatContainer::StorageType::const_iterator itr = ThreatList.begin(); itr != ThreatList.end(); ++itr)                      { -                        Unit* tempTarget = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                        Unit* tempTarget = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                          if (tempTarget && tempTarget->GetTypeId() == TYPEID_PLAYER && tempTarget->GetGUID() != me->EnsureVictim()->GetGUID() && TargetList.size()<5)                              TargetList.push_back(tempTarget);                      } @@ -701,7 +701,7 @@ public:              Earthshock_Timer = urand(5000, 10000);              instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0); -            Creature* leotheras = Unit::GetCreature(*me, leotherasGUID); +            Creature* leotheras = ObjectAccessor::GetCreature(*me, leotherasGUID);              if (leotheras && leotheras->IsAlive())                  CAST_AI(boss_leotheras_the_blind::boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(/*false*/);          } @@ -724,7 +724,7 @@ public:              {                  if (leotherasGUID)                  { -                    Creature* leotheras = Unit::GetCreature(*me, leotherasGUID); +                    Creature* leotheras = ObjectAccessor::GetCreature(*me, leotherasGUID);                      if (leotheras && leotheras->IsAlive())                          DoCast(leotheras, BANISH_BEAM);                  } @@ -739,7 +739,7 @@ public:              if (!me->IsInCombat() && instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER))              {                  Unit* victim = NULL; -                victim = Unit::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)); +                victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER));                  if (victim)                      AttackStart(victim);              } diff --git a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp index 4f8c9390ba4..7e37c22565a 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/TheUnderbog/boss_the_black_stalker.cpp @@ -98,7 +98,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              for (std::list<uint64>::const_iterator i = Striders.begin(); i != Striders.end(); ++i) -                if (Creature* strider = Unit::GetCreature(*me, *i)) +                if (Creature* strider = ObjectAccessor::GetCreature(*me, *i))                      strider->DisappearAndDie();          } @@ -132,7 +132,7 @@ public:              {                  if (LevitatedTarget_Timer <= diff)                  { -                    if (Unit* target = Unit::GetUnit(*me, LevitatedTarget)) +                    if (Unit* target = ObjectAccessor::GetUnit(*me, LevitatedTarget))                      {                          if (!target->HasAura(SPELL_LEVITATE))                          { diff --git a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp index c1e9d0a2b91..89aad2534f0 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp @@ -530,7 +530,7 @@ public:                  std::vector<Unit*> target_list;                  for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)                  { -                    target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                    target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                                                                  //15 yard radius minimum                      if (target && target->IsWithinDist(me, 15, false))                          target_list.push_back(target); 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 066772cb0f7..c85a26a25ab 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 @@ -118,7 +118,7 @@ class boss_kelidan_the_breaker : public CreatureScript                  }                  for (uint8 i=0; i<5; ++i)                  { -                    Creature* channeler = Unit::GetCreature(*me, Channelers[i]); +                    Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]);                      if (who && channeler && !channeler->IsInCombat())                          channeler->AI()->AttackStart(who);                  } @@ -128,7 +128,7 @@ class boss_kelidan_the_breaker : public CreatureScript              {                  for (uint8 i=0; i<5; ++i)                  { -                    Creature* channeler = Unit::GetCreature(*me, Channelers[i]); +                    Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]);                      if (channeler && channeler->IsAlive())                          return;                  } @@ -147,7 +147,7 @@ class boss_kelidan_the_breaker : public CreatureScript                  uint8 i;                  for (i=0; i<5; ++i)                  { -                    Creature* channeler = Unit::GetCreature(*me, Channelers[i]); +                    Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]);                      if (channeler && channeler->GetGUID() == channeler1->GetGUID())                          break;                  } @@ -158,7 +158,7 @@ class boss_kelidan_the_breaker : public CreatureScript              {                  for (uint8 i=0; i<5; ++i)                  { -                    Creature* channeler = Unit::GetCreature(*me, Channelers[i]); +                    Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]);                      if (!channeler || channeler->isDead())                          channeler = me->SummonCreature(ENTRY_CHANNELER, ShadowmoonChannelers[i][0], ShadowmoonChannelers[i][1], ShadowmoonChannelers[i][2], ShadowmoonChannelers[i][3], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 300000);                      if (channeler) @@ -313,7 +313,7 @@ class npc_shadowmoon_channeler : public CreatureScript                              if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100))                              {                                  uint64 channeler = CAST_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(me); -                                if (Unit* channeled = Unit::GetUnit(*me, channeler)) +                                if (Unit* channeled = ObjectAccessor::GetUnit(*me, channeler))                                      DoCast(channeled, SPELL_CHANNELING);                              }                          check_Timer = 5000; 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 424090c87d0..b15bd18c97c 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 @@ -124,7 +124,7 @@ class boss_nazan : public CreatureScript                  if (flight) // phase 1 - the flight                  { -                    Creature* Vazruden = Unit::GetCreature(*me, VazrudenGUID); +                    Creature* Vazruden = ObjectAccessor::GetCreature(*me, VazrudenGUID);                      if (Fly_Timer < diff || !(Vazruden && Vazruden->IsAlive() && Vazruden->HealthAbovePct(20)))                      {                          flight = false; @@ -300,7 +300,7 @@ class boss_vazruden_the_herald : public CreatureScript              {                  if (summoned)                  { -                    Creature* Nazan = Unit::GetCreature(*me, NazanGUID); +                    Creature* Nazan = ObjectAccessor::GetCreature(*me, NazanGUID);                      if (!Nazan)                          Nazan = me->FindNearestCreature(NPC_NAZAN, 5000);                      if (Nazan) @@ -309,7 +309,7 @@ class boss_vazruden_the_herald : public CreatureScript                          NazanGUID = 0;                      } -                    Creature* Vazruden = Unit::GetCreature(*me, VazrudenGUID); +                    Creature* Vazruden = ObjectAccessor::GetCreature(*me, VazrudenGUID);                      if (!Vazruden)                          Vazruden = me->FindNearestCreature(NPC_VAZRUDEN, 5000);                      if (Vazruden) @@ -404,8 +404,8 @@ class boss_vazruden_the_herald : public CreatureScript                  default: // adds do the job now                      if (check <= diff)                      { -                        Creature* Nazan = Unit::GetCreature(*me, NazanGUID); -                        Creature* Vazruden = Unit::GetCreature(*me, VazrudenGUID); +                        Creature* Nazan = ObjectAccessor::GetCreature(*me, NazanGUID); +                        Creature* Vazruden = ObjectAccessor::GetCreature(*me, VazrudenGUID);                          if ((Nazan && Nazan->IsAlive()) || (Vazruden && Vazruden->IsAlive()))                          {                              if ((Nazan && Nazan->GetVictim()) || (Vazruden && Vazruden->GetVictim())) diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index 91aad3c00eb..1bdaf4fc260 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -257,7 +257,7 @@ class boss_magtheridon : public CreatureScript              {                  // to avoid multiclicks from 1 cube                  if (uint64 guid = Cube[cubeGUID]) -                    DebuffClicker(Unit::GetUnit(*me, guid)); +                    DebuffClicker(ObjectAccessor::GetUnit(*me, guid));                  Cube[cubeGUID] = clickerGUID;                  NeedCheckCube = true;              } @@ -280,7 +280,7 @@ class boss_magtheridon : public CreatureScript                  // if not - apply mind exhaustion and delete from clicker's list                  for (CubeMap::iterator i = Cube.begin(); i != Cube.end(); ++i)                  { -                    Unit* clicker = Unit::GetUnit(*me, (*i).second); +                    Unit* clicker = ObjectAccessor::GetUnit(*me, (*i).second);                      if (!clicker || !clicker->HasAura(SPELL_SHADOW_GRASP))                      {                          DebuffClicker(clicker); @@ -588,7 +588,7 @@ public:          if (instance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS)              return true; -        Creature* Magtheridon =Unit::GetCreature(*go, instance->GetData64(DATA_MAGTHERIDON)); +        Creature* Magtheridon =ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_MAGTHERIDON));          if (!Magtheridon || !Magtheridon->IsAlive())              return true; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index 187e5b4993b..88c3041b62c 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp @@ -323,7 +323,7 @@ class npc_fel_orc_convert : public CreatureScript              {                  events.ScheduleEvent(EVENT_HEMORRHAGE, 3000); -                if (Creature* Kurse = Unit::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) +                if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE)))                      if (me->IsWithinDist(Kurse, 45.0f))                          Kurse->AI()->SetData(SETDATA_DATA, SETDATA_PEON_AGGRO);              } @@ -333,7 +333,7 @@ class npc_fel_orc_convert : public CreatureScript                  if (instance->GetBossState(DATA_NETHEKURSE) != IN_PROGRESS)                      return; -                if (Creature* Kurse = Unit::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) +                if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE)))                      Kurse->AI()->SetData(SETDATA_DATA, SETDATA_PEON_DEATH);              } diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp index 69be4b46eff..b03fc651e12 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -142,13 +142,13 @@ class boss_warbringer_omrogg : public CreatureScript              void Reset() override              { -                if (Unit* LeftHead  = Unit::GetUnit(*me, LeftHeadGUID)) +                if (Unit* LeftHead  = ObjectAccessor::GetUnit(*me, LeftHeadGUID))                  {                      LeftHead->setDeathState(JUST_DIED);                      LeftHeadGUID = 0;                  } -                if (Unit* RightHead  = Unit::GetUnit(*me, RightHeadGUID)) +                if (Unit* RightHead  = ObjectAccessor::GetUnit(*me, RightHeadGUID))                  {                      RightHead->setDeathState(JUST_DIED);                      RightHeadGUID = 0; @@ -172,8 +172,8 @@ class boss_warbringer_omrogg : public CreatureScript              void DoYellForThreat()              { -                Creature* LeftHead  = Creature::GetCreature(*me, LeftHeadGUID); -                Creature* RightHead = Unit::GetCreature(*me, RightHeadGUID); +                Creature* LeftHead  = ObjectAccessor::GetCreature(*me, LeftHeadGUID); +                Creature* RightHead = ObjectAccessor::GetCreature(*me, RightHeadGUID);                  if (!LeftHead || !RightHead)                      return; @@ -193,7 +193,7 @@ class boss_warbringer_omrogg : public CreatureScript                  me->SummonCreature(NPC_LEFT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0);                  me->SummonCreature(NPC_RIGHT_HEAD, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_DEAD_DESPAWN, 0); -                if (Creature* LeftHead = Creature::GetCreature(*me, LeftHeadGUID)) +                if (Creature* LeftHead = ObjectAccessor::GetCreature(*me, LeftHeadGUID))                  {                      iaggro = rand()%3; @@ -221,8 +221,8 @@ class boss_warbringer_omrogg : public CreatureScript              void KilledUnit(Unit* /*victim*/) override              { -                Creature* LeftHead  = Creature::GetCreature(*me, LeftHeadGUID); -                Creature* RightHead = Creature::GetCreature(*me, RightHeadGUID); +                Creature* LeftHead  = ObjectAccessor::GetCreature(*me, LeftHeadGUID); +                Creature* RightHead = ObjectAccessor::GetCreature(*me, RightHeadGUID);                  if (!LeftHead || !RightHead)                      return; @@ -247,8 +247,8 @@ class boss_warbringer_omrogg : public CreatureScript              void JustDied(Unit* /*killer*/) override              { -                Creature* LeftHead  = Creature::GetCreature(*me, LeftHeadGUID); -                Creature* RightHead = Creature::GetCreature(*me, RightHeadGUID); +                Creature* LeftHead  = ObjectAccessor::GetCreature(*me, LeftHeadGUID); +                Creature* RightHead = ObjectAccessor::GetCreature(*me, RightHeadGUID);                  if (!LeftHead || !RightHead)                      return; @@ -266,8 +266,8 @@ class boss_warbringer_omrogg : public CreatureScript                  {                      Delay_Timer = 3500; -                    Creature* LeftHead  = Creature::GetCreature(*me, LeftHeadGUID); -                    Creature* RightHead = Creature::GetCreature(*me, RightHeadGUID); +                    Creature* LeftHead  = ObjectAccessor::GetCreature(*me, LeftHeadGUID); +                    Creature* RightHead = ObjectAccessor::GetCreature(*me, RightHeadGUID);                      if (!LeftHead || !RightHead)                          return; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp index f918038b369..66aa02bbeaf 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warchief_kargath_bladefist.cpp @@ -145,7 +145,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript              {                  for (std::vector<uint64>::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr)                  { -                    Creature* creature = Unit::GetCreature(*me, *itr); +                    Creature* creature = ObjectAccessor::GetCreature(*me, *itr);                      if (creature && creature->IsAlive())                      {                          creature->GetMotionMaster()->Clear(true); @@ -157,7 +157,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript                  for (std::vector<uint64>::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr)                  { -                    Creature* creature = Unit::GetCreature(*me, *itr); +                    Creature* creature = ObjectAccessor::GetCreature(*me, *itr);                      if (creature && creature->IsAlive())                      {                          creature->GetMotionMaster()->Clear(true); diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp index ead163b3a82..bcc8b0c5a48 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp @@ -494,7 +494,7 @@ class npc_ember_of_alar : public CreatureScript                      me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                      if (instance->GetData(DATA_ALAREVENT) == 2)                      { -                        if (Unit* Alar = Unit::GetUnit(*me, instance->GetData64(DATA_ALAR))) +                        if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALAR)))                          {                              int32 AlarHealth = int32(Alar->GetHealth()) - int32(Alar->CountPctFromMaxHealth(3));                              if (AlarHealth > 0) diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp index 5f92445f9dd..2cac4a0be1a 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_astromancer.cpp @@ -464,7 +464,7 @@ class npc_solarium_priest : public CreatureScript                      switch (urand(0, 1))                      {                          case 0: -                            target = Unit::GetUnit(*me, instance->GetData64(DATA_ASTROMANCER)); +                            target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ASTROMANCER));                              break;                          case 1:                              target = me; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp index 016e68a4e8d..a24e1d5d34f 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -143,7 +143,7 @@ uint32 m_auiSpellSummonWeapon[]=  };  const float CAPERNIAN_DISTANCE          = 20.0f;            //she casts away from the target -const float KAEL_VISIBLE_RANGE          = 50.0f; +//const float KAEL_VISIBLE_RANGE          = 50.0f;  const float afGravityPos[3]             = {795.0f, 0.0f, 70.0f}; @@ -183,7 +183,7 @@ struct advisorbase_ai : public ScriptedAI          //reset encounter          if (instance->GetData(DATA_KAELTHASEVENT) == 1 || instance->GetData(DATA_KAELTHASEVENT) == 3) -            if (Creature* Kaelthas = Unit::GetCreature(*me, instance->GetData64(DATA_KAELTHAS))) +            if (Creature* Kaelthas = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KAELTHAS)))                  Kaelthas->AI()->EnterEvadeMode();      } @@ -262,7 +262,7 @@ struct advisorbase_ai : public ScriptedAI                  DelayRes_Timer = 0;                  FakeDeath = false; -                Unit* Target = Unit::GetUnit(*me, DelayRes_Target); +                Unit* Target = ObjectAccessor::GetUnit(*me, DelayRes_Target);                  if (!Target)                      Target = me->GetVictim(); @@ -351,7 +351,7 @@ class boss_kaelthas : public CreatureScript              {                  for (uint8 i = 0; i < MAX_ADVISORS; ++i)                  { -                    if (Creature* creature = Unit::GetCreature(*me, m_auiAdvisorGuid[i])) +                    if (Creature* creature = ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[i]))                      {                          creature->Respawn();                          creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -468,7 +468,7 @@ class boss_kaelthas : public CreatureScript                  for (uint8 i = 0; i < MAX_ADVISORS; ++i)                  { -                    if (Unit* pAdvisor = Unit::GetUnit(*me, m_auiAdvisorGuid[i])) +                    if (Unit* pAdvisor = ObjectAccessor::GetUnit(*me, m_auiAdvisorGuid[i]))                          pAdvisor->Kill(pAdvisor);                  }              } @@ -502,7 +502,7 @@ class boss_kaelthas : public CreatureScript                              case 1:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0])); +                                    Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[0]));                                      if (Advisor)                                      { @@ -520,7 +520,7 @@ class boss_kaelthas : public CreatureScript                              //Subphase 2 - Start                              case 2: -                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[0])); +                                Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[0]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -536,7 +536,7 @@ class boss_kaelthas : public CreatureScript                              case 3:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1])); +                                    Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[1]));                                      if (Advisor)                                      { @@ -554,7 +554,7 @@ class boss_kaelthas : public CreatureScript                              //Subphase 3 - Start                              case 4: -                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[1])); +                                Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[1]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -570,7 +570,7 @@ class boss_kaelthas : public CreatureScript                              case 5:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2])); +                                    Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[2]));                                      if (Advisor)                                      { @@ -588,7 +588,7 @@ class boss_kaelthas : public CreatureScript                              //Subphase 4 - Start                              case 6: -                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[2])); +                                Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[2]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -604,7 +604,7 @@ class boss_kaelthas : public CreatureScript                              case 7:                                  if (Phase_Timer <= diff)                                  { -                                    Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3])); +                                    Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[3]));                                      if (Advisor)                                      { @@ -623,7 +623,7 @@ class boss_kaelthas : public CreatureScript                              //End of phase 1                              case 8: -                                Advisor = (Unit::GetCreature(*me, m_auiAdvisorGuid[3])); +                                Advisor = (ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[3]));                                  if (Advisor && (Advisor->getStandState() == UNIT_STAND_STATE_DEAD))                                  { @@ -692,7 +692,7 @@ class boss_kaelthas : public CreatureScript                              Creature* Advisor;                              for (uint8 i = 0; i < MAX_ADVISORS; ++i)                              { -                                Advisor = Unit::GetCreature(*me, m_auiAdvisorGuid[i]); +                                Advisor = ObjectAccessor::GetCreature(*me, m_auiAdvisorGuid[i]);                                  if (!Advisor)                                      TC_LOG_ERROR("scripts", "SD2: Kael'Thas Advisor %u does not exist. Possibly despawned? Incorrectly Killed?", i); @@ -896,7 +896,7 @@ class boss_kaelthas : public CreatureScript                                          // 1) Kael'thas will portal the whole raid right into his body                                          for (i = threatlist.begin(); i != threatlist.end(); ++i)                                          { -                                            Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                                            Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                                              if (unit && (unit->GetTypeId() == TYPEID_PLAYER))                                              {                                                  //Use work around packet to prevent player from being dropped from combat @@ -917,7 +917,7 @@ class boss_kaelthas : public CreatureScript                                          // 2) At that point he will put a Gravity Lapse debuff on everyone                                          for (i = threatlist.begin(); i != threatlist.end(); ++i)                                          { -                                            if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) +                                            if (Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid()))                                              {                                                  DoCast(unit, SPELL_KNOCKBACK, true);                                                  //Gravity lapse - needs an exception in Spell system to work @@ -949,7 +949,7 @@ class boss_kaelthas : public CreatureScript                                          //Remove flight                                          for (i = threatlist.begin(); i != threatlist.end(); ++i)                                          { -                                            if (Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid())) +                                            if (Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid()))                                              {                                                  //Using packet workaround                                                  WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12); @@ -1288,7 +1288,7 @@ class boss_grand_astromancer_capernian : public CreatureScript                      ThreatContainer::StorageType const &threatlist = me->getThreatManager().getThreatList();                      for (ThreatContainer::StorageType::const_iterator i = threatlist.begin(); i!= threatlist.end(); ++i)                      { -                        Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid()); +                        Unit* unit = ObjectAccessor::GetUnit(*me, (*i)->getUnitGuid());                                                                      //if in melee range                          if (unit && unit->IsWithinDistInMap(me, 5))                          { diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp index 58b5972c25c..634d54ed58b 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -122,7 +122,7 @@ class boss_void_reaver : public CreatureScript                      std::vector<Unit*> target_list;                      for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)                      { -                        target = Unit::GetUnit(*me, (*itr)->getUnitGuid()); +                        target = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid());                          if (!target)                              continue;                          // exclude pets & totems, 18 yard radius minimum diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp index 53727db2f4b..2c15a6dd30d 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_high_botanist_freywinn.cpp @@ -151,7 +151,7 @@ class boss_high_botanist_freywinn : public CreatureScript                          {                              for (std::list<uint64>::iterator itr = Adds_List.begin(); itr != Adds_List.end(); ++itr)                              { -                                if (Unit* temp = Unit::GetUnit(*me, *itr)) +                                if (Unit* temp = ObjectAccessor::GetUnit(*me, *itr))                                  {                                      if (!temp->IsAlive())                                      { diff --git a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp index c9dd31cdc76..a1335290d5a 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp @@ -97,7 +97,7 @@ class npc_warp_splinter_treant : public CreatureScript                  {                      if (WarpGuid && check_Timer <= diff)                      { -                        if (Unit* Warp = Unit::GetUnit(*me, WarpGuid)) +                        if (Unit* Warp = ObjectAccessor::GetUnit(*me, WarpGuid))                          {                              if (me->IsWithinMeleeRange(Warp, 2.5f))                              { diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index 7b9b2be4674..0da70207a04 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -318,7 +318,7 @@ public:              if (type != POINT_MOTION_TYPE || id != 1)                  return; -            if (Creature* helboar = me->GetCreature(*me, helboarGUID)) +            if (Creature* helboar = ObjectAccessor::GetCreature(*me, helboarGUID))              {                  helboar->RemoveCorpse();                  DoCast(SPELL_SUMMON_POO); diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp index 8fac7853f26..cb75ee3b2ad 100644 --- a/src/server/scripts/Outland/zone_netherstorm.cpp +++ b/src/server/scripts/Outland/zone_netherstorm.cpp @@ -243,7 +243,7 @@ public:                      case 1:                          if (someplayer)                          { -                            Unit* u = Unit::GetUnit(*me, someplayer); +                            Unit* u = ObjectAccessor::GetUnit(*me, someplayer);                              if (u && u->GetTypeId() == TYPEID_PLAYER)                                  Talk(EMOTE_START, u);                          } @@ -795,7 +795,7 @@ public:                  for (std::list<HostileReference*>::const_iterator itr = AggroList.begin(); itr != AggroList.end(); ++itr)                  { -                    if (Unit* unit = Unit::GetUnit(*me, (*itr)->getUnitGuid())) +                    if (Unit* unit = ObjectAccessor::GetUnit(*me, (*itr)->getUnitGuid()))                      {                          if (unit->GetCreateMana() > 0)                              UnitsWithMana.push_back(unit); diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index 4efa108429a..116beb3d081 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -133,7 +133,7 @@ public:                  {                      if (bCanEat && !bIsEating)                      { -                        if (Unit* unit = Unit::GetUnit(*me, uiPlayerGUID)) +                        if (Unit* unit = ObjectAccessor::GetUnit(*me, uiPlayerGUID))                          {                              if (GameObject* go = unit->FindNearestGameObject(GO_CARCASS, 10))                              { @@ -273,7 +273,7 @@ public:              {                  if (PlayerGUID)                  { -                    Unit* player = Unit::GetUnit(*me, PlayerGUID); +                    Unit* player = ObjectAccessor::GetUnit(*me, PlayerGUID);                      if (player)                          DoCast(player, SPELL_FORCE_OF_NELTHARAKU, true); @@ -1225,7 +1225,7 @@ public:              if (TorlothAnim[AnimationCount].creature == 1)              { -                creature = (Unit::GetCreature(*me, LordIllidanGUID)); +                creature = (ObjectAccessor::GetCreature(*me, LordIllidanGUID));                  if (!creature)                      return; @@ -1326,7 +1326,7 @@ public:                      break;              } -            if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID))) +            if (Creature* LordIllidan = (ObjectAccessor::GetCreature(*me, LordIllidanGUID)))                  LordIllidan->AI()->EnterEvadeMode();          }      }; @@ -1507,7 +1507,7 @@ public:          void JustDied(Unit* /*killer*/) override          {              me->RemoveCorpse(); -            if (Creature* LordIllidan = (Unit::GetCreature(*me, LordIllidanGUID))) +            if (Creature* LordIllidan = (ObjectAccessor::GetCreature(*me, LordIllidanGUID)))                  if (LordIllidan)                      CAST_AI(npc_lord_illidan_stormrage::npc_lord_illidan_stormrageAI, LordIllidan->AI())->LiveCounter();          } @@ -1867,13 +1867,6 @@ public:      {          npc_shadowmoon_tuber_nodeAI(Creature* creature) : ScriptedAI(creature) { } -        void Reset() override -        { -            tapped = false; -            tuberGUID = 0; -            resetTimer = 60000; -        } -          void SetData(uint32 id, uint32 data) override          {              if (id == TYPE_BOAR && data == DATA_BOAR) @@ -1884,49 +1877,23 @@ public:                  // Despawn the tuber                  if (GameObject* tuber = me->FindNearestGameObject(GO_SHADOWMOON_TUBER_MOUND, 5.0f))                  { -                    tuberGUID = tuber->GetGUID(); -                    // @Workaround: find how to properly despawn the GO -                    tuber->SetPhaseMask(2, true); +                    tuber->SetLootState(GO_JUST_DEACTIVATED); +                    me->DespawnOrUnsummon();                  }              }          }          void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override          { -            if (!tapped && spell->Id == SPELL_WHISTLE) +            if (spell->Id == SPELL_WHISTLE)              {                  if (Creature* boar = me->FindNearestCreature(NPC_BOAR_ENTRY, 30.0f))                  { -                    // Disable trigger and force nearest boar to walk to him -                    tapped = true;                      boar->SetWalk(false);                      boar->GetMotionMaster()->MovePoint(POINT_TUBER, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ());                  }              }          } - -        void UpdateAI(uint32 diff) override -        { -            if (tapped) -            { -                if (resetTimer <= diff) -                { -                    // Respawn the tuber -                    if (tuberGUID) -                        if (GameObject* tuber = GameObject::GetGameObject(*me, tuberGUID)) -                        // @Workaround: find how to properly respawn the GO -                            tuber->SetPhaseMask(1, true); - -                    Reset(); -                } -                else -                    resetTimer -= diff; -            } -        } -    private: -        bool tapped; -        uint64 tuberGUID; -        uint32 resetTimer;      };      CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index a97c5b8c18f..0dd38c74fef 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -570,7 +570,7 @@ class spell_gen_break_shield: public SpellScriptLoader          class spell_gen_break_shield_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_break_shield_SpellScript) +            PrepareSpellScript(spell_gen_break_shield_SpellScript);              void HandleScriptEffect(SpellEffIndex effIndex)              { @@ -732,7 +732,7 @@ class spell_gen_chaos_blast : public SpellScriptLoader          class spell_gen_chaos_blast_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_chaos_blast_SpellScript) +            PrepareSpellScript(spell_gen_chaos_blast_SpellScript);              bool Validate(SpellInfo const* /*spellInfo*/) override              { @@ -969,7 +969,7 @@ class spell_gen_count_pct_from_max_hp : public SpellScriptLoader          class spell_gen_count_pct_from_max_hp_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_count_pct_from_max_hp_SpellScript) +            PrepareSpellScript(spell_gen_count_pct_from_max_hp_SpellScript);          public:              spell_gen_count_pct_from_max_hp_SpellScript(int32 damagePct) : SpellScript(), _damagePct(damagePct) { } @@ -1463,6 +1463,7 @@ class spell_gen_elune_candle : public SpellScriptLoader          class spell_gen_elune_candle_SpellScript : public SpellScript          {              PrepareSpellScript(spell_gen_elune_candle_SpellScript); +              bool Validate(SpellInfo const* /*spellInfo*/) override              {                  if (!sSpellMgr->GetSpellInfo(SPELL_ELUNE_CANDLE_OMEN_HEAD) || @@ -1528,7 +1529,7 @@ class spell_gen_gadgetzan_transporter_backfire : public SpellScriptLoader          class spell_gen_gadgetzan_transporter_backfire_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_gadgetzan_transporter_backfire_SpellScript) +            PrepareSpellScript(spell_gen_gadgetzan_transporter_backfire_SpellScript);              bool Validate(SpellInfo const* /*spellInfo*/) override              { @@ -1629,7 +1630,7 @@ class spell_gen_gnomish_transporter : public SpellScriptLoader          class spell_gen_gnomish_transporter_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_gnomish_transporter_SpellScript) +            PrepareSpellScript(spell_gen_gnomish_transporter_SpellScript);              bool Validate(SpellInfo const* /*spellInfo*/) override              { @@ -1926,7 +1927,7 @@ class spell_gen_mounted_charge: public SpellScriptLoader          class spell_gen_mounted_charge_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_mounted_charge_SpellScript) +            PrepareSpellScript(spell_gen_mounted_charge_SpellScript);              void HandleScriptEffect(SpellEffIndex effIndex)              { @@ -2627,7 +2628,7 @@ class spell_gen_parachute_ic : public SpellScriptLoader          class spell_gen_parachute_ic_AuraScript : public AuraScript          { -            PrepareAuraScript(spell_gen_parachute_ic_AuraScript) +            PrepareAuraScript(spell_gen_parachute_ic_AuraScript);              void HandleTriggerSpell(AuraEffect const* /*aurEff*/)              { @@ -2675,30 +2676,28 @@ class spell_gen_pet_summoned : public SpellScriptLoader                  if (player->GetLastPetNumber())                  {                      PetType newPetType = (player->getClass() == CLASS_HUNTER) ? HUNTER_PET : SUMMON_PET; -                    if (Pet* newPet = new Pet(player, newPetType)) +                    Pet* newPet = new Pet(player, newPetType); +                    if (newPet->LoadPetFromDB(player, 0, player->GetLastPetNumber(), true))                      { -                        if (newPet->LoadPetFromDB(player, 0, player->GetLastPetNumber(), true)) -                        { -                            // revive the pet if it is dead -                            if (newPet->getDeathState() == DEAD) -                                newPet->setDeathState(ALIVE); +                        // revive the pet if it is dead +                        if (newPet->getDeathState() == DEAD) +                            newPet->setDeathState(ALIVE); -                            newPet->SetFullHealth(); -                            newPet->SetPower(newPet->getPowerType(), newPet->GetMaxPower(newPet->getPowerType())); +                        newPet->SetFullHealth(); +                        newPet->SetPower(newPet->getPowerType(), newPet->GetMaxPower(newPet->getPowerType())); -                            switch (newPet->GetEntry()) -                            { -                                case NPC_DOOMGUARD: -                                case NPC_INFERNAL: -                                    newPet->SetEntry(NPC_IMP); -                                    break; -                                default: -                                    break; -                            } +                        switch (newPet->GetEntry()) +                        { +                            case NPC_DOOMGUARD: +                            case NPC_INFERNAL: +                                newPet->SetEntry(NPC_IMP); +                                break; +                            default: +                                break;                          } -                        else -                            delete newPet;                      } +                    else +                        delete newPet;                  }              } @@ -3110,7 +3109,7 @@ class spell_gen_spectator_cheer_trigger : public SpellScriptLoader          class spell_gen_spectator_cheer_trigger_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_spectator_cheer_trigger_SpellScript) +            PrepareSpellScript(spell_gen_spectator_cheer_trigger_SpellScript);              void HandleDummy(SpellEffIndex /*effIndex*/)              { @@ -3602,7 +3601,7 @@ class spell_gen_vendor_bark_trigger : public SpellScriptLoader          class spell_gen_vendor_bark_trigger_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_gen_vendor_bark_trigger_SpellScript) +            PrepareSpellScript(spell_gen_vendor_bark_trigger_SpellScript);              void HandleDummy(SpellEffIndex /* effIndex */)              { diff --git a/src/server/scripts/Spells/spell_holiday.cpp b/src/server/scripts/Spells/spell_holiday.cpp index dc0c70975dd..85bf85fa2d2 100644 --- a/src/server/scripts/Spells/spell_holiday.cpp +++ b/src/server/scripts/Spells/spell_holiday.cpp @@ -296,7 +296,7 @@ class spell_pilgrims_bounty_buff_food : public SpellScriptLoader          class spell_pilgrims_bounty_buff_food_AuraScript : public AuraScript          { -            PrepareAuraScript(spell_pilgrims_bounty_buff_food_AuraScript) +            PrepareAuraScript(spell_pilgrims_bounty_buff_food_AuraScript);          private:              uint32 const _triggeredSpellId; diff --git a/src/server/scripts/Spells/spell_hunter.cpp b/src/server/scripts/Spells/spell_hunter.cpp index e780b88c6be..eb03b47e6fe 100644 --- a/src/server/scripts/Spells/spell_hunter.cpp +++ b/src/server/scripts/Spells/spell_hunter.cpp @@ -842,15 +842,16 @@ class spell_hun_sniper_training : public SpellScriptLoader                  PreventDefaultAction();                  if (aurEff->GetAmount() <= 0)                  { -                    Unit* caster = GetCaster(); +                    Unit* target = GetTarget();                      uint32 spellId = SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 + GetId() - SPELL_HUNTER_SNIPER_TRAINING_R1; -                    if (Unit* target = GetTarget()) -                        if (!target->HasAura(spellId)) -                        { -                            SpellInfo const* triggeredSpellInfo = sSpellMgr->GetSpellInfo(spellId); -                            Unit* triggerCaster = triggeredSpellInfo->NeedsToBeTriggeredByCaster(GetSpellInfo()) ? caster : target; -                            triggerCaster->CastSpell(target, triggeredSpellInfo, true, 0, aurEff); -                        } + +                    target->CastSpell(target, spellId, true, 0, aurEff); +                    if (Player* playerTarget = GetUnitOwner()->ToPlayer()) +                    { +                        int32 baseAmount = aurEff->GetBaseAmount(); +                        int32 amount = playerTarget->CalculateSpellDamage(playerTarget, GetSpellInfo(), aurEff->GetEffIndex(), &baseAmount); +                        GetEffect(EFFECT_0)->SetAmount(amount); +                    }                  }              } diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index e4563ba07fe..c4a521ea41d 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -2231,7 +2231,8 @@ class spell_item_nitro_boots : public SpellScriptLoader              void HandleDummy(SpellEffIndex /* effIndex */)              {                  Unit* caster = GetCaster(); -                caster->CastSpell(caster, roll_chance_i(95) ? SPELL_NITRO_BOOTS_SUCCESS : SPELL_NITRO_BOOTS_BACKFIRE, true, GetCastItem()); +                bool success = caster->GetMap()->IsDungeon() || roll_chance_i(95); +                caster->CastSpell(caster, success ? SPELL_NITRO_BOOTS_SUCCESS : SPELL_NITRO_BOOTS_BACKFIRE, true, GetCastItem());              }              void Register() override diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index de82d1b9780..d804c0cfc8b 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -337,7 +337,7 @@ class spell_pri_divine_hymn : public SpellScriptLoader              void Register() override              { -                OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_divine_hymn_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY); +                OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_divine_hymn_SpellScript::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ALLY);              }          }; @@ -538,7 +538,7 @@ class spell_pri_hymn_of_hope : public SpellScriptLoader              void Register() override              { -                OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_hymn_of_hope_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_SRC_AREA_ALLY); +                OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_pri_hymn_of_hope_SpellScript::FilterTargets, EFFECT_ALL, TARGET_UNIT_SRC_AREA_ALLY);              }          }; diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index 013887234bf..bc568904b80 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -850,7 +850,7 @@ class spell_sha_lava_lash : public SpellScriptLoader          class spell_sha_lava_lash_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_sha_lava_lash_SpellScript) +            PrepareSpellScript(spell_sha_lava_lash_SpellScript);              bool Load() override              { @@ -927,7 +927,7 @@ class spell_sha_lava_surge_proc : public SpellScriptLoader          class spell_sha_lava_surge_proc_SpellScript : public SpellScript          { -            PrepareSpellScript(spell_sha_lava_surge_proc_SpellScript) +            PrepareSpellScript(spell_sha_lava_surge_proc_SpellScript);              bool Validate(SpellInfo const* /*spellInfo*/) override              { diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp index 73093037689..fb438c38efb 100644 --- a/src/server/scripts/World/areatrigger_scripts.cpp +++ b/src/server/scripts/World/areatrigger_scripts.cpp @@ -461,11 +461,11 @@ public:          if (player->GetQuestStatus(QUEST_THE_LONESOME_WATCHER) != QUEST_STATUS_INCOMPLETE)              return false; -        Creature* stormforgedMonitor = Creature::GetCreature(*player, stormforgedMonitorGUID); +        Creature* stormforgedMonitor = ObjectAccessor::GetCreature(*player, stormforgedMonitorGUID);          if (stormforgedMonitor)              return false; -        Creature* stormforgedEradictor = Creature::GetCreature(*player, stormforgedEradictorGUID); +        Creature* stormforgedEradictor = ObjectAccessor::GetCreature(*player, stormforgedEradictorGUID);          if (stormforgedEradictor)              return false; diff --git a/src/server/scripts/World/boss_emerald_dragons.cpp b/src/server/scripts/World/boss_emerald_dragons.cpp index 362c02e1af5..950b4cd10e9 100644 --- a/src/server/scripts/World/boss_emerald_dragons.cpp +++ b/src/server/scripts/World/boss_emerald_dragons.cpp @@ -781,4 +781,4 @@ void AddSC_emerald_dragons()      // dragon spellscripts      new spell_dream_fog_sleep();      new spell_mark_of_nature(); -}; +} diff --git a/src/server/scripts/World/guards.cpp b/src/server/scripts/World/guards.cpp index 416cab8efcd..21a81d37868 100644 --- a/src/server/scripts/World/guards.cpp +++ b/src/server/scripts/World/guards.cpp @@ -282,7 +282,7 @@ public:              {                  if (exileTimer <= diff)                  { -                    if (Unit* temp = Unit::GetUnit(*me, playerGUID)) +                    if (Unit* temp = ObjectAccessor::GetUnit(*me, playerGUID))                      {                          temp->CastSpell(temp, SPELL_EXILE, true);                          temp->CastSpell(temp, SPELL_BANISH_TELEPORT, true); @@ -347,7 +347,7 @@ public:              {                  if (exileTimer <= diff)                  { -                    if (Unit* temp = Unit::GetUnit(*me, playerGUID)) +                    if (Unit* temp = ObjectAccessor::GetUnit(*me, playerGUID))                      {                          temp->CastSpell(temp, SPELL_EXILE, true);                          temp->CastSpell(temp, SPELL_BANISH_TELEPORT, true); diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp index f9aa65c6b07..321c3d67dc5 100644 --- a/src/server/scripts/World/npcs_special.cpp +++ b/src/server/scripts/World/npcs_special.cpp @@ -56,6 +56,7 @@ EndContentData */  #include "CellImpl.h"  #include "SpellAuras.h"  #include "Pet.h" +#include "CreatureTextMgr.h"  /*########  # npc_air_force_bots @@ -175,7 +176,7 @@ public:          Creature* GetSummonedGuard()          { -            Creature* creature = Unit::GetCreature(*me, SpawnedGUID); +            Creature* creature = ObjectAccessor::GetCreature(*me, SpawnedGUID);              if (creature && creature->IsAlive())                  return creature; @@ -665,7 +666,7 @@ public:                              std::list<uint64>::const_iterator itr;                              for (itr = Patients.begin(); itr != Patients.end(); ++itr)                              { -                                if (Creature* patient = Unit::GetCreature((*me), *itr)) +                                if (Creature* patient = ObjectAccessor::GetCreature((*me), *itr))                                      patient->setDeathState(JUST_DIED);                              }                          } @@ -762,7 +763,7 @@ public:              if (player->GetQuestStatus(6624) == QUEST_STATUS_INCOMPLETE || player->GetQuestStatus(6622) == QUEST_STATUS_INCOMPLETE)                  if (DoctorGUID) -                    if (Creature* doctor = Unit::GetCreature(*me, DoctorGUID)) +                    if (Creature* doctor = ObjectAccessor::GetCreature(*me, DoctorGUID))                          CAST_AI(npc_doctor::npc_doctorAI, doctor->AI())->PatientSaved(me, player, Coord);              //make not selectable @@ -808,7 +809,7 @@ public:                  me->SetFlag(UNIT_DYNAMIC_FLAGS, 32);                  if (DoctorGUID) -                    if (Creature* doctor = Unit::GetCreature((*me), DoctorGUID)) +                    if (Creature* doctor = ObjectAccessor::GetCreature((*me), DoctorGUID))                          CAST_AI(npc_doctor::npc_doctorAI, doctor->AI())->PatientDied(Coord);              }          } @@ -1058,7 +1059,7 @@ public:              {                  if (RunAwayTimer <= diff)                  { -                    if (Unit* unit = Unit::GetUnit(*me, CasterGUID)) +                    if (Unit* unit = ObjectAccessor::GetUnit(*me, CasterGUID))                      {                          switch (me->GetEntry())                          { @@ -1211,6 +1212,11 @@ public:                      player->SEND_GOSSIP_MENU(10239, creature->GetGUID());                  else canBuy = true;                  break; +            case 48510:                                         //Kall Worthaton +                if (player->GetReputationRank(1133) != REP_EXALTED && race != RACE_GOBLIN) +                    player->SEND_GOSSIP_MENU(17494, creature->GetGUID()); +                else canBuy = true; +                break;          }          if (canBuy) @@ -2312,7 +2318,7 @@ public:              {                  if (jumpTimer <= diff)                  { -                    if (Unit* rabbit = Unit::GetUnit(*me, rabbitGUID)) +                    if (Unit* rabbit = ObjectAccessor::GetUnit(*me, rabbitGUID))                          DoCast(rabbit, SPELL_SPRING_RABBIT_JUMP);                      jumpTimer = urand(5000, 10000);                  } else jumpTimer -= diff; @@ -2346,6 +2352,60 @@ public:      };  }; +class npc_imp_in_a_ball : public CreatureScript +{ +private: +    enum +    { +        SAY_RANDOM, + +        EVENT_TALK = 1, +    }; + +public: +    npc_imp_in_a_ball() : CreatureScript("npc_imp_in_a_ball") { } + +    struct npc_imp_in_a_ballAI : public ScriptedAI +    { +        npc_imp_in_a_ballAI(Creature* creature) : ScriptedAI(creature) +        { +            summonerGUID = 0; +        } + +        void IsSummonedBy(Unit* summoner) override +        { +            if (summoner->GetTypeId() == TYPEID_PLAYER) +            { +                summonerGUID = summoner->GetGUID(); +                events.ScheduleEvent(EVENT_TALK, 3000); +            } +        } + +        void UpdateAI(uint32 diff) override +        { +            events.Update(diff); + +            if (events.ExecuteEvent() == EVENT_TALK) +            { +                if (Player* owner = ObjectAccessor::GetPlayer(*me, summonerGUID)) +                { +                    sCreatureTextMgr->SendChat(me, SAY_RANDOM, owner, +                        owner->GetGroup() ? CHAT_MSG_MONSTER_PARTY : CHAT_MSG_MONSTER_WHISPER, LANG_ADDON, TEXT_RANGE_NORMAL); +                } +            } +        } + +    private: +        EventMap events; +        uint64 summonerGUID; +    }; + +    CreatureAI* GetAI(Creature* creature) const override +    { +        return new npc_imp_in_a_ballAI(creature); +    } +}; +  void AddSC_npcs_special()  {      new npc_air_force_bots(); @@ -2368,4 +2428,5 @@ void AddSC_npcs_special()      new npc_experience();      new npc_firework();      new npc_spring_rabbit(); +    new npc_imp_in_a_ball();  }  | 
