diff options
| author | Shauren <shauren.trinity@gmail.com> | 2014-09-16 21:50:01 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2014-09-16 21:50:01 +0200 |
| commit | 7d1d55124c1e289748d2afefae896c97f710e57b (patch) | |
| tree | dcae6831f97fa1d353233fa7367800af1c4caa98 /src/server/scripts/Outland | |
| parent | 6810a4469ebe6600be2f8649e917110a17ce27f3 (diff) | |
| parent | 9b933b4a291e377d4ae124eb8e3d2ba74b37f34f (diff) | |
Merge branch 'ObjectGuid' of https://github.com/TrinityCore/TrinityCore
Conflicts:
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Player/Player.h
src/server/game/Scripting/MapScripts.cpp
src/server/scripts/Northrend/Naxxramas/instance_naxxramas.cpp
src/server/scripts/Northrend/Nexus/EyeOfEternity/instance_eye_of_eternity.cpp
src/server/scripts/Northrend/Nexus/Nexus/boss_anomalus.cpp
src/server/scripts/Northrend/Nexus/Nexus/boss_magus_telestra.cpp
src/server/scripts/Northrend/Nexus/Oculus/boss_varos.cpp
src/server/scripts/Northrend/Ulduar/HallsOfStone/halls_of_stone.cpp
src/server/scripts/Northrend/Ulduar/Ulduar/boss_auriaya.cpp
src/server/scripts/Northrend/Ulduar/Ulduar/boss_freya.cpp
src/server/scripts/Northrend/Ulduar/Ulduar/boss_hodir.cpp
src/server/scripts/Northrend/Ulduar/Ulduar/boss_ignis.cpp
src/server/scripts/Northrend/Ulduar/Ulduar/boss_razorscale.cpp
src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_skadi.cpp
src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_svala.cpp
src/server/scripts/Northrend/UtgardeKeep/UtgardePinnacle/boss_ymiron.cpp
Diffstat (limited to 'src/server/scripts/Outland')
58 files changed, 650 insertions, 772 deletions
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 7ba0a452941..1cfd7a23f39 100644 --- a/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp +++ b/src/server/scripts/Outland/Auchindoun/AuchenaiCrypts/boss_exarch_maladaar.cpp @@ -174,7 +174,7 @@ public: } uint32 soulmodel; - uint64 soulholder; + ObjectGuid soulholder; uint8 soulclass; uint32 Fear_timer; @@ -187,7 +187,7 @@ public: void Reset() override { soulmodel = 0; - soulholder = 0; + soulholder.Clear(); soulclass = 0; Fear_timer = 15000 + rand32() % 5000; 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 683b253d8a1..9a94096c2de 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 @@ -69,7 +69,7 @@ public: uint32 Carnivorousbite_Timer; uint32 FocusFire_Timer; - uint64 FocusedTargetGUID; + ObjectGuid FocusedTargetGUID; void Reset() override { @@ -77,7 +77,7 @@ public: Attractmagic_Timer = 28000; Carnivorousbite_Timer = 10000; FocusFire_Timer = 17000; - FocusedTargetGUID = 0; + FocusedTargetGUID.Clear(); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp index a48f5245273..6ff92bcdb0b 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_ambassador_hellmaw.cpp @@ -115,7 +115,7 @@ class boss_ambassador_hellmaw : public CreatureScript me->RemoveAurasDueToSpell(SPELL_BANISH); Talk(SAY_INTRO); - Start(true, false, 0, NULL, false, true); + Start(true, false, ObjectGuid::Empty, NULL, false, true); } void EnterCombat(Unit* /*who*/) override diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp index 905fe67af97..b3aac6becc4 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/boss_grandmaster_vorpil.cpp @@ -238,7 +238,7 @@ class npc_voidtraveler : public CreatureScript { if (_moveTimer <= diff) { - Creature* Vorpil = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_GRANDMASTER_VORPIL)); + Creature* Vorpil = ObjectAccessor::GetCreature(*me, _instance->GetGuidData(DATA_GRANDMASTER_VORPIL)); if (!Vorpil) return; diff --git a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp index 9bd985130a9..6fea892abea 100644 --- a/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp +++ b/src/server/scripts/Outland/Auchindoun/ShadowLabyrinth/instance_shadow_labyrinth.cpp @@ -40,8 +40,6 @@ class instance_shadow_labyrinth : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - AmbassadorHellmawGUID = 0; - GrandmasterVorpilGUID = 0; FelOverseerCount = 0; } @@ -123,7 +121,7 @@ class instance_shadow_labyrinth : public InstanceMapScript return 0; } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -132,12 +130,12 @@ class instance_shadow_labyrinth : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 AmbassadorHellmawGUID; - uint64 GrandmasterVorpilGUID; + ObjectGuid AmbassadorHellmawGUID; + ObjectGuid GrandmasterVorpilGUID; uint32 FelOverseerCount; }; diff --git a/src/server/scripts/Outland/BlackTemple/black_temple.cpp b/src/server/scripts/Outland/BlackTemple/black_temple.cpp index 3a33561e998..5302aa34a29 100644 --- a/src/server/scripts/Outland/BlackTemple/black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/black_temple.cpp @@ -156,11 +156,11 @@ public: } case EVENT_SET_CHANNELERS: { - for (uint64 guid : _bloodmageList) + for (ObjectGuid guid : _bloodmageList) if (Creature* bloodmage = ObjectAccessor::GetCreature(*me, guid)) bloodmage->CastSpell((Unit*)NULL, SPELL_SUMMON_CHANNEL); - for (uint64 guid : _deathshaperList) + for (ObjectGuid guid : _deathshaperList) if (Creature* deathshaper = ObjectAccessor::GetCreature(*me, guid)) deathshaper->CastSpell((Unit*)NULL, SPELL_SUMMON_CHANNEL); @@ -202,8 +202,8 @@ public: private: InstanceScript* _instance; EventMap _events; - std::list<uint64> _bloodmageList; - std::list<uint64> _deathshaperList; + GuidList _bloodmageList; + GuidList _deathshaperList; bool _enteredCombat; }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp index f03caa37cb2..b41e7e77452 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_gurtogg_bloodboil.cpp @@ -73,7 +73,7 @@ public: InstanceScript* instance; - uint64 TargetGUID; + ObjectGuid TargetGUID; float TargetThreat; @@ -94,7 +94,7 @@ public: { instance->SetBossState(DATA_GURTOGG_BLOODBOIL, NOT_STARTED); - TargetGUID = 0; + TargetGUID.Clear(); TargetThreat = 0; @@ -134,7 +134,7 @@ public: Talk(SAY_DEATH); } - void RevertThreatOnTarget(uint64 guid) + void RevertThreatOnTarget(ObjectGuid guid) { if (Unit* unit = ObjectAccessor::GetUnit(*me, guid)) { @@ -258,7 +258,7 @@ public: { if (TargetGUID) RevertThreatOnTarget(TargetGUID); - TargetGUID = 0; + TargetGUID.Clear(); Phase1 = true; BloodboilTimer = 10000; BloodboilCount = 0; diff --git a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp index 22cd886d99b..4ec6aed9655 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_illidan.cpp @@ -381,7 +381,7 @@ public: { FlameBlastTimer = 15000; CheckTimer = 5000; - GlaiveGUID = 0; + GlaiveGUID.Clear(); } void EnterCombat(Unit* /*who*/) override @@ -424,7 +424,7 @@ public: } } - void SetGlaiveGUID(uint64 guid) + void SetGlaiveGUID(ObjectGuid guid) { GlaiveGUID = guid; } @@ -455,7 +455,7 @@ public: private: uint32 FlameBlastTimer; uint32 CheckTimer; - uint64 GlaiveGUID; + ObjectGuid GlaiveGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -476,7 +476,6 @@ public: { instance = creature->GetInstanceScript(); DoCast(me, SPELL_DUAL_WIELD, true); - AkamaGUID = 0; } void Reset() override; @@ -489,7 +488,7 @@ public: { for (uint8 i = 0; i < 2; ++i) if (summon->GetGUID() == FlameGUID[i]) - FlameGUID[i] = 0; + FlameGUID[i].Clear(); if (!FlameGUID[0] && !FlameGUID[1] && Phase != PHASE_ILLIDAN_NULL) { @@ -542,7 +541,7 @@ public: instance->SetBossState(DATA_ILLIDAN_STORMRAGE, DONE); for (uint8 i = DATA_GO_ILLIDAN_DOOR_R; i < DATA_GO_ILLIDAN_DOOR_L + 1; ++i) - instance->HandleGameObject(instance->GetData64(i), true); + instance->HandleGameObject(instance->GetGuidData(i), true); } void KilledUnit(Unit* victim) override @@ -573,7 +572,7 @@ public: } } - void DeleteFromThreatList(uint64 TargetGUID) + void DeleteFromThreatList(ObjectGuid TargetGUID) { ThreatContainer::StorageType threatlist = me->getThreatManager().getThreatList(); for (ThreatContainer::StorageType::const_iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) @@ -849,7 +848,7 @@ public: if (Creature* glaive = ObjectAccessor::GetCreature(*me, GlaiveGUID[i])) glaive->DespawnOrUnsummon(); - GlaiveGUID[i] = 0; + GlaiveGUID[i].Clear(); } } Timer[EVENT_FLIGHT_SEQUENCE] = 2000; @@ -1102,7 +1101,7 @@ public: } public: - uint64 AkamaGUID; + ObjectGuid AkamaGUID; uint32 Timer[EVENT_ENRAGE + 1]; PhaseIllidan Phase; private: @@ -1112,9 +1111,9 @@ public: uint32 TransformCount; uint32 FlightCount; uint32 HoverPoint; - uint64 MaievGUID; - uint64 FlameGUID[2]; - uint64 GlaiveGUID[2]; + ObjectGuid MaievGUID; + ObjectGuid FlameGUID[2]; + ObjectGuid GlaiveGUID[2]; SummonList Summons; }; @@ -1140,7 +1139,7 @@ public: { MaxTimer = 0; Phase = PHASE_NORMAL_MAIEV; - IllidanGUID = 0; + IllidanGUID.Clear(); Timer[EVENT_MAIEV_STEALTH] = 0; Timer[EVENT_MAIEV_TAUNT] = urand(22, 43) * 1000; Timer[EVENT_MAIEV_SHADOW_STRIKE] = 30000; @@ -1153,7 +1152,7 @@ public: void EnterEvadeMode() override { } - void GetIllidanGUID(uint64 guid) + void GetIllidanGUID(ObjectGuid guid) { IllidanGUID = guid; } @@ -1333,7 +1332,7 @@ public: } private: - uint64 IllidanGUID; + ObjectGuid IllidanGUID; PhaseIllidan Phase; EventMaiev Event; uint32 Timer[5]; @@ -1364,10 +1363,10 @@ public: WalkCount = 0; instance->SetBossState(DATA_ILLIDAN_STORMRAGE, NOT_STARTED); - IllidanGUID = instance->GetData64(DATA_ILLIDAN_STORMRAGE); - GateGUID = instance->GetData64(DATA_GO_ILLIDAN_GATE); - DoorGUID[0] = instance->GetData64(DATA_GO_ILLIDAN_DOOR_R); - DoorGUID[1] = instance->GetData64(DATA_GO_ILLIDAN_DOOR_L); + IllidanGUID = instance->GetGuidData(DATA_ILLIDAN_STORMRAGE); + GateGUID = instance->GetGuidData(DATA_GO_ILLIDAN_GATE); + DoorGUID[0] = instance->GetGuidData(DATA_GO_ILLIDAN_DOOR_R); + DoorGUID[1] = instance->GetGuidData(DATA_GO_ILLIDAN_DOOR_L); if (JustCreated) // close all doors at create { @@ -1385,9 +1384,9 @@ public: instance->HandleGameObject(DoorGUID[i], true); } - ChannelGUID = 0; - SpiritGUID[0] = 0; - SpiritGUID[1] = 0; + ChannelGUID.Clear(); + SpiritGUID[0].Clear(); + SpiritGUID[1].Clear(); Phase = PHASE_AKAMA_NULL; Timer = 0; @@ -1758,11 +1757,11 @@ public: PhaseAkama Phase; bool Event; uint32 Timer; - uint64 IllidanGUID; - uint64 ChannelGUID; - uint64 SpiritGUID[2]; - uint64 GateGUID; - uint64 DoorGUID[2]; + ObjectGuid IllidanGUID; + ObjectGuid ChannelGUID; + ObjectGuid SpiritGUID[2]; + ObjectGuid GateGUID; + ObjectGuid DoorGUID[2]; uint32 ChannelCount; uint32 WalkCount; uint32 TalkCount; @@ -1787,11 +1786,11 @@ void boss_illidan_stormrage::boss_illidan_stormrageAI::Reset() akama->AI()->EnterEvadeMode(); } - MaievGUID = 0; + MaievGUID.Clear(); for (uint8 i = 0; i < 2; ++i) { - FlameGUID[i] = 0; - GlaiveGUID[i] = 0; + FlameGUID[i].Clear(); + GlaiveGUID[i].Clear(); } Phase = PHASE_ILLIDAN_NULL; @@ -1956,7 +1955,7 @@ public: void Reset() override { - IllidanGUID = 0; + IllidanGUID.Clear(); Active = false; SummonedBeams = false; @@ -1985,7 +1984,7 @@ public: DespawnTimer = 5000; if (who->HasAura(SPELL_ENRAGE)) who->RemoveAurasDueToSpell(SPELL_ENRAGE); // Dispel his enrage - // if (GameObject* CageTrap = instance->instance->GetGameObject(instance->GetData64(CageTrapGUID))) + // if (GameObject* CageTrap = instance->instance->GetGameObject(instance->GetGuidData(CageTrapGUID))) // CageTrap->SetLootState(GO_JUST_DEACTIVATED); } @@ -2014,7 +2013,7 @@ public: public: bool Active; private: - uint64 IllidanGUID; + ObjectGuid IllidanGUID; uint32 DespawnTimer; bool SummonedBeams; }; @@ -2059,7 +2058,7 @@ public: void Reset() override { - TargetGUID = 0; + TargetGUID.Clear(); DoCast(me, SPELL_SHADOW_DEMON_PASSIVE, true); } @@ -2090,7 +2089,7 @@ public: } private: - uint64 TargetGUID; + ObjectGuid TargetGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -2136,7 +2135,7 @@ public: void Reset() override { - IllidanGUID = instance->GetData64(DATA_ILLIDAN_STORMRAGE); + IllidanGUID = instance->GetGuidData(DATA_ILLIDAN_STORMRAGE); CheckTimer = 5000; DoCast(me, SPELL_SHADOWFIEND_PASSIVE, true); @@ -2195,7 +2194,7 @@ public: private: InstanceScript* instance; - uint64 IllidanGUID; + ObjectGuid IllidanGUID; uint32 CheckTimer; }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp index 60162188f7e..39aac706acc 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_mother_shahraz.cpp @@ -112,8 +112,8 @@ public: void Initialize() { - for (uint8 i = 0; i<3; ++i) - TargetGUID[i] = 0; + for (uint8 i = 0; i < 3; ++i) + TargetGUID[i].Clear(); BeamCount = 0; CurrentBeam = SINISTER_BEAM; // 0 - Sinister, 1 - Vile, 2 - Wicked, 3 - Sinful @@ -236,7 +236,7 @@ public: { if (Unit* unit = ObjectAccessor::GetUnit(*me, TargetGUID[i])) unit->CastSpell(unit, SPELL_ATTRACTION, true); - TargetGUID[i] = 0; + TargetGUID[i].Clear(); } } ++ExplosionCount; @@ -267,7 +267,7 @@ public: } private: - uint64 TargetGUID[3]; + ObjectGuid TargetGUID[3]; uint32 BeamCount; uint32 CurrentBeam; uint32 ExplosionCount; 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 f3c8af50328..c5989f4df64 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_reliquary_of_souls.cpp @@ -113,9 +113,12 @@ public: { npc_enslaved_soulAI(Creature* creature) : ScriptedAI(creature) { } - uint64 ReliquaryGUID; + ObjectGuid ReliquaryGUID; - void Reset() override { ReliquaryGUID = 0; } + void Reset() override + { + ReliquaryGUID.Clear(); + } void EnterCombat(Unit* /*who*/) override { @@ -142,12 +145,11 @@ public: boss_reliquary_of_soulsAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - EssenceGUID = 0; } InstanceScript* instance; - uint64 EssenceGUID; + ObjectGuid EssenceGUID; uint32 Phase; uint32 Counter; @@ -165,7 +167,7 @@ public: if (Creature* essence = ObjectAccessor::GetCreature(*me, EssenceGUID)) essence->DespawnOrUnsummon(); - EssenceGUID = 0; + EssenceGUID.Clear(); } Phase = 0; @@ -334,17 +336,15 @@ public: if (Essence) { if (Phase == 1) - { Essence->AI()->Talk(SUFF_SAY_AFTER); - } else - { Essence->AI()->Talk(DESI_SAY_AFTER); - } + Essence->DespawnOrUnsummon(); } + me->SetUInt32Value(UNIT_NPC_EMOTESTATE, 0); - EssenceGUID = 0; + EssenceGUID.Clear(); SoulCount = 0; SoulDeathCount = 0; Timer = 3000; @@ -624,7 +624,7 @@ public: { boss_essence_of_angerAI(Creature* creature) : ScriptedAI(creature) { } - uint64 AggroTargetGUID; + ObjectGuid AggroTargetGUID; uint32 CheckTankTimer; uint32 SoulScreamTimer; @@ -636,7 +636,7 @@ public: void Reset() override { - AggroTargetGUID = 0; + AggroTargetGUID.Clear(); CheckTankTimer = 5000; SoulScreamTimer = 10000; 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 f1e170c0705..6b337e42087 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_shade_of_akama.cpp @@ -175,11 +175,11 @@ public: { if (!HasKilledAkamaAndReseting) { - for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) + for (GuidList::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) if (Creature* Channeler = ObjectAccessor::GetCreature(*me, *itr)) Channeler->DespawnOrUnsummon(); - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_DESPAWN_ALL_SPAWNS); @@ -207,7 +207,7 @@ public: { if (me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) { - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) if (Akama->IsAlive()) ScriptedAI::AttackStart(Akama); } @@ -231,7 +231,7 @@ public: events.ScheduleEvent(EVENT_START_ATTACK_AKAMA, 500); events.ScheduleEvent(EVENT_SET_CHANNELERS_SPAWNERS, 1000); me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) me->AddThreat(Akama, 10000000.0f); } else if (spell->Id == SPELL_SHADE_SOUL_CHANNEL_2) @@ -267,7 +267,7 @@ public: switch (eventId) { case EVENT_RESET_ENCOUNTER: - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) if (!Akama->IsAlive()) Akama->Respawn(); break; @@ -307,17 +307,13 @@ public: { case EVENT_SET_CHANNELERS_SPAWNERS: { - for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) - { + for (GuidList::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) if (Creature* Channeler = ObjectAccessor::GetCreature(*me, *itr)) Channeler->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - } - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) - { + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_START_SPAWNING); - } break; } case EVENT_START_ATTACK_AKAMA: @@ -347,14 +343,14 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC); combatStarted = false; - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) Akama->DespawnOrUnsummon(); - for (std::list<uint64>::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) + for (GuidList::const_iterator itr = Channelers.begin(); itr != Channelers.end(); ++itr) if (Creature* Channeler = ObjectAccessor::GetCreature(*me, *itr)) Channeler->DespawnOrUnsummon(); - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_DESPAWN_ALL_SPAWNS); @@ -365,7 +361,7 @@ public: if (!akamaReached) { - if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Creature* Akama = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) { if (me->IsWithinDist(Akama, 2.0f, false)) { @@ -379,7 +375,7 @@ public: events.CancelEvent(EVENT_START_ATTACK_AKAMA); events.ScheduleEvent(EVENT_ADD_THREAT, 100); - for (std::list<uint64>::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) + for (GuidList::const_iterator itr = Spawners.begin(); itr != Spawners.end(); ++itr) if (Creature* Spawner = ObjectAccessor::GetCreature(*me, *itr)) Spawner->AI()->SetData(SETDATA_DATA, SETDATA_STOP_SPAWNING); } @@ -395,8 +391,8 @@ public: private: InstanceScript* instance; EventMap events; - std::list<uint64> Channelers; - std::list<uint64> Spawners; + GuidList Channelers; + GuidList Spawners; bool akamaReached; bool combatStarted; bool HasKilledAkamaAndReseting; @@ -437,7 +433,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) if (Shade->IsAlive()) ENSURE_AI(boss_shade_of_akama::boss_shade_of_akamaAI, Shade->AI())->HasKilledAkama = true; me->GetMotionMaster()->Clear(true); @@ -451,7 +447,7 @@ public: me->ClearUnitState(UNIT_STATE_ROOT); me->RemoveAura(SPELL_AKAMA_SOUL_CHANNEL); me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) Shade->RemoveAura(SPELL_AKAMA_SOUL_CHANNEL); StartCombat = true; } @@ -577,7 +573,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED); } @@ -593,7 +589,7 @@ public: switch (eventId) { case EVENT_CHANNEL: - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) { if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) DoCast(me, SPELL_SHADE_SOUL_CHANNEL); @@ -751,26 +747,26 @@ public: { if (!startedBanishing) { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) { if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) me->GetMotionMaster()->MovePoint(0, Shade->GetPositionX(), Shade->GetPositionY(), Shade->GetPositionZ(), false); else { - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } } } - summonerGuid = 0; + summonerGuid.Clear(); startedBanishing = false; switchToCombat = false; } void JustDied(Unit* /*killer*/) override { - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED); me->DespawnOrUnsummon(5000); } @@ -799,7 +795,7 @@ public: switch (eventId) { case EVENT_SORCERER_CHANNEL: - if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA))) + if (Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA))) { if (Shade->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE)) { @@ -812,7 +808,7 @@ public: me->InterruptSpell(CURRENT_CHANNELED_SPELL); Shade->AI()->SetData(SETDATA_DATA, SETDATA_CHANNELER_DIED); switchToCombat = true; - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } } @@ -824,7 +820,7 @@ public: if (!startedBanishing) { - Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SHADE_OF_AKAMA)); + Creature* Shade = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SHADE_OF_AKAMA)); if (me->IsWithinDist(Shade, 20.0f, false)) { me->StopMoving(); @@ -841,7 +837,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; bool startedBanishing; bool switchToCombat; }; @@ -870,9 +866,9 @@ public: void Reset() override { - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -933,7 +929,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -960,9 +956,9 @@ public: void Reset() override { - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -1013,7 +1009,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -1040,9 +1036,9 @@ public: void Reset() override { - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -1093,7 +1089,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; }; CreatureAI* GetAI(Creature* creature) const override @@ -1122,9 +1118,9 @@ public: { spiritMend = false; chainHeal = false; - summonerGuid = 0; + summonerGuid.Clear(); - if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_AKAMA_SHADE))) + if (Unit* target = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_AKAMA_SHADE))) AttackStart(target); } @@ -1188,7 +1184,7 @@ public: private: InstanceScript* instance; EventMap events; - uint64 summonerGuid; + ObjectGuid summonerGuid; bool spiritMend; bool chainHeal; }; diff --git a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp index 0bbf2cb2a96..081dbc079a7 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_teron_gorefiend.cpp @@ -67,13 +67,13 @@ public: uint32 CheckTeronTimer; uint32 ShadowBoltTimer; - uint64 TeronGUID; + ObjectGuid TeronGUID; void Reset() override { CheckTeronTimer = 5000; ShadowBoltTimer = 12000; - TeronGUID = 0; + TeronGUID.Clear(); } void EnterCombat(Unit* /*who*/) override { } @@ -113,7 +113,7 @@ public: return; } - void SetTeronGUID(uint64 guid) + void SetTeronGUID(ObjectGuid guid) { TeronGUID = guid; } @@ -134,16 +134,16 @@ public: { npc_shadowy_constructAI(Creature* creature) : ScriptedAI(creature) { } - uint64 GhostGUID; - uint64 TeronGUID; + ObjectGuid GhostGUID; + ObjectGuid TeronGUID; uint32 CheckPlayerTimer; uint32 CheckTeronTimer; void Reset() override { - GhostGUID = 0; - TeronGUID = 0; + GhostGUID.Clear(); + TeronGUID.Clear(); CheckPlayerTimer = 2000; CheckTeronTimer = 5000; @@ -238,8 +238,8 @@ public: uint32 RandomYellTimer; uint32 AggroTimer; - uint64 AggroTargetGUID; - uint64 GhostGUID; // Player that gets killed by Shadow of Death and gets turned into a ghost + ObjectGuid AggroTargetGUID; + ObjectGuid GhostGUID; // Player that gets killed by Shadow of Death and gets turned into a ghost bool Intro; bool Done; @@ -260,7 +260,7 @@ public: me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); AggroTimer = 20000; - AggroTargetGUID = 0; + AggroTargetGUID.Clear(); Intro = false; Done = false; } diff --git a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp index c998bfed2dc..0f80e541261 100644 --- a/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp +++ b/src/server/scripts/Outland/BlackTemple/boss_warlord_najentus.cpp @@ -1,145 +1,144 @@ -/* - * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/> - * - * 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 - * Free Software Foundation; either version 2 of the License, or (at your - * option) any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "black_temple.h" -#include "Player.h" -#include "SpellInfo.h" - -enum Texts -{ - SAY_AGGRO = 0, - SAY_NEEDLE = 1, - SAY_SLAY = 2, - SAY_SPECIAL = 3, - SAY_ENRAGE = 4, - SAY_DEATH = 5 -}; - -enum Spells -{ - SPELL_NEEDLE_SPINE = 39992, - SPELL_TIDAL_BURST = 39878, - SPELL_TIDAL_SHIELD = 39872, - SPELL_IMPALING_SPINE = 39837, - SPELL_CREATE_NAJENTUS_SPINE = 39956, - SPELL_HURL_SPINE = 39948, - SPELL_BERSERK = 26662 - -}; - -enum Events -{ - EVENT_BERSERK = 1, - EVENT_YELL = 2, - EVENT_NEEDLE = 3, - EVENT_SPINE = 4, - EVENT_SHIELD = 5 -}; - -enum EventGroups -{ - GCD_CAST = 1, - GCD_YELL = 2 -}; - -class boss_najentus : public CreatureScript -{ -public: - boss_najentus() : CreatureScript("boss_najentus") { } - - struct boss_najentusAI : public BossAI - { - boss_najentusAI(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS) - { - SpineTargetGUID = 0; - } - - void Reset() override - { - _Reset(); - SpineTargetGUID = 0; - } - - void KilledUnit(Unit* /*victim*/) override - { - Talk(SAY_SLAY); - events.DelayEvents(5000, GCD_YELL); - } - - void JustDied(Unit* /*killer*/) override - { - _JustDied(); - Talk(SAY_DEATH); - } - - void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override - { - if (spell->Id == SPELL_HURL_SPINE && me->HasAura(SPELL_TIDAL_SHIELD)) - { - me->RemoveAurasDueToSpell(SPELL_TIDAL_SHIELD); - DoCast(me, SPELL_TIDAL_BURST, true); - ResetTimer(); - } - } - - void EnterCombat(Unit* /*who*/) override - { - _EnterCombat(); - Talk(SAY_AGGRO); - events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST); - events.ScheduleEvent(EVENT_YELL, 45000 + (rand32() % 76) * 1000, GCD_YELL); - ResetTimer(); - } - - bool RemoveImpalingSpine() - { - if (!SpineTargetGUID) - return false; - - Unit* target = ObjectAccessor::GetUnit(*me, SpineTargetGUID); - if (target && target->HasAura(SPELL_IMPALING_SPINE)) - target->RemoveAurasDueToSpell(SPELL_IMPALING_SPINE); - SpineTargetGUID=0; - return true; - } - - void ResetTimer(uint32 inc = 0) - { - events.RescheduleEvent(EVENT_NEEDLE, 10000 + inc, GCD_CAST); - events.RescheduleEvent(EVENT_SPINE, 20000 + inc, GCD_CAST); - events.RescheduleEvent(EVENT_SHIELD, 60000 + inc); - } - - void ExecuteEvent(uint32 eventId) override - { - switch (eventId) - { - case EVENT_SHIELD: - DoCast(me, SPELL_TIDAL_SHIELD, true); - ResetTimer(45000); - break; - case EVENT_BERSERK: - Talk(SAY_ENRAGE); - DoCast(me, SPELL_BERSERK, true); - events.DelayEvents(15000, GCD_YELL); - break; - case EVENT_SPINE: +/*
+ * Copyright (C) 2008-2014 TrinityCore <http://www.trinitycore.org/>
+ *
+ * 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
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ScriptMgr.h"
+#include "ScriptedCreature.h"
+#include "black_temple.h"
+#include "Player.h"
+#include "SpellInfo.h"
+
+enum Texts
+{
+ SAY_AGGRO = 0,
+ SAY_NEEDLE = 1,
+ SAY_SLAY = 2,
+ SAY_SPECIAL = 3,
+ SAY_ENRAGE = 4,
+ SAY_DEATH = 5
+};
+
+enum Spells
+{
+ SPELL_NEEDLE_SPINE = 39992,
+ SPELL_TIDAL_BURST = 39878,
+ SPELL_TIDAL_SHIELD = 39872,
+ SPELL_IMPALING_SPINE = 39837,
+ SPELL_CREATE_NAJENTUS_SPINE = 39956,
+ SPELL_HURL_SPINE = 39948,
+ SPELL_BERSERK = 26662
+
+};
+
+enum Events
+{
+ EVENT_BERSERK = 1,
+ EVENT_YELL = 2,
+ EVENT_NEEDLE = 3,
+ EVENT_SPINE = 4,
+ EVENT_SHIELD = 5
+};
+
+enum EventGroups
+{
+ GCD_CAST = 1,
+ GCD_YELL = 2
+};
+
+class boss_najentus : public CreatureScript
+{
+public:
+ boss_najentus() : CreatureScript("boss_najentus") { }
+
+ struct boss_najentusAI : public BossAI
+ {
+ boss_najentusAI(Creature* creature) : BossAI(creature, DATA_HIGH_WARLORD_NAJENTUS)
+ {
+ }
+
+ void Reset() override
+ {
+ _Reset();
+ SpineTargetGUID.Clear();
+ }
+
+ void KilledUnit(Unit* /*victim*/) override
+ {
+ Talk(SAY_SLAY);
+ events.DelayEvents(5000, GCD_YELL);
+ }
+
+ void JustDied(Unit* /*killer*/) override
+ {
+ _JustDied();
+ Talk(SAY_DEATH);
+ }
+
+ void SpellHit(Unit* /*caster*/, const SpellInfo* spell) override
+ {
+ if (spell->Id == SPELL_HURL_SPINE && me->HasAura(SPELL_TIDAL_SHIELD))
+ {
+ me->RemoveAurasDueToSpell(SPELL_TIDAL_SHIELD);
+ DoCast(me, SPELL_TIDAL_BURST, true);
+ ResetTimer();
+ }
+ }
+
+ void EnterCombat(Unit* /*who*/) override
+ {
+ _EnterCombat();
+ Talk(SAY_AGGRO);
+ events.ScheduleEvent(EVENT_BERSERK, 480000, GCD_CAST);
+ events.ScheduleEvent(EVENT_YELL, 45000 + (rand32() % 76) * 1000, GCD_YELL);
+ ResetTimer();
+ }
+
+ bool RemoveImpalingSpine()
+ {
+ if (!SpineTargetGUID)
+ return false;
+
+ Unit* target = ObjectAccessor::GetUnit(*me, SpineTargetGUID);
+ if (target && target->HasAura(SPELL_IMPALING_SPINE))
+ target->RemoveAurasDueToSpell(SPELL_IMPALING_SPINE);
+ SpineTargetGUID.Clear();
+ return true;
+ }
+
+ void ResetTimer(uint32 inc = 0)
+ {
+ events.RescheduleEvent(EVENT_NEEDLE, 10000 + inc, GCD_CAST);
+ events.RescheduleEvent(EVENT_SPINE, 20000 + inc, GCD_CAST);
+ events.RescheduleEvent(EVENT_SHIELD, 60000 + inc);
+ }
+
+ void ExecuteEvent(uint32 eventId) override
+ {
+ switch (eventId)
+ {
+ case EVENT_SHIELD:
+ DoCast(me, SPELL_TIDAL_SHIELD, true);
+ ResetTimer(45000);
+ break;
+ case EVENT_BERSERK:
+ Talk(SAY_ENRAGE);
+ DoCast(me, SPELL_BERSERK, true);
+ events.DelayEvents(15000, GCD_YELL);
+ break;
+ case EVENT_SPINE:
{
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1);
@@ -158,59 +157,59 @@ public: }
events.ScheduleEvent(EVENT_SPINE, 21000, GCD_CAST);
return;
- } - case EVENT_NEEDLE: - { - //DoCast(me, SPELL_NEEDLE_SPINE, true); - std::list<Unit*> targets; - SelectTargetList(targets, 3, SELECT_TARGET_RANDOM, 80, true); - for (std::list<Unit*>::const_iterator i = targets.begin(); i != targets.end(); ++i) - DoCast(*i, 39835, true); - events.ScheduleEvent(EVENT_NEEDLE, urand(15000, 25000), GCD_CAST); - events.DelayEvents(1500, GCD_CAST); - return; - } - case EVENT_YELL: - Talk(SAY_SPECIAL); - events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL); - events.DelayEvents(15000, GCD_YELL); - break; - default: - break; - } - } - - private: - uint64 SpineTargetGUID; - }; - - CreatureAI* GetAI(Creature* creature) const override - { - return GetBlackTempleAI<boss_najentusAI>(creature); - } -}; - -class go_najentus_spine : public GameObjectScript -{ -public: - go_najentus_spine() : GameObjectScript("go_najentus_spine") { } - - bool OnGossipHello(Player* player, GameObject* go) override - { - if (InstanceScript* instance = go->GetInstanceScript()) - if (Creature* Najentus = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_HIGH_WARLORD_NAJENTUS))) - if (ENSURE_AI(boss_najentus::boss_najentusAI, Najentus->AI())->RemoveImpalingSpine()) - { - player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true); - go->Delete(); - } - return true; - } - -}; - -void AddSC_boss_najentus() -{ - new boss_najentus(); - new go_najentus_spine(); -} + }
+ case EVENT_NEEDLE:
+ {
+ //DoCast(me, SPELL_NEEDLE_SPINE, true);
+ std::list<Unit*> targets;
+ SelectTargetList(targets, 3, SELECT_TARGET_RANDOM, 80, true);
+ for (std::list<Unit*>::const_iterator i = targets.begin(); i != targets.end(); ++i)
+ DoCast(*i, 39835, true);
+ events.ScheduleEvent(EVENT_NEEDLE, urand(15000, 25000), GCD_CAST);
+ events.DelayEvents(1500, GCD_CAST);
+ return;
+ }
+ case EVENT_YELL:
+ Talk(SAY_SPECIAL);
+ events.ScheduleEvent(EVENT_YELL, urand(25000, 100000), GCD_YELL);
+ events.DelayEvents(15000, GCD_YELL);
+ break;
+ default:
+ break;
+ }
+ }
+
+ private:
+ ObjectGuid SpineTargetGUID;
+ };
+
+ CreatureAI* GetAI(Creature* creature) const override
+ {
+ return GetBlackTempleAI<boss_najentusAI>(creature);
+ }
+};
+
+class go_najentus_spine : public GameObjectScript
+{
+public:
+ go_najentus_spine() : GameObjectScript("go_najentus_spine") { }
+
+ bool OnGossipHello(Player* player, GameObject* go) override
+ {
+ if (InstanceScript* instance = go->GetInstanceScript())
+ if (Creature* Najentus = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_HIGH_WARLORD_NAJENTUS)))
+ if (ENSURE_AI(boss_najentus::boss_najentusAI, Najentus->AI())->RemoveImpalingSpine())
+ {
+ player->CastSpell(player, SPELL_CREATE_NAJENTUS_SPINE, true);
+ go->Delete();
+ }
+ return true;
+ }
+
+};
+
+void AddSC_boss_najentus()
+{
+ new boss_najentus();
+ new go_najentus_spine();
+}
diff --git a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp index 2c6bac4c9d9..a14a4c576cb 100644 --- a/src/server/scripts/Outland/BlackTemple/illidari_council.cpp +++ b/src/server/scripts/Outland/BlackTemple/illidari_council.cpp @@ -129,11 +129,9 @@ public: { npc_blood_elf_council_voice_triggerAI(Creature* creature) : ScriptedAI(creature) { - for (uint8 i = 0; i < 4; ++i) - Council[i] = 0; } - uint64 Council[4]; + ObjectGuid Council[4]; uint32 EnrageTimer; uint32 AggroYellTimer; @@ -157,10 +155,10 @@ public: { if (InstanceScript* instance = me->GetInstanceScript()) { - Council[0] = instance->GetData64(DATA_GATHIOS_THE_SHATTERER); - Council[1] = instance->GetData64(DATA_VERAS_DARKSHADOW); - Council[2] = instance->GetData64(DATA_LADY_MALANDE); - Council[3] = instance->GetData64(DATA_HIGH_NETHERMANCER_ZEREVOR); + Council[0] = instance->GetGuidData(DATA_GATHIOS_THE_SHATTERER); + Council[1] = instance->GetGuidData(DATA_VERAS_DARKSHADOW); + Council[2] = instance->GetGuidData(DATA_LADY_MALANDE); + Council[3] = instance->GetGuidData(DATA_HIGH_NETHERMANCER_ZEREVOR); } else TC_LOG_ERROR("scripts", ERROR_INST_DATA); } @@ -226,13 +224,11 @@ public: npc_illidari_councilAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - for (uint8 i = 0; i < 4; ++i) - Council[i] = 0; } InstanceScript* instance; - uint64 Council[4]; + ObjectGuid Council[4]; uint32 CheckTimer; uint32 EndEventTimer; @@ -264,7 +260,7 @@ public: } instance->SetBossState(DATA_ILLIDARI_COUNCIL, NOT_STARTED); - if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))) + if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_ELF_COUNCIL_VOICE))) VoiceTrigger->AI()->EnterEvadeMode(); EventBegun = false; @@ -283,13 +279,13 @@ public: { if (target && target->IsAlive()) { - Council[0] = instance->GetData64(DATA_GATHIOS_THE_SHATTERER); - Council[1] = instance->GetData64(DATA_HIGH_NETHERMANCER_ZEREVOR); - Council[2] = instance->GetData64(DATA_LADY_MALANDE); - Council[3] = instance->GetData64(DATA_VERAS_DARKSHADOW); + Council[0] = instance->GetGuidData(DATA_GATHIOS_THE_SHATTERER); + Council[1] = instance->GetGuidData(DATA_HIGH_NETHERMANCER_ZEREVOR); + Council[2] = instance->GetGuidData(DATA_LADY_MALANDE); + Council[3] = instance->GetGuidData(DATA_VERAS_DARKSHADOW); // Start the event for the Voice Trigger - if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))) + if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_ELF_COUNCIL_VOICE))) { ENSURE_AI(npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->LoadCouncilGUIDs(); ENSURE_AI(npc_blood_elf_council_voice_trigger::npc_blood_elf_council_voice_triggerAI, VoiceTrigger->AI())->EventStarted = true; @@ -322,7 +318,7 @@ public: { if (DeathCount > 3) { - if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_ELF_COUNCIL_VOICE))) + if (Creature* VoiceTrigger = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_BLOOD_ELF_COUNCIL_VOICE))) VoiceTrigger->DealDamage(VoiceTrigger, VoiceTrigger->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); instance->SetBossState(DATA_ILLIDARI_COUNCIL, DONE); //me->SummonCreature(AKAMAID, 746.466980f, 304.394989f, 311.90208f, 6.272870f, TEMPSUMMON_DEAD_DESPAWN, 0); @@ -379,12 +375,10 @@ struct boss_illidari_councilAI : public ScriptedAI boss_illidari_councilAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - for (uint8 i = 0; i < 4; ++i) - Council[i] = 0; LoadedGUIDs = false; } - uint64 Council[4]; + ObjectGuid Council[4]; InstanceScript* instance; @@ -392,7 +386,7 @@ struct boss_illidari_councilAI : public ScriptedAI void EnterCombat(Unit* who) override { - if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_ILLIDARI_COUNCIL))) + if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_ILLIDARI_COUNCIL))) ENSURE_AI(npc_illidari_council::npc_illidari_councilAI, controller->AI())->StartEvent(who); DoZoneInCombat(); // Load GUIDs on first aggro because the Creature guids are only set as the creatures are created in world- @@ -436,10 +430,10 @@ struct boss_illidari_councilAI : public ScriptedAI void LoadGUIDs() { - Council[0] = instance->GetData64(DATA_LADY_MALANDE); - Council[1] = instance->GetData64(DATA_HIGH_NETHERMANCER_ZEREVOR); - Council[2] = instance->GetData64(DATA_GATHIOS_THE_SHATTERER); - Council[3] = instance->GetData64(DATA_VERAS_DARKSHADOW); + Council[0] = instance->GetGuidData(DATA_LADY_MALANDE); + Council[1] = instance->GetGuidData(DATA_HIGH_NETHERMANCER_ZEREVOR); + Council[2] = instance->GetGuidData(DATA_GATHIOS_THE_SHATTERER); + Council[3] = instance->GetGuidData(DATA_VERAS_DARKSHADOW); LoadedGUIDs = true; } diff --git a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp index 55ad45597ea..7067ca659d3 100644 --- a/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp +++ b/src/server/scripts/Outland/BlackTemple/instance_black_temple.cpp @@ -47,23 +47,6 @@ class instance_black_temple : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); LoadDoorData(doorData); - - NajentusGUID = 0; - SupremusGUID = 0; - ShadeOfAkamaGUID = 0; - AkamaShadeGUID = 0; - AkamaGUID = 0; - GathiosTheShattererGUID = 0; - HighNethermancerZerevorGUID = 0; - LadyMalandeGUID = 0; - VerasDarkshadowGUID = 0; - IllidariCouncilGUID = 0; - BloodElfCouncilVoiceGUID = 0; - IllidanStormrageGUID = 0; - - IllidanGateGUID = 0; - - memset(IllidanDoorGUIDs, 0, 2 * sizeof(uint64)); } void OnCreatureCreate(Creature* creature) override @@ -162,7 +145,7 @@ class instance_black_temple : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -200,28 +183,28 @@ class instance_black_temple : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 NajentusGUID; - uint64 SupremusGUID; - uint64 ShadeOfAkamaGUID; - uint64 AkamaShadeGUID; - uint64 AkamaGUID; + ObjectGuid NajentusGUID; + ObjectGuid SupremusGUID; + ObjectGuid ShadeOfAkamaGUID; + ObjectGuid AkamaShadeGUID; + ObjectGuid AkamaGUID; - uint64 GathiosTheShattererGUID; - uint64 HighNethermancerZerevorGUID; - uint64 LadyMalandeGUID; - uint64 VerasDarkshadowGUID; + ObjectGuid GathiosTheShattererGUID; + ObjectGuid HighNethermancerZerevorGUID; + ObjectGuid LadyMalandeGUID; + ObjectGuid VerasDarkshadowGUID; - uint64 IllidariCouncilGUID; - uint64 BloodElfCouncilVoiceGUID; + ObjectGuid IllidariCouncilGUID; + ObjectGuid BloodElfCouncilVoiceGUID; - uint64 IllidanStormrageGUID; + ObjectGuid IllidanStormrageGUID; - uint64 IllidanGateGUID; - uint64 IllidanDoorGUIDs[2]; + ObjectGuid IllidanGateGUID; + ObjectGuid IllidanDoorGUIDs[2]; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override 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 683efcdbcf0..05db2c12b90 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_fathomlord_karathress.cpp @@ -112,9 +112,6 @@ public: boss_fathomlord_karathressAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - Advisors[0] = 0; - Advisors[1] = 0; - Advisors[2] = 0; } InstanceScript* instance; @@ -125,7 +122,7 @@ public: bool BlessingOfTides; - uint64 Advisors[MAX_ADVISORS]; + ObjectGuid Advisors[MAX_ADVISORS]; void Reset() override { @@ -135,10 +132,10 @@ public: BlessingOfTides = false; - uint64 RAdvisors[MAX_ADVISORS]; - RAdvisors[0] = instance->GetData64(DATA_SHARKKIS); - RAdvisors[1] = instance->GetData64(DATA_TIDALVESS); - RAdvisors[2] = instance->GetData64(DATA_CARIBDIS); + ObjectGuid RAdvisors[MAX_ADVISORS]; + RAdvisors[0] = instance->GetGuidData(DATA_SHARKKIS); + RAdvisors[1] = instance->GetGuidData(DATA_TIDALVESS); + RAdvisors[2] = instance->GetGuidData(DATA_CARIBDIS); // Respawn of the 3 Advisors for (uint8 i = 0; i < MAX_ADVISORS; ++i) if (RAdvisors[i]) @@ -175,9 +172,9 @@ public: void GetAdvisors() { - Advisors[0] = instance->GetData64(DATA_SHARKKIS); - Advisors[1] = instance->GetData64(DATA_TIDALVESS); - Advisors[2] = instance->GetData64(DATA_CARIBDIS); + Advisors[0] = instance->GetGuidData(DATA_SHARKKIS); + Advisors[1] = instance->GetGuidData(DATA_TIDALVESS); + Advisors[2] = instance->GetGuidData(DATA_CARIBDIS); } void StartEvent(Unit* who) @@ -187,7 +184,7 @@ public: Talk(SAY_AGGRO); DoZoneInCombat(); - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); } @@ -216,7 +213,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) { AttackStart(target); GetAdvisors(); @@ -308,7 +305,6 @@ public: boss_fathomguard_sharkkisAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - SummonedPet = 0; } InstanceScript* instance; @@ -320,7 +316,7 @@ public: bool pet; - uint64 SummonedPet; + ObjectGuid SummonedPet; void Reset() override { @@ -335,20 +331,20 @@ public: if (Pet && Pet->IsAlive()) Pet->DealDamage(Pet, Pet->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); - SummonedPet = 0; + SummonedPet.Clear(); instance->SetData(DATA_KARATHRESSEVENT, NOT_STARTED); } void JustDied(Unit* /*killer*/) override { - if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KARATHRESS))) + if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KARATHRESS))) ENSURE_AI(boss_fathomlord_karathress::boss_fathomlord_karathressAI, Karathress->AI())->EventSharkkisDeath(); } void EnterCombat(Unit* who) override { - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); } @@ -357,7 +353,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) AttackStart(target); } @@ -468,13 +464,13 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KARATHRESS))) + if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KARATHRESS))) ENSURE_AI(boss_fathomlord_karathress::boss_fathomlord_karathressAI, Karathress->AI())->EventTidalvessDeath(); } void EnterCombat(Unit* who) override { - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); DoCast(me, SPELL_WINDFURY_WEAPON); } @@ -484,7 +480,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) AttackStart(target); } @@ -515,7 +511,7 @@ public: if (Spitfire_Timer <= diff) { DoCast(me, SPELL_SPITFIRE_TOTEM); - if (Unit* SpitfireTotem = ObjectAccessor::GetUnit(*me, CREATURE_SPITFIRE_TOTEM)) + if (Unit* SpitfireTotem = me->FindNearestCreature(CREATURE_SPITFIRE_TOTEM, 100.0f)) SpitfireTotem->ToCreature()->AI()->AttackStart(me->GetVictim()); Spitfire_Timer = 60000; @@ -584,13 +580,13 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KARATHRESS))) + if (Creature* Karathress = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KARATHRESS))) ENSURE_AI(boss_fathomlord_karathress::boss_fathomlord_karathressAI, Karathress->AI())->EventCaribdisDeath(); } void EnterCombat(Unit* who) override { - instance->SetData64(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID()); instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS); } @@ -599,7 +595,7 @@ public: //Only if not incombat check if the event is started if (!me->IsInCombat() && instance->GetData(DATA_KARATHRESSEVENT)) { - if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESSEVENT_STARTER))) + if (Unit* target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESSEVENT_STARTER))) AttackStart(target); } @@ -675,13 +671,13 @@ public: switch (rand32() % 4) { case 0: - unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_KARATHRESS)); + unit = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_KARATHRESS)); break; case 1: - unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SHARKKIS)); + unit = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_SHARKKIS)); break; case 2: - unit = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_TIDALVESS)); + unit = ObjectAccessor::GetUnit(*me, instance->GetGuidData(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 bcde75584fb..cea6a1854a1 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 @@ -94,13 +94,11 @@ public: boss_hydross_the_unstableAI(Creature* creature) : ScriptedAI(creature), Summons(me) { instance = creature->GetInstanceScript(); - beams[0] = 0; - beams[1] = 0; } InstanceScript* instance; - uint64 beams[2]; + ObjectGuid beams[2]; uint32 PosCheck_Timer; uint32 MarkOfHydross_Timer; uint32 MarkOfCorruption_Timer; @@ -116,8 +114,8 @@ public: void Reset() override { DeSummonBeams(); - beams[0] = 0; - beams[1] = 0; + beams[0].Clear(); + beams[1].Clear(); PosCheck_Timer = 2500; MarkOfHydross_Timer = 15000; MarkOfCorruption_Timer = 15000; @@ -147,7 +145,7 @@ public: beamer->CastSpell(me, SPELL_BLUE_BEAM, true); beamer->SetDisplayId(11686); //invisible beamer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - beams[0]=beamer->GetGUID(); + beams[0] = beamer->GetGUID(); } beamer = me->SummonCreature(ENTRY_BEAM_DUMMY, -219.918f, -371.308f, 22.0042f, 2.73072f, TEMPSUMMON_CORPSE_DESPAWN, 0); if (beamer) @@ -155,7 +153,7 @@ public: beamer->CastSpell(me, SPELL_BLUE_BEAM, true); beamer->SetDisplayId(11686); //invisible beamer->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); - beams[1]=beamer->GetGUID(); + beams[1] = beamer->GetGUID(); } } void DeSummonBeams() 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 a241f2bea37..4630620c585 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_lady_vashj.cpp @@ -151,13 +151,11 @@ public: Intro = false; JustCreated = true; creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); // set it only once on Creature create (no need do intro if wiped) - for (uint8 i = 0; i < 4; ++i) - ShieldGeneratorChannel[i] = 0; } InstanceScript* instance; - uint64 ShieldGeneratorChannel[4]; + ObjectGuid ShieldGeneratorChannel[4]; uint32 AggroTimer; uint32 ShockBlastTimer; @@ -210,7 +208,7 @@ public: if (Unit* remo = ObjectAccessor::GetUnit(*me, ShieldGeneratorChannel[i])) { remo->setDeathState(JUST_DIED); - ShieldGeneratorChannel[i] = 0; + ShieldGeneratorChannel[i].Clear(); } } } @@ -565,7 +563,7 @@ public: uint32 Phase; float X, Y, Z; - uint64 VashjGUID; + ObjectGuid VashjGUID; void Reset() override { @@ -589,7 +587,7 @@ public: } } - VashjGUID = instance->GetData64(DATA_LADYVASHJ); + VashjGUID = instance->GetGuidData(DATA_LADYVASHJ); } void EnterCombat(Unit* /*who*/) override { } @@ -662,7 +660,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* vashj = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_LADYVASHJ))) + if (Creature* vashj = ObjectAccessor::GetCreature((*me), instance->GetGuidData(DATA_LADYVASHJ))) ENSURE_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->EventTaintedElementalDeath(); } @@ -778,7 +776,7 @@ public: if (CheckTimer <= diff) { // check if vashj is death - Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); + Unit* Vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ)); if (!Vashj || !Vashj->IsAlive() || ENSURE_AI(boss_lady_vashj::boss_lady_vashjAI, Vashj->ToCreature()->AI())->Phase != 3) { // remove @@ -833,7 +831,7 @@ public: { if (CheckTimer <= diff) { - Unit* vashj = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LADYVASHJ)); + Unit* vashj = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LADYVASHJ)); if (vashj && vashj->IsAlive()) { @@ -865,7 +863,7 @@ public: return true; } - Creature* vashj = ObjectAccessor::GetCreature((*player), instance->GetData64(DATA_LADYVASHJ)); + Creature* vashj = ObjectAccessor::GetCreature((*player), instance->GetGuidData(DATA_LADYVASHJ)); if (vashj && (ENSURE_AI(boss_lady_vashj::boss_lady_vashjAI, vashj->AI())->Phase == 2)) { if (GameObject* gObj = targets.GetGOTarget()) 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 fb5b4579942..9f51155b334 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 @@ -83,13 +83,12 @@ public: { npc_inner_demonAI(Creature* creature) : ScriptedAI(creature) { - victimGUID = 0; } uint32 ShadowBolt_Timer; uint32 Link_Timer; - uint64 victimGUID; + ObjectGuid victimGUID; void Reset() override { @@ -97,17 +96,17 @@ public: Link_Timer = 1000; } - void SetGUID(uint64 guid, int32 id/* = 0 */) override + void SetGUID(ObjectGuid guid, int32 id/* = 0 */) override { if (id == INNER_DEMON_VICTIM) victimGUID = guid; } - uint64 GetGUID(int32 id/* = 0 */) const override + ObjectGuid GetGUID(int32 id/* = 0 */) const override { if (id == INNER_DEMON_VICTIM) return victimGUID; - return 0; + return ObjectGuid::Empty; } void JustDied(Unit* /*killer*/) override @@ -190,10 +189,6 @@ public: { creature->GetPosition(x, y, z); instance = creature->GetInstanceScript(); - Demon = 0; - - for (uint8 i = 0; i < 3; ++i)//clear guids - SpellBinderGUID[i] = 0; } InstanceScript* instance; @@ -213,10 +208,10 @@ public: bool EnrageUsed; float x, y, z; - uint64 InnderDemon[5]; + ObjectGuid InnderDemon[5]; uint32 InnerDemon_Count; - uint64 Demon; - uint64 SpellBinderGUID[3]; + ObjectGuid Demon; + ObjectGuid SpellBinderGUID[3]; void Reset() override { @@ -317,10 +312,10 @@ public: // and reseting equipment me->LoadEquipment(); - if (instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)) + if (instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)) { Unit* victim = NULL; - victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)); + victim = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)); if (victim) me->getThreatManager().addThreat(victim, 1); StartEvent(); @@ -349,13 +344,12 @@ public: { if (InnderDemon[i]) { - //delete creature - Creature* creature = ObjectAccessor::GetCreature((*me), InnderDemon[i]); - if (creature && creature->IsAlive()) - { - creature->DespawnOrUnsummon(); - } - InnderDemon[i] = 0; + //delete creature + Creature* creature = ObjectAccessor::GetCreature((*me), InnderDemon[i]); + if (creature && creature->IsAlive()) + creature->DespawnOrUnsummon(); + + InnderDemon[i].Clear(); } } @@ -364,9 +358,9 @@ public: void CastConsumingMadness() //remove this once SPELL_INSIDIOUS_WHISPER is supported by core { - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i < 5; ++i) { - if (InnderDemon[i] > 0) + if (InnderDemon[i]) { Creature* unit = ObjectAccessor::GetCreature((*me), InnderDemon[i]); if (unit && unit->IsAlive()) @@ -481,7 +475,7 @@ public: if (SwitchToDemon_Timer <= diff) { //switch to demon form - me->RemoveAurasDueToSpell(SPELL_WHIRLWIND, 0); + me->RemoveAurasDueToSpell(SPELL_WHIRLWIND); me->SetDisplayId(MODEL_DEMON); Talk(SAY_SWITCH_TO_DEMON); me->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_ID , 0); @@ -576,8 +570,8 @@ public: Creature* Copy = NULL; Copy = DoSpawnCreature(DEMON_FORM, 0, 0, 0, 0, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 6000); if (Copy) - { - Demon = Copy->GetGUID(); + { + Demon = Copy->GetGUID(); if (me->GetVictim()) Copy->AI()->AttackStart(me->GetVictim()); } @@ -682,13 +676,12 @@ public: npc_greyheart_spellbinderAI(Creature* creature) : ScriptedAI(creature) { instance = creature->GetInstanceScript(); - leotherasGUID = 0; AddedBanish = false; } InstanceScript* instance; - uint64 leotherasGUID; + ObjectGuid leotherasGUID; uint32 Mindblast_Timer; uint32 Earthshock_Timer; @@ -700,7 +693,7 @@ public: Mindblast_Timer = urand(3000, 8000); Earthshock_Timer = urand(5000, 10000); - instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, 0); + instance->SetGuidData(DATA_LEOTHERAS_EVENT_STARTER, ObjectGuid::Empty); Creature* leotheras = ObjectAccessor::GetCreature(*me, leotherasGUID); if (leotheras && leotheras->IsAlive()) ENSURE_AI(boss_leotheras_the_blind::boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(/*false*/); @@ -709,7 +702,7 @@ public: void EnterCombat(Unit* who) override { me->InterruptNonMeleeSpells(false); - instance->SetData64(DATA_LEOTHERAS_EVENT_STARTER, who->GetGUID()); + instance->SetGuidData(DATA_LEOTHERAS_EVENT_STARTER, who->GetGUID()); } void JustRespawned() override @@ -734,12 +727,12 @@ public: void UpdateAI(uint32 diff) override { if (!leotherasGUID) - leotherasGUID = instance->GetData64(DATA_LEOTHERAS); + leotherasGUID = instance->GetGuidData(DATA_LEOTHERAS); - if (!me->IsInCombat() && instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)) + if (!me->IsInCombat() && instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)) { Unit* victim = NULL; - victim = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)); + victim = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)); if (victim) AttackStart(victim); } @@ -750,7 +743,7 @@ public: return; } - if (!instance->GetData64(DATA_LEOTHERAS_EVENT_STARTER)) + if (!instance->GetGuidData(DATA_LEOTHERAS_EVENT_STARTER)) { EnterEvadeMode(); return; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp index d501b919614..0a538ac0c39 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/boss_morogrim_tidewalker.cpp @@ -215,8 +215,8 @@ public: { //Teleport 4 players under the waterfalls Unit* target; - std::set<uint64> list; - std::set<uint64>::const_iterator itr; + GuidSet targets; + GuidSet::const_iterator itr; for (uint8 i = 0; i < 4; ++i) { counter = 0; @@ -226,13 +226,13 @@ public: if (counter < Playercount) break; if (target) - itr = list.find(target->GetGUID()); + itr = targets.find(target->GetGUID()); ++counter; - } while (itr != list.end()); + } while (itr != targets.end()); if (target) { - list.insert(target->GetGUID()); + targets.insert(target->GetGUID()); ApplyWateryGrave(target, i); } } @@ -253,8 +253,8 @@ public: if (WateryGlobules_Timer <= diff) { Unit* pGlobuleTarget; - std::set<uint64> globulelist; - std::set<uint64>::const_iterator itr; + GuidSet globules; + GuidSet::const_iterator itr; for (uint8 g = 0; g < 4; g++) //one unit can't cast more than one spell per update, so some players have to cast for us XD { counter = 0; @@ -262,14 +262,14 @@ public: { pGlobuleTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 50, true); if (pGlobuleTarget) - itr = globulelist.find(pGlobuleTarget->GetGUID()); + itr = globules.find(pGlobuleTarget->GetGUID()); if (counter > Playercount) break; ++counter; - } while (itr != globulelist.end()); + } while (itr != globules.end()); if (pGlobuleTarget) { - globulelist.insert(pGlobuleTarget->GetGUID()); + globules.insert(pGlobuleTarget->GetGUID()); pGlobuleTarget->CastSpell(pGlobuleTarget, globulespell[g], true); } } diff --git a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp index a3577f40d68..3fb090ab94c 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SerpentShrine/instance_serpent_shrine.cpp @@ -94,20 +94,6 @@ class instance_serpent_shrine : public InstanceMapScript { memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - LurkerBelow = 0; - Sharkkis = 0; - Tidalvess = 0; - Caribdis = 0; - LadyVashj = 0; - Karathress = 0; - KarathressEvent_Starter = 0; - LeotherasTheBlind = 0; - LeotherasEventStarter = 0; - - ControlConsole = 0; - BridgePart[0] = 0; - BridgePart[1] = 0; - BridgePart[2] = 0; StrangePool = 0; Water = WATERSTATE_FRENZY; @@ -247,7 +233,7 @@ class instance_serpent_shrine : public InstanceMapScript } } - void SetData64(uint32 type, uint64 data) override + void SetGuidData(uint32 type, ObjectGuid data) override { if (type == DATA_KARATHRESSEVENT_STARTER) KarathressEvent_Starter = data; @@ -255,7 +241,7 @@ class instance_serpent_shrine : public InstanceMapScript LeotherasEventStarter = data; } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -280,7 +266,7 @@ class instance_serpent_shrine : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -297,7 +283,6 @@ class instance_serpent_shrine : public InstanceMapScript HandleGameObject(BridgePart[0], true); HandleGameObject(BridgePart[0], true); } - ControlConsole = data; break; case DATA_TRASH: if (data == 1 && TrashCount < MIN_KILLS) @@ -424,18 +409,18 @@ class instance_serpent_shrine : public InstanceMapScript } private: - uint64 LurkerBelow; - uint64 Sharkkis; - uint64 Tidalvess; - uint64 Caribdis; - uint64 LadyVashj; - uint64 Karathress; - uint64 KarathressEvent_Starter; - uint64 LeotherasTheBlind; - uint64 LeotherasEventStarter; - - uint64 ControlConsole; - uint64 BridgePart[3]; + ObjectGuid LurkerBelow; + ObjectGuid Sharkkis; + ObjectGuid Tidalvess; + ObjectGuid Caribdis; + ObjectGuid LadyVashj; + ObjectGuid Karathress; + ObjectGuid KarathressEvent_Starter; + ObjectGuid LeotherasTheBlind; + ObjectGuid LeotherasEventStarter; + + ObjectGuid ControlConsole; + ObjectGuid BridgePart[3]; uint32 StrangePool; uint32 FishingTimer; uint32 WaterCheckTimer; diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp index 78a14539e25..3207727b5d1 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/boss_mekgineer_steamrigger.cpp @@ -226,7 +226,7 @@ public: { if (instance->GetBossState(DATA_MEKGINEER_STEAMRIGGER) == IN_PROGRESS) { - if (Creature* mekgineer = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MEKGINEER_STEAMRIGGER))) + if (Creature* mekgineer = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MEKGINEER_STEAMRIGGER))) { if (me->IsWithinDistInMap(mekgineer, MAX_REPAIR_RANGE)) { diff --git a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp index 40bc8dd69d7..f0884e83baa 100644 --- a/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp +++ b/src/server/scripts/Outland/CoilfangReservoir/SteamVault/instance_steam_vault.cpp @@ -58,11 +58,6 @@ class instance_steam_vault : public InstanceMapScript SetHeaders(DataHeader); SetBossNumber(EncounterCount); - ThespiaGUID = 0; - MekgineerGUID = 0; - KalithreshGUID = 0; - - MainChambersDoorGUID = 0; DistillerState = 0; } @@ -96,7 +91,7 @@ class instance_steam_vault : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -109,7 +104,7 @@ class instance_steam_vault : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -158,11 +153,11 @@ class instance_steam_vault : public InstanceMapScript } protected: - uint64 ThespiaGUID; - uint64 MekgineerGUID; - uint64 KalithreshGUID; + ObjectGuid ThespiaGUID; + ObjectGuid MekgineerGUID; + ObjectGuid KalithreshGUID; - uint64 MainChambersDoorGUID; + ObjectGuid MainChambersDoorGUID; uint8 DistillerState; }; 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 7090a693876..d3b11d481fb 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 @@ -54,7 +54,7 @@ public: struct boss_the_black_stalkerAI : public ScriptedAI { - boss_the_black_stalkerAI(Creature* creature) : ScriptedAI(creature) + boss_the_black_stalkerAI(Creature* creature) : ScriptedAI(creature), Striders(creature) { } @@ -62,11 +62,11 @@ public: uint32 Levitate_Timer; uint32 ChainLightning_Timer; uint32 StaticCharge_Timer; - uint64 LevitatedTarget; + ObjectGuid LevitatedTarget; uint32 LevitatedTarget_Timer; bool InAir; uint32 check_Timer; - std::list<uint64> Striders; + SummonList Striders; void Reset() override { @@ -75,9 +75,9 @@ public: StaticCharge_Timer = 10000; SporeStriders_Timer = 10000 + rand32() % 5000; check_Timer = 5000; - LevitatedTarget = 0; + LevitatedTarget.Clear(); LevitatedTarget_Timer = 0; - Striders.clear(); + Striders.DespawnAll(); } void EnterCombat(Unit* /*who*/) override { } @@ -86,7 +86,7 @@ public: { if (summon && summon->GetEntry() == ENTRY_SPORE_STRIDER) { - Striders.push_back(summon->GetGUID()); + Striders.Summon(summon); if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1)) summon->AI()->AttackStart(target); else @@ -97,9 +97,7 @@ public: void JustDied(Unit* /*killer*/) override { - for (std::list<uint64>::const_iterator i = Striders.begin(); i != Striders.end(); ++i) - if (Creature* strider = ObjectAccessor::GetCreature(*me, *i)) - strider->DisappearAndDie(); + Striders.DespawnAll(); } void UpdateAI(uint32 diff) override @@ -136,13 +134,13 @@ public: { if (!target->HasAura(SPELL_LEVITATE)) { - LevitatedTarget = 0; + LevitatedTarget.Clear(); return; } if (InAir) { target->AddAura(SPELL_SUSPENSION, target); - LevitatedTarget = 0; + LevitatedTarget.Clear(); } else { @@ -152,7 +150,7 @@ public: } } else - LevitatedTarget = 0; + LevitatedTarget.Clear(); } else LevitatedTarget_Timer -= diff; } if (Levitate_Timer <= diff) 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 3b7bb0c4312..0fcc7310d07 100644 --- a/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp +++ b/src/server/scripts/Outland/GruulsLair/boss_high_king_maulgar.cpp @@ -250,7 +250,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); @@ -333,7 +333,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); @@ -419,7 +419,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); @@ -496,7 +496,7 @@ public: void JustDied(Unit* /*killer*/) override { - if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_MAULGAR))) + if (Creature* maulgar = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_MAULGAR))) maulgar->AI()->DoAction(ACTION_ADD_DEATH); instance->SetBossState(DATA_MAULGAR, DONE); diff --git a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp index 3337ce47fd6..5f8bafc736b 100644 --- a/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp +++ b/src/server/scripts/Outland/GruulsLair/instance_gruuls_lair.cpp @@ -48,8 +48,6 @@ class instance_gruuls_lair : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); LoadMinionData(minionData); - - MaulgarGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -112,7 +110,7 @@ class instance_gruuls_lair : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -121,11 +119,11 @@ class instance_gruuls_lair : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 MaulgarGUID; + ObjectGuid MaulgarGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp index 15c660b4ad7..a0673d4aced 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/boss_broggok.cpp @@ -133,7 +133,7 @@ class go_broggok_lever : public GameObjectScript if (instance->GetBossState(DATA_BROGGOK) != DONE && instance->GetBossState(DATA_BROGGOK) != IN_PROGRESS) { instance->SetBossState(DATA_BROGGOK, IN_PROGRESS); - if (Creature* broggok = ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_BROGGOK))) + if (Creature* broggok = ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_BROGGOK))) broggok->AI()->DoAction(ACTION_PREPARE_BROGGOK); } 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 b2f199008d0..da7074b131f 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 @@ -65,8 +65,6 @@ class boss_kelidan_the_breaker : public CreatureScript { boss_kelidan_the_breakerAI(Creature* creature) : BossAI(creature, DATA_KELIDAN_THE_BREAKER) { - for (uint8 i = 0; i < 5; ++i) - Channelers[i] = 0; } uint32 ShadowVolley_Timer; @@ -76,7 +74,7 @@ class boss_kelidan_the_breaker : public CreatureScript uint32 check_Timer; bool Firenova; bool addYell; - uint64 Channelers[5]; + ObjectGuid Channelers[5]; void Reset() override { @@ -116,7 +114,7 @@ class boss_kelidan_the_breaker : public CreatureScript addYell = true; Talk(SAY_ADD_AGGRO); } - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i<5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (who && channeler && !channeler->IsInCombat()) @@ -126,7 +124,7 @@ class boss_kelidan_the_breaker : public CreatureScript void ChannelerDied(Unit* killer) { - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i < 5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (channeler && channeler->IsAlive()) @@ -138,25 +136,25 @@ class boss_kelidan_the_breaker : public CreatureScript AttackStart(killer); } - uint64 GetChanneled(Creature* channeler1) + ObjectGuid GetChanneled(Creature* channeler1) { SummonChannelers(); if (!channeler1) - return 0; + return ObjectGuid::Empty; uint8 i; - for (i=0; i<5; ++i) + for (i = 0; i < 5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (channeler && channeler->GetGUID() == channeler1->GetGUID()) break; } - return Channelers[(i+2)%5]; + return Channelers[(i + 2) % 5]; } void SummonChannelers() { - for (uint8 i=0; i<5; ++i) + for (uint8 i = 0; i < 5; ++i) { Creature* channeler = ObjectAccessor::GetCreature(*me, Channelers[i]); if (!channeler || channeler->isDead()) @@ -164,7 +162,7 @@ class boss_kelidan_the_breaker : public CreatureScript if (channeler) Channelers[i] = channeler->GetGUID(); else - Channelers[i] = 0; + Channelers[i].Clear(); } } @@ -310,16 +308,19 @@ class npc_shadowmoon_channeler : public CreatureScript if (check_Timer <= diff) { if (!me->IsNonMeleeSpellCast(false)) + { if (Creature* Kelidan = me->FindNearestCreature(ENTRY_KELIDAN, 100)) { - uint64 channeler = ENSURE_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(me); + ObjectGuid channeler = ENSURE_AI(boss_kelidan_the_breaker::boss_kelidan_the_breakerAI, Kelidan->AI())->GetChanneled(me); if (Unit* channeled = ObjectAccessor::GetUnit(*me, channeler)) DoCast(channeled, SPELL_CHANNELING); } + } check_Timer = 5000; } else check_Timer -= diff; + return; } diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index d88594d9c1e..8e9018a99c9 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -44,20 +44,6 @@ class instance_blood_furnace : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - TheMakerGUID = 0; - BroggokGUID = 0; - KelidanTheBreakerGUID = 0; - - BroggokLeverGUID = 0; - PrisonDoor4GUID = 0; - - memset(PrisonCellGUIDs, 0, 8 * sizeof(uint64)); - - PrisonersCell5.clear(); - PrisonersCell6.clear(); - PrisonersCell7.clear(); - PrisonersCell8.clear(); - PrisonerCounter5 = 0; PrisonerCounter6 = 0; PrisonerCounter7 = 0; @@ -154,7 +140,7 @@ class instance_blood_furnace : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -168,7 +154,7 @@ class instance_blood_furnace : public InstanceMapScript return BroggokLeverGUID; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -219,9 +205,9 @@ class instance_blood_furnace : public InstanceMapScript HandleGameObject(PrisonCellGUIDs[DATA_PRISON_CELL8 - DATA_PRISON_CELL1], false); } - void ResetPrisoners(const std::set<uint64>& prisoners) + void ResetPrisoners(GuidSet const& prisoners) { - for (std::set<uint64>::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) + for (GuidSet::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) if (Creature* prisoner = instance->GetCreature(*i)) ResetPrisoner(prisoner); } @@ -273,7 +259,7 @@ class instance_blood_furnace : public InstanceMapScript ResetPrisoner(creature); } - void PrisonerDied(uint64 guid) + void PrisonerDied(ObjectGuid guid) { if (PrisonersCell5.find(guid) != PrisonersCell5.end() && --PrisonerCounter5 <= 0) ActivateCell(DATA_PRISON_CELL6); @@ -313,9 +299,9 @@ class instance_blood_furnace : public InstanceMapScript } } - void ActivatePrisoners(std::set<uint64> const& prisoners) + void ActivatePrisoners(GuidSet const& prisoners) { - for (std::set<uint64>::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) + for (GuidSet::const_iterator i = prisoners.begin(); i != prisoners.end(); ++i) if (Creature* prisoner = instance->GetCreature(*i)) { prisoner->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE); @@ -324,19 +310,19 @@ class instance_blood_furnace : public InstanceMapScript } protected: - uint64 TheMakerGUID; - uint64 BroggokGUID; - uint64 KelidanTheBreakerGUID; + ObjectGuid TheMakerGUID; + ObjectGuid BroggokGUID; + ObjectGuid KelidanTheBreakerGUID; - uint64 BroggokLeverGUID; - uint64 PrisonDoor4GUID; + ObjectGuid BroggokLeverGUID; + ObjectGuid PrisonDoor4GUID; - uint64 PrisonCellGUIDs[8]; + ObjectGuid PrisonCellGUIDs[8]; - std::set<uint64>PrisonersCell5; - std::set<uint64>PrisonersCell6; - std::set<uint64>PrisonersCell7; - std::set<uint64>PrisonersCell8; + GuidSet PrisonersCell5; + GuidSet PrisonersCell6; + GuidSet PrisonersCell7; + GuidSet PrisonersCell8; uint8 PrisonerCounter5; uint8 PrisonerCounter6; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp index 237aa506589..061d6a6a9a8 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/boss_omor_the_unscarred.cpp @@ -74,7 +74,7 @@ class boss_omor_the_unscarred : public CreatureScript Shadowbolt_Timer = 2000; Summon_Timer = 10000; SummonedCount = 0; - PlayerGUID = 0; + PlayerGUID.Clear(); CanPullBack = false; _Reset(); @@ -141,7 +141,7 @@ class boss_omor_the_unscarred : public CreatureScript DoCast(temp, SPELL_SHADOW_WHIP); } } - PlayerGUID = 0; + PlayerGUID.Clear(); ShadowWhip_Timer = 2000; CanPullBack = false; } @@ -218,7 +218,7 @@ class boss_omor_the_unscarred : public CreatureScript uint32 Shadowbolt_Timer; uint32 Summon_Timer; uint32 SummonedCount; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool CanPullBack; }; 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 d2a93caf7a3..44c93dc77c9 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 @@ -70,7 +70,6 @@ class boss_nazan : public CreatureScript { boss_nazanAI(Creature* creature) : BossAI(creature, DATA_NAZAN) { - VazrudenGUID = 0; flight = true; } @@ -183,7 +182,7 @@ class boss_nazan : public CreatureScript uint32 Fly_Timer; uint32 Turn_Timer; bool flight; - uint64 VazrudenGUID; + ObjectGuid VazrudenGUID; }; CreatureAI* GetAI(Creature* creature) const override @@ -282,8 +281,6 @@ class boss_vazruden_the_herald : public CreatureScript summoned = false; sentryDown = false; lootSpawned = false; - NazanGUID = 0; - VazrudenGUID = 0; } void Reset() override @@ -304,7 +301,7 @@ class boss_vazruden_the_herald : public CreatureScript if (Nazan) { Nazan->DisappearAndDie(); - NazanGUID = 0; + NazanGUID.Clear(); } Creature* Vazruden = ObjectAccessor::GetCreature(*me, VazrudenGUID); @@ -313,7 +310,7 @@ class boss_vazruden_the_herald : public CreatureScript if (Vazruden) { Vazruden->DisappearAndDie(); - VazrudenGUID = 0; + VazrudenGUID.Clear(); } summoned = false; me->ClearUnitState(UNIT_STATE_ROOT); @@ -435,8 +432,8 @@ class boss_vazruden_the_herald : public CreatureScript uint32 waypoint; uint32 check; bool sentryDown; - uint64 NazanGUID; - uint64 VazrudenGUID; + ObjectGuid NazanGUID; + ObjectGuid VazrudenGUID; bool summoned; bool lootSpawned; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp index c8ffc7d495a..1c3eb6d8c34 100644 --- a/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/HellfireRamparts/instance_hellfire_ramparts.cpp @@ -40,7 +40,6 @@ class instance_ramparts : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - felIronChestGUID = 0; } void OnGameObjectCreate(GameObject* go) override @@ -74,7 +73,7 @@ class instance_ramparts : public InstanceMapScript } protected: - uint64 felIronChestGUID; + ObjectGuid felIronChestGUID; bool spawned; }; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp index 8a5d6e41780..50cdcfe121b 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp @@ -85,7 +85,7 @@ enum Spells //count of clickers needed to interrupt blast nova #define CLICKERS_COUNT 5 -typedef std::map<uint64, uint64> CubeMap; +typedef std::map<ObjectGuid, ObjectGuid> CubeMap; class npc_abyssal : public CreatureScript { @@ -253,10 +253,10 @@ class boss_magtheridon : public CreatureScript instance->SetData(DATA_COLLAPSE, false); } - void SetClicker(uint64 cubeGUID, uint64 clickerGUID) + void SetClicker(ObjectGuid cubeGUID, ObjectGuid clickerGUID) { // to avoid multiclicks from 1 cube - if (uint64 guid = Cube[cubeGUID]) + if (ObjectGuid guid = Cube[cubeGUID]) DebuffClicker(ObjectAccessor::GetUnit(*me, guid)); Cube[cubeGUID] = clickerGUID; NeedCheckCube = true; @@ -284,7 +284,7 @@ class boss_magtheridon : public CreatureScript if (!clicker || !clicker->HasAura(SPELL_SHADOW_GRASP)) { DebuffClicker(clicker); - (*i).second = 0; + (*i).second.Clear(); } else ++ClickerNum; @@ -588,7 +588,7 @@ public: if (instance->GetData(DATA_MAGTHERIDON_EVENT) != IN_PROGRESS) return true; - Creature* Magtheridon =ObjectAccessor::GetCreature(*go, instance->GetData64(DATA_MAGTHERIDON)); + Creature* Magtheridon =ObjectAccessor::GetCreature(*go, instance->GetGuidData(DATA_MAGTHERIDON)); if (!Magtheridon || !Magtheridon->IsAlive()) return true; diff --git a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp index 45262f9109c..db0159d1a2d 100644 --- a/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/instance_magtheridons_lair.cpp @@ -58,10 +58,10 @@ class instance_magtheridons_lair : public InstanceMapScript uint32 m_auiEncounter[MAX_ENCOUNTER]; - uint64 MagtheridonGUID; - std::set<uint64> ChannelerGUID; - uint64 DoorGUID; - std::set<uint64> ColumnGUID; + ObjectGuid MagtheridonGUID; + GuidSet ChannelerGUID; + ObjectGuid DoorGUID; + GuidSet ColumnGUID; uint32 CageTimer; uint32 RespawnTimer; @@ -71,11 +71,6 @@ class instance_magtheridons_lair : public InstanceMapScript SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - MagtheridonGUID = 0; - ChannelerGUID.clear(); - DoorGUID = 0; - ColumnGUID.clear(); - CageTimer = 0; RespawnTimer = 0; } @@ -124,14 +119,14 @@ class instance_magtheridons_lair : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { case DATA_MAGTHERIDON: return MagtheridonGUID; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override @@ -152,7 +147,7 @@ class instance_magtheridons_lair : public InstanceMapScript if (m_auiEncounter[1] != NOT_STARTED) { m_auiEncounter[1] = NOT_STARTED; - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { if (Creature* Channeler = instance->GetCreature(*i)) { @@ -171,7 +166,7 @@ class instance_magtheridons_lair : public InstanceMapScript { m_auiEncounter[1] = IN_PROGRESS; // Let all five channelers aggro. - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { Creature* Channeler = instance->GetCreature(*i); if (Channeler && Channeler->IsAlive()) @@ -188,7 +183,7 @@ class instance_magtheridons_lair : public InstanceMapScript } break; case DONE: // Add buff and check if all channelers are dead. - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { Creature* Channeler = instance->GetCreature(*i); if (Channeler && Channeler->IsAlive()) @@ -204,7 +199,7 @@ class instance_magtheridons_lair : public InstanceMapScript break; case DATA_COLLAPSE: // true - collapse / false - reset - for (std::set<uint64>::const_iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i) + for (GuidSet::const_iterator i = ColumnGUID.begin(); i != ColumnGUID.end(); ++i) DoUseDoorOrButton(*i); break; default: @@ -239,7 +234,7 @@ class instance_magtheridons_lair : public InstanceMapScript { if (RespawnTimer <= diff) { - for (std::set<uint64>::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) + for (GuidSet::const_iterator i = ChannelerGUID.begin(); i != ChannelerGUID.end(); ++i) { if (Creature* Channeler = instance->GetCreature(*i)) { diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_nethekurse.cpp index 9a8f83fa1c2..741d5b78285 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 = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) + if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetGuidData(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 = ObjectAccessor::GetCreature(*me, instance->GetData64(NPC_GRAND_WARLOCK_NETHEKURSE))) + if (Creature* Kurse = ObjectAccessor::GetCreature(*me, instance->GetGuidData(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 d61c40f8e3b..f60c65b0b7a 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/boss_warbringer_omrogg.cpp @@ -136,8 +136,6 @@ class boss_warbringer_omrogg : public CreatureScript { boss_warbringer_omroggAI(Creature* creature) : BossAI(creature, DATA_OMROGG) { - LeftHeadGUID = 0; - RightHeadGUID = 0; } void Reset() override @@ -145,13 +143,13 @@ class boss_warbringer_omrogg : public CreatureScript if (Unit* LeftHead = ObjectAccessor::GetUnit(*me, LeftHeadGUID)) { LeftHead->setDeathState(JUST_DIED); - LeftHeadGUID = 0; + LeftHeadGUID.Clear(); } if (Unit* RightHead = ObjectAccessor::GetUnit(*me, RightHeadGUID)) { RightHead->setDeathState(JUST_DIED); - RightHeadGUID = 0; + RightHeadGUID.Clear(); } AggroYell = false; @@ -363,8 +361,8 @@ class boss_warbringer_omrogg : public CreatureScript } private: - uint64 LeftHeadGUID; - uint64 RightHeadGUID; + ObjectGuid LeftHeadGUID; + ObjectGuid RightHeadGUID; int iaggro; int ithreat; int ikilling; 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 f1dfcc2b391..7145ebfd7aa 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 @@ -143,7 +143,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript void removeAdds() { - for (std::vector<uint64>::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr) + for (GuidVector::const_iterator itr = adds.begin(); itr!= adds.end(); ++itr) { Creature* creature = ObjectAccessor::GetCreature(*me, *itr); if (creature && creature->IsAlive()) @@ -155,7 +155,7 @@ class boss_warchief_kargath_bladefist : public CreatureScript } adds.clear(); - for (std::vector<uint64>::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr) + for (GuidVector::const_iterator itr = assassins.begin(); itr!= assassins.end(); ++itr) { Creature* creature = ObjectAccessor::GetCreature(*me, *itr); if (creature && creature->IsAlive()) @@ -295,8 +295,8 @@ class boss_warchief_kargath_bladefist : public CreatureScript } private: - std::vector<uint64> adds; - std::vector<uint64> assassins; + GuidVector adds; + GuidVector assassins; uint32 Charge_timer; uint32 Blade_Dance_Timer; uint32 Summon_Assistant_Timer; diff --git a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp index 8ee63ff03a2..838297aa21f 100644 --- a/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/ShatteredHalls/instance_shattered_halls.cpp @@ -45,9 +45,6 @@ class instance_shattered_halls : public InstanceMapScript { SetHeaders(DataHeader); SetBossNumber(EncounterCount); - nethekurseGUID = 0; - nethekurseDoor1GUID = 0; - nethekurseDoor2GUID = 0; } void OnGameObjectCreate(GameObject* go) override @@ -98,7 +95,7 @@ class instance_shattered_halls : public InstanceMapScript return true; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -112,13 +109,13 @@ class instance_shattered_halls : public InstanceMapScript return nethekurseDoor2GUID; break; } - return 0; + return ObjectGuid::Empty; } protected: - uint64 nethekurseGUID; - uint64 nethekurseDoor1GUID; - uint64 nethekurseDoor2GUID; + ObjectGuid nethekurseGUID; + ObjectGuid nethekurseDoor1GUID; + ObjectGuid nethekurseDoor2GUID; }; }; diff --git a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp index 09cb72f1a47..8dd1aad5d4d 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_alar.cpp @@ -178,7 +178,7 @@ class boss_alar : public CreatureScript me->RemoveAllAuras(); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); me->AttackStop(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->SetSpeed(MOVE_RUN, 5.0f); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MovePoint(0, waypoint[5][0], waypoint[5][1], waypoint[5][2]); @@ -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 = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALAR))) + if (Unit* Alar = ObjectAccessor::GetUnit(*me, instance->GetGuidData(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 63c01540af2..0a9e5665ec8 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 = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ASTROMANCER)); + target = ObjectAccessor::GetUnit(*me, instance->GetGuidData(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 64deebce8b8..8b23ee172af 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp @@ -163,7 +163,7 @@ struct advisorbase_ai : public ScriptedAI bool FakeDeath; bool m_bDoubled_Health; uint32 DelayRes_Timer; - uint64 DelayRes_Target; + ObjectGuid DelayRes_Target; void Reset() override { @@ -175,7 +175,7 @@ struct advisorbase_ai : public ScriptedAI FakeDeath = false; DelayRes_Timer = 0; - DelayRes_Target = 0; + DelayRes_Target.Clear(); me->SetStandState(UNIT_STAND_STATE_STAND); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); @@ -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 = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_KAELTHAS))) + if (Creature* Kaelthas = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_KAELTHAS))) Kaelthas->AI()->EnterEvadeMode(); } @@ -245,7 +245,7 @@ struct advisorbase_ai : public ScriptedAI me->ModifyAuraState(AURA_STATE_HEALTHLESS_35_PERCENT, false); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); me->ClearAllReactives(); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); me->GetMotionMaster()->Clear(); me->GetMotionMaster()->MoveIdle(); me->SetStandState(UNIT_STAND_STATE_DEAD); @@ -290,7 +290,6 @@ class boss_kaelthas : public CreatureScript boss_kaelthasAI(Creature* creature) : ScriptedAI(creature), summons(me) { instance = creature->GetInstanceScript(); - memset(&m_auiAdvisorGuid, 0, sizeof(m_auiAdvisorGuid)); } InstanceScript* instance; @@ -316,7 +315,7 @@ class boss_kaelthas : public CreatureScript SummonList summons; - uint64 m_auiAdvisorGuid[MAX_ADVISORS]; + ObjectGuid m_auiAdvisorGuid[MAX_ADVISORS]; void Reset() override { @@ -363,10 +362,10 @@ class boss_kaelthas : public CreatureScript void StartEvent() { - m_auiAdvisorGuid[0] = instance->GetData64(DATA_THALADREDTHEDARKENER); - m_auiAdvisorGuid[1] = instance->GetData64(DATA_LORDSANGUINAR); - m_auiAdvisorGuid[2] = instance->GetData64(DATA_GRANDASTROMANCERCAPERNIAN); - m_auiAdvisorGuid[3] = instance->GetData64(DATA_MASTERENGINEERTELONICUS); + m_auiAdvisorGuid[0] = instance->GetGuidData(DATA_THALADREDTHEDARKENER); + m_auiAdvisorGuid[1] = instance->GetGuidData(DATA_LORDSANGUINAR); + m_auiAdvisorGuid[2] = instance->GetGuidData(DATA_GRANDASTROMANCERCAPERNIAN); + m_auiAdvisorGuid[3] = instance->GetGuidData(DATA_MASTERENGINEERTELONICUS); if (!m_auiAdvisorGuid[0] || !m_auiAdvisorGuid[1] || !m_auiAdvisorGuid[2] || !m_auiAdvisorGuid[3]) { @@ -927,7 +926,7 @@ class boss_kaelthas : public CreatureScript //Using packet workaround WorldPacket data(SMSG_MOVE_SET_CAN_FLY, 12); - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); data << uint32(0); unit->SendMessageToSet(&data, true); } @@ -953,7 +952,7 @@ class boss_kaelthas : public CreatureScript { //Using packet workaround WorldPacket data(SMSG_MOVE_UNSET_CAN_FLY, 12); - data.append(unit->GetPackGUID()); + data << unit->GetPackGUID(); data << uint32(0); unit->SendMessageToSet(&data, true); } 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 6b78706b437..b518eb1cb8b 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/boss_void_reaver.cpp @@ -137,7 +137,7 @@ class boss_void_reaver : public CreatureScript target = me->GetVictim(); if (target) - me->CastSpell(target, SPELL_ARCANE_ORB, false, NULL, NULL, 0); + me->CastSpell(target, SPELL_ARCANE_ORB, false, NULL, NULL); ArcaneOrb_Timer = 3000; } else diff --git a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp index 07cbd68f741..2234547c76a 100644 --- a/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp +++ b/src/server/scripts/Outland/TempestKeep/Eye/instance_the_eye.cpp @@ -48,13 +48,13 @@ class instance_the_eye : public InstanceMapScript { instance_the_eye_InstanceMapScript(Map* map) : InstanceScript(map) { } - uint64 ThaladredTheDarkener; - uint64 LordSanguinar; - uint64 GrandAstromancerCapernian; - uint64 MasterEngineerTelonicus; - uint64 Kaelthas; - uint64 Astromancer; - uint64 Alar; + ObjectGuid ThaladredTheDarkener; + ObjectGuid LordSanguinar; + ObjectGuid GrandAstromancerCapernian; + ObjectGuid MasterEngineerTelonicus; + ObjectGuid Kaelthas; + ObjectGuid Astromancer; + ObjectGuid Alar; uint8 KaelthasEventPhase; uint8 AlarEventPhase; @@ -65,14 +65,6 @@ class instance_the_eye : public InstanceMapScript SetHeaders(DataHeader); memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - ThaladredTheDarkener = 0; - LordSanguinar = 0; - GrandAstromancerCapernian = 0; - MasterEngineerTelonicus = 0; - Kaelthas = 0; - Astromancer = 0; - Alar = 0; - KaelthasEventPhase = 0; AlarEventPhase = 0; } @@ -114,7 +106,7 @@ class instance_the_eye : public InstanceMapScript } } - uint64 GetData64(uint32 identifier) const override + ObjectGuid GetGuidData(uint32 identifier) const override { switch (identifier) { @@ -126,7 +118,7 @@ class instance_the_eye : public InstanceMapScript case DATA_ASTROMANCER: return Astromancer; case DATA_ALAR: return Alar; } - return 0; + return ObjectGuid::Empty; } void SetData(uint32 type, uint32 data) override diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp index 3befc3742ff..1a8658c8fbc 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/arcatraz.cpp @@ -322,7 +322,7 @@ class npc_warden_mellichar : public CreatureScript DoCast(me, SPELL_BUBBLE_VISUAL); instance->SetBossState(DATA_HARBINGER_SKYRISS, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false); IsRunning = true; } @@ -356,7 +356,7 @@ class npc_warden_mellichar : public CreatureScript case 2: DoCast(me, SPELL_TARGET_ALPHA); instance->SetData(DATA_WARDEN_1, IN_PROGRESS); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false); break; case 3: DoCast(me, SPELL_TARGET_BETA); diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp index 41bc93cfdfe..71e23a65d66 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp @@ -77,7 +77,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->SetData(1, 1); } @@ -163,7 +163,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); break; case EVENT_ME_FIRST: - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST); break; @@ -174,7 +174,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript if (HealthBelowPct(25) && !soccothratesTaunt) { - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_SOCCOTHRATES))) soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT); soccothratesTaunt = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp index 7563ecb40db..ec22baf2d4e 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_harbinger_skyriss.cpp @@ -158,18 +158,18 @@ class boss_harbinger_skyriss : public CreatureScript { case 1: Talk(SAY_INTRO); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), true); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), true); ++Intro_Phase; Intro_Timer = 25000; break; case 2: Talk(SAY_AGGRO); - if (Unit* mellic = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_MELLICHAR))) + if (Unit* mellic = ObjectAccessor::GetUnit(*me, instance->GetGuidData(DATA_MELLICHAR))) { //should have a better way to do this. possibly spell exist. mellic->setDeathState(JUST_DIED); mellic->SetHealth(0); - instance->HandleGameObject(instance->GetData64(DATA_WARDENS_SHIELD), false); + instance->HandleGameObject(instance->GetGuidData(DATA_WARDENS_SHIELD), false); } ++Intro_Phase; Intro_Timer = 3000; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp index a519ec7207c..27de2786243 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp @@ -103,7 +103,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->SetData(1, 1); } @@ -161,7 +161,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript switch (eventId) { case EVENT_PREFIGHT_1: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1); events.ScheduleEvent(EVENT_PREFIGHT_2, 3000); break; @@ -170,7 +170,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_3, 3000); break; case EVENT_PREFIGHT_3: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2); events.ScheduleEvent(EVENT_PREFIGHT_4, 6000); break; @@ -179,7 +179,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_5, 2000); break; case EVENT_PREFIGHT_5: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3); events.ScheduleEvent(EVENT_PREFIGHT_6, 3000); break; @@ -188,7 +188,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_7, 2000); break; case EVENT_PREFIGHT_7: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f); events.ScheduleEvent(EVENT_PREFIGHT_8, 4000); break; @@ -197,7 +197,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_PREFIGHT_9, 4000); break; case EVENT_PREFIGHT_9: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) { dalliah->SetFacingToObject(me); me->SetFacingToObject(dalliah); @@ -251,7 +251,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript events.ScheduleEvent(EVENT_KNOCK_AWAY, urand(11000, 12000)); break; case EVENT_ME_FIRST: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST); break; @@ -262,7 +262,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript if (HealthBelowPct(25) && !dalliahTaunt) { - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT); dalliahTaunt = true; } diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index b092243637b..984af86e645 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -39,14 +39,8 @@ class instance_arcatraz : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); - DalliahGUID = 0; - SoccothratesGUID = 0; - MellicharGUID = 0; - WardensShieldGUID = 0; - ConversationState = NOT_STARTED; - memset(StasisPodGUIDs, 0, 5 * sizeof(uint64)); memset(StasisPodStates, NOT_STARTED, 5 * sizeof(uint8)); } @@ -151,7 +145,7 @@ class instance_arcatraz : public InstanceMapScript return 0; } - uint64 GetData64(uint32 data) const override + ObjectGuid GetGuidData(uint32 data) const override { switch (data) { @@ -166,7 +160,7 @@ class instance_arcatraz : public InstanceMapScript default: break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -193,11 +187,11 @@ class instance_arcatraz : public InstanceMapScript } protected: - uint64 DalliahGUID; - uint64 SoccothratesGUID; - uint64 StasisPodGUIDs[5]; - uint64 MellicharGUID; - uint64 WardensShieldGUID; + ObjectGuid DalliahGUID; + ObjectGuid SoccothratesGUID; + ObjectGuid StasisPodGUIDs[5]; + ObjectGuid MellicharGUID; + ObjectGuid WardensShieldGUID; uint8 ConversationState; uint8 StasisPodStates[5]; 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 0c322877808..c0591f7b874 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 @@ -66,8 +66,6 @@ class boss_high_botanist_freywinn : public CreatureScript { boss_high_botanist_freywinnAI(Creature* creature) : BossAI(creature, DATA_HIGH_BOTANIST_FREYWINN) { } - std::list<uint64> Adds_List; - uint32 SummonSeedling_Timer; uint32 TreeForm_Timer; uint32 MoveCheck_Timer; @@ -76,7 +74,7 @@ class boss_high_botanist_freywinn : public CreatureScript void Reset() override { - Adds_List.clear(); + summons.DespawnAll(); SummonSeedling_Timer = 6000; TreeForm_Timer = 30000; @@ -93,7 +91,12 @@ class boss_high_botanist_freywinn : public CreatureScript void JustSummoned(Creature* summoned) override { if (summoned->GetEntry() == NPC_FRAYER) - Adds_List.push_back(summoned->GetGUID()); + summons.Summon(summoned); + } + + void SummonedCreatureDespawn(Creature* summon) override + { + summons.Despawn(summon); } void DoSummonSeedling() @@ -147,18 +150,15 @@ class boss_high_botanist_freywinn : public CreatureScript { if (MoveCheck_Timer <= diff) { - if (!Adds_List.empty()) + for (SummonList::iterator itr = summons.begin(); itr != summons.end(); ++itr) { - for (std::list<uint64>::iterator itr = Adds_List.begin(); itr != Adds_List.end(); ++itr) + if (Unit* temp = ObjectAccessor::GetUnit(*me, *itr)) { - if (Unit* temp = ObjectAccessor::GetUnit(*me, *itr)) + if (!temp->IsAlive()) { - if (!temp->IsAlive()) - { - Adds_List.erase(itr); - ++DeadAddsCount; - break; - } + summons.erase(itr); + ++DeadAddsCount; + break; } } } @@ -168,7 +168,7 @@ class boss_high_botanist_freywinn : public CreatureScript if (DeadAddsCount >= 3) { - Adds_List.clear(); + summons.DespawnAll(); DeadAddsCount = 0; me->InterruptNonMeleeSpells(true); 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 8bc9d0982e3..56c62bbf50f 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/boss_warp_splinter.cpp @@ -74,10 +74,9 @@ class npc_warp_splinter_treant : public CreatureScript { npc_warp_splinter_treantAI(Creature* creature) : ScriptedAI(creature) { - WarpGuid = 0; } - uint64 WarpGuid; + ObjectGuid WarpGuid; uint32 check_Timer; void Reset() override diff --git a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp index eb46211fa59..19453bd3925 100644 --- a/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp +++ b/src/server/scripts/Outland/TempestKeep/botanica/instance_the_botanica.cpp @@ -29,11 +29,6 @@ class instance_the_botanica : public InstanceMapScript instance_the_botanica_InstanceMapScript(Map* map) : InstanceScript(map) { SetHeaders(DataHeader); - CommanderSarannisGUID = 0; - HighBotanistFreywinnGUID = 0; - ThorngrinTheTenderGUID = 0; - LajGUID = 0; - WarpSplinterGUID = 0; } void OnCreatureCreate(Creature* creature) override @@ -60,7 +55,7 @@ class instance_the_botanica : public InstanceMapScript } } - uint64 GetData64(uint32 type) const override + ObjectGuid GetGuidData(uint32 type) const override { switch (type) { @@ -78,7 +73,7 @@ class instance_the_botanica : public InstanceMapScript break; } - return 0; + return ObjectGuid::Empty; } bool SetBossState(uint32 type, EncounterState state) override @@ -102,11 +97,11 @@ class instance_the_botanica : public InstanceMapScript } protected: - uint64 CommanderSarannisGUID; - uint64 HighBotanistFreywinnGUID; - uint64 ThorngrinTheTenderGUID; - uint64 LajGUID; - uint64 WarpSplinterGUID; + ObjectGuid CommanderSarannisGUID; + ObjectGuid HighBotanistFreywinnGUID; + ObjectGuid ThorngrinTheTenderGUID; + ObjectGuid LajGUID; + ObjectGuid WarpSplinterGUID; }; InstanceScript* GetInstanceScript(InstanceMap* map) const override diff --git a/src/server/scripts/Outland/boss_doomwalker.cpp b/src/server/scripts/Outland/boss_doomwalker.cpp index a193e8ff880..7b72da0b02e 100644 --- a/src/server/scripts/Outland/boss_doomwalker.cpp +++ b/src/server/scripts/Outland/boss_doomwalker.cpp @@ -94,7 +94,7 @@ class boss_doomwalker : public CreatureScript { if (who && who->GetTypeId() == TYPEID_PLAYER && me->IsValidAttackTarget(who)) - if (who->HasAura(SPELL_MARK_DEATH, 0)) + if (who->HasAura(SPELL_MARK_DEATH)) who->CastSpell(who, SPELL_AURA_DEATH, 1); } diff --git a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp index 03b8e7e69c8..b5e54fe85f0 100644 --- a/src/server/scripts/Outland/zone_blades_edge_mountains.cpp +++ b/src/server/scripts/Outland/zone_blades_edge_mountains.cpp @@ -115,13 +115,12 @@ public: { npc_bloodmaul_bruteAI(Creature* creature) : ScriptedAI(creature) { - PlayerGUID = 0; hp30 = false; } void Reset() override { - PlayerGUID = 0; + PlayerGUID.Clear(); hp30 = false; } @@ -207,7 +206,7 @@ public: private: EventMap events; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool hp30; }; @@ -617,7 +616,7 @@ class npc_simon_bunny : public CreatureScript uint8 gameLevel; uint8 fails; uint8 gameTicks; - uint64 playerGUID; + ObjectGuid playerGUID; uint32 clusterIds[SIMON_MAX_COLORS]; float zCoordCorrection; float searchDistance; @@ -727,7 +726,7 @@ class npc_simon_bunny : public CreatureScript } // Used for getting involved player guid. Parameter id is used for defining if is a large(Monument) or small(Relic) node - void SetGUID(uint64 guid, int32 id) override + void SetGUID(ObjectGuid guid, int32 id) override { me->SetCanFly(true); @@ -1131,7 +1130,6 @@ public: { npc_oscillating_frequency_scanner_master_bunnyAI(Creature* creature) : ScriptedAI(creature) { - playerGuid = 0; timer = 500; } @@ -1170,7 +1168,7 @@ public: } private: - uint64 playerGuid; + ObjectGuid playerGuid; uint32 timer; }; diff --git a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp index 0da70207a04..01ad2ce334f 100644 --- a/src/server/scripts/Outland/zone_hellfire_peninsula.cpp +++ b/src/server/scripts/Outland/zone_hellfire_peninsula.cpp @@ -310,7 +310,7 @@ public: void Reset() override { checkTimer = 5000; //check for creature every 5 sec - helboarGUID = 0; + helboarGUID.Clear(); } void MovementInform(uint32 type, uint32 id) override @@ -352,7 +352,7 @@ public: private: uint32 checkTimer; - uint64 helboarGUID; + ObjectGuid helboarGUID; }; CreatureAI* GetAI(Creature* creature) const override diff --git a/src/server/scripts/Outland/zone_nagrand.cpp b/src/server/scripts/Outland/zone_nagrand.cpp index a8a99d757e7..b8dd1393600 100644 --- a/src/server/scripts/Outland/zone_nagrand.cpp +++ b/src/server/scripts/Outland/zone_nagrand.cpp @@ -299,7 +299,7 @@ public: { corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+5, go->GetPositionY(), go->GetPositionZ()); if (player) - player->KilledMonsterCredit(NPC_CORKI_CREDIT_1, 0); + player->KilledMonsterCredit(NPC_CORKI_CREDIT_1); } } @@ -309,7 +309,7 @@ public: { corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()-5, go->GetPositionY(), go->GetPositionZ()); if (player) - player->KilledMonsterCredit(NPC_CORKI_2, 0); + player->KilledMonsterCredit(NPC_CORKI_2); } } @@ -319,7 +319,7 @@ public: { corki->GetMotionMaster()->MovePoint(1, go->GetPositionX()+4, go->GetPositionY(), go->GetPositionZ()); if (player) - player->KilledMonsterCredit(NPC_CORKI_CREDIT_3, 0); + player->KilledMonsterCredit(NPC_CORKI_CREDIT_3); } } return true; @@ -594,7 +594,7 @@ class go_warmaul_prison : public GameObjectScript if (Creature* prisoner = go->FindNearestCreature(NPC_MAGHAR_PRISONER, 5.0f)) { - player->KilledMonsterCredit(NPC_MAGHAR_PRISONER, 0); + player->KilledMonsterCredit(NPC_MAGHAR_PRISONER); prisoner->AI()->Talk(SAY_FREE, player); prisoner->DespawnOrUnsummon(6000); diff --git a/src/server/scripts/Outland/zone_netherstorm.cpp b/src/server/scripts/Outland/zone_netherstorm.cpp index f82c1f5fb58..eb2fae03202 100644 --- a/src/server/scripts/Outland/zone_netherstorm.cpp +++ b/src/server/scripts/Outland/zone_netherstorm.cpp @@ -83,9 +83,9 @@ public: { npc_commander_dawnforgeAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; - uint64 ardonisGUID; - uint64 pathaleonGUID; + ObjectGuid PlayerGUID; + ObjectGuid ardonisGUID; + ObjectGuid pathaleonGUID; uint32 Phase; uint32 PhaseSubphase; @@ -94,9 +94,9 @@ public: void Reset() override { - PlayerGUID = 0; - ardonisGUID = 0; - pathaleonGUID = 0; + PlayerGUID.Clear(); + ardonisGUID.Clear(); + pathaleonGUID.Clear(); Phase = 1; PhaseSubphase = 0; @@ -415,7 +415,6 @@ public: Materialize = false; Drained = false; WeakPercent = 25; - PlayerGUID = 0; ManaBurnTimer = 5000; } @@ -424,7 +423,7 @@ public: bool Drained; uint8 WeakPercent; - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 ManaBurnTimer; @@ -435,7 +434,7 @@ public: Drained = false; WeakPercent = 25 + (rand32() % 16); // 25-40 - PlayerGUID = 0; + PlayerGUID.Clear(); ManaBurnTimer = 5000 + (rand32() % 3 * 1000); // 5-8 sec cd @@ -725,7 +724,7 @@ class go_captain_tyralius_prison : public GameObjectScript go->UseDoorOrButton(); if (Creature* tyralius = go->FindNearestCreature(NPC_CAPTAIN_TYRALIUS, 1.0f)) { - player->KilledMonsterCredit(NPC_CAPTAIN_TYRALIUS, 0); + player->KilledMonsterCredit(NPC_CAPTAIN_TYRALIUS); tyralius->AI()->Talk(SAY_FREE); tyralius->DespawnOrUnsummon(8000); } diff --git a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp index db34665e641..358b5d44387 100644 --- a/src/server/scripts/Outland/zone_shadowmoon_valley.cpp +++ b/src/server/scripts/Outland/zone_shadowmoon_valley.cpp @@ -80,7 +80,7 @@ public: { npc_mature_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { } - uint64 uiPlayerGUID; + ObjectGuid uiPlayerGUID; bool bCanEat; bool bIsEating; @@ -90,7 +90,7 @@ public: void Reset() override { - uiPlayerGUID = 0; + uiPlayerGUID.Clear(); bCanEat = false; bIsEating = false; @@ -154,7 +154,7 @@ public: if (Player* player = ObjectAccessor::GetPlayer(*me, uiPlayerGUID)) { - player->KilledMonsterCredit(NPC_EVENT_PINGER, 0); + player->KilledMonsterCredit(NPC_EVENT_PINGER); if (GameObject* go = player->FindNearestGameObject(GO_CARCASS, 10)) go->Delete(); @@ -218,12 +218,11 @@ public: { npc_enslaved_netherwing_drakeAI(Creature* creature) : ScriptedAI(creature) { - PlayerGUID = 0; Tapped = false; Reset(); } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 FlyTimer; bool Tapped; @@ -276,7 +275,7 @@ public: if (player) DoCast(player, SPELL_FORCE_OF_NELTHARAKU, true); - PlayerGUID = 0; + PlayerGUID.Clear(); } me->SetVisible(false); me->SetDisableGravity(false); @@ -349,13 +348,13 @@ public: { npc_dragonmaw_peonAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; bool Tapped; uint32 PoisonTimer; void Reset() override { - PlayerGUID = 0; + PlayerGUID.Clear(); Tapped = false; PoisonTimer = 0; } @@ -400,7 +399,7 @@ public: { Player* player = ObjectAccessor::GetPlayer(*me, PlayerGUID); if (player && player->GetQuestStatus(11020) == QUEST_STATUS_INCOMPLETE) - player->KilledMonsterCredit(23209, 0); + player->KilledMonsterCredit(23209); } PoisonTimer = 0; me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false); @@ -583,8 +582,8 @@ public: { npc_overlord_morghorAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; - uint64 IllidanGUID; + ObjectGuid PlayerGUID; + ObjectGuid IllidanGUID; uint32 ConversationTimer; uint32 Step; @@ -593,8 +592,8 @@ public: void Reset() override { - PlayerGUID = 0; - IllidanGUID = 0; + PlayerGUID.Clear(); + IllidanGUID.Clear(); ConversationTimer = 0; Step = 0; @@ -798,7 +797,7 @@ public: case 30: { if (Creature* Yarzill = me->FindNearestCreature(C_YARZILL, 50.0f)) - Yarzill->SetTarget(0); + Yarzill->SetTarget(ObjectGuid::Empty); return 5000; } break; @@ -814,7 +813,7 @@ public: return 5000; break; case 33: - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); Reset(); return 100; break; @@ -1123,8 +1122,8 @@ public: uint8 AnimationCount; - uint64 LordIllidanGUID; - uint64 AggroTargetGUID; + ObjectGuid LordIllidanGUID; + ObjectGuid AggroTargetGUID; bool Timers; @@ -1132,13 +1131,13 @@ public: { AnimationTimer = 4000; AnimationCount = 0; - LordIllidanGUID = 0; - AggroTargetGUID = 0; + LordIllidanGUID.Clear(); + AggroTargetGUID.Clear(); Timers = false; me->AddUnitState(UNIT_STATE_ROOT); me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE); - me->SetTarget(0); + me->SetTarget(ObjectGuid::Empty); } void EnterCombat(Unit* /*who*/) override { } @@ -1274,7 +1273,7 @@ public: { npc_lord_illidan_stormrageAI(Creature* creature) : ScriptedAI(creature) { } - uint64 PlayerGUID; + ObjectGuid PlayerGUID; uint32 WaveTimer; uint32 AnnounceTimer; @@ -1288,7 +1287,7 @@ public: void Reset() override { - PlayerGUID = 0; + PlayerGUID.Clear(); WaveTimer = 10000; AnnounceTimer = 7000; @@ -1416,13 +1415,13 @@ public: { npc_illidari_spawnAI(Creature* creature) : ScriptedAI(creature) { } - uint64 LordIllidanGUID; + ObjectGuid LordIllidanGUID; uint32 SpellTimer1, SpellTimer2, SpellTimer3; bool Timers; void Reset() override { - LordIllidanGUID = 0; + LordIllidanGUID.Clear(); Timers = false; } @@ -1727,7 +1726,7 @@ public: if (Unit* owner = totemOspirits->GetOwner()) if (Player* player = owner->ToPlayer()) - player->KilledMonsterCredit(credit, 0); + player->KilledMonsterCredit(credit); DoCast(totemOspirits, SPELL_SOUL_CAPTURED); } } diff --git a/src/server/scripts/Outland/zone_terokkar_forest.cpp b/src/server/scripts/Outland/zone_terokkar_forest.cpp index da7ae03a8ee..223a144e33b 100644 --- a/src/server/scripts/Outland/zone_terokkar_forest.cpp +++ b/src/server/scripts/Outland/zone_terokkar_forest.cpp @@ -323,7 +323,7 @@ public: if (rand32() % 100 < 25) { me->SummonCreature(QUEST_TARGET, 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000); - player->KilledMonsterCredit(QUEST_TARGET, 0); + player->KilledMonsterCredit(QUEST_TARGET); } else me->SummonCreature(netherwebVictims[rand32() % 6], 0.0f, 0.0f, 0.0f, 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 60000); |
