diff options
5 files changed, 63 insertions, 75 deletions
diff --git a/sql/updates/world/2013_11_28_02_world_misc.sql b/sql/updates/world/2013_11_28_02_world_misc.sql new file mode 100644 index 00000000000..0e0431d4040 --- /dev/null +++ b/sql/updates/world/2013_11_28_02_world_misc.sql @@ -0,0 +1,2 @@ +UPDATE `creature_template_addon` SET `emote`=69 WHERE `entry`=31807; +DELETE FROM `creature_addon` WHERE `guid` IN (101725,101943); diff --git a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp index 280b4c27770..e68d834b20d 100644 --- a/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp +++ b/src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp @@ -200,16 +200,13 @@ public: { if (!SisterDeath) { - if (instance) + Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); + if (Temp && Temp->isDead()) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_ALYTHESS)); - if (Temp && Temp->isDead()) - { - Talk(YELL_SISTER_ALYTHESS_DEAD); - DoCast(me, SPELL_EMPOWER); - me->InterruptSpell(CURRENT_GENERIC_SPELL); - SisterDeath = true; - } + Talk(YELL_SISTER_ALYTHESS_DEAD); + DoCast(me, SPELL_EMPOWER); + me->InterruptSpell(CURRENT_GENERIC_SPELL); + SisterDeath = true; } } @@ -347,15 +344,12 @@ public: { Enraged = false; - if (instance) + if (Creature* temp = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH))) { - if (Creature* temp = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH))) - { - if (temp->isDead()) - temp->Respawn(); - else if (temp->GetVictim()) - me->getThreatManager().addThreat(temp->GetVictim(), 0.0f); - } + if (temp->isDead()) + temp->Respawn(); + else if (temp->GetVictim()) + me->getThreatManager().addThreat(temp->GetVictim(), 0.0f); } if (!me->IsInCombat()) @@ -527,7 +521,7 @@ public: if (!SisterDeath) { - Unit* Temp = Unit::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); + Unit* Temp = ObjectAccessor::GetUnit(*me, instance->GetData64(DATA_SACROLASH)); if (Temp && Temp->isDead()) { Talk(YELL_SISTER_SACROLASH_DEAD); @@ -538,7 +532,7 @@ public: } if (!me->GetVictim()) { - Creature* sisiter = ObjectAccessor::GetCreature((*me), instance->GetData64(DATA_SACROLASH)); + Creature* sisiter = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SACROLASH)); if (sisiter && !sisiter->isDead() && sisiter->GetVictim()) { me->AddThreat(sisiter->GetVictim(), 0.0f); 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 b5947e93216..bbc62d4b99a 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 @@ -72,7 +72,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->SetData(1, 1); } @@ -86,9 +86,6 @@ class boss_dalliah_the_doomsayer : public CreatureScript events.ScheduleEvent(EVENT_SHADOW_WAVE, urand(11000, 16000)); events.ScheduleEvent(EVENT_ME_FIRST, 6000); Talk(SAY_AGGRO); - - if (Creature* soccothrates = me->FindNearestCreature(NPC_SOCCOTHRATES, 100.0f, true)) - soccothratesGUID = soccothrates->GetGUID(); } void KilledUnit(Unit* /*victim*/) OVERRIDE @@ -161,7 +158,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, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) if (soccothrates->IsAlive() && !soccothrates->IsInCombat()) soccothrates->AI()->Talk(SAY_AGGRO_DALLIAH_FIRST); break; @@ -172,7 +169,7 @@ class boss_dalliah_the_doomsayer : public CreatureScript if (HealthBelowPct(25) && !soccothratesTaunt) { - if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, soccothratesGUID)) + if (Creature* soccothrates = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_SOCCOTHRATES))) soccothrates->AI()->Talk(SAY_DALLIAH_25_PERCENT); soccothratesTaunt = true; } @@ -180,10 +177,9 @@ class boss_dalliah_the_doomsayer : public CreatureScript DoMeleeAttackIfReady(); } - private: - bool soccothratesTaunt; - bool soccothratesDeath; - uint64 soccothratesGUID; + private: + bool soccothratesTaunt; + bool soccothratesDeath; }; CreatureAI* GetAI(Creature* creature) const OVERRIDE 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 046ef93bf10..2d9bfc92583 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 @@ -98,7 +98,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript _JustDied(); Talk(SAY_DEATH); - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->SetData(1, 1); } @@ -120,20 +120,13 @@ class boss_wrath_scryer_soccothrates : public CreatureScript void MoveInLineOfSight(Unit* who) OVERRIDE { - if (instance) + if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f)) { - if (instance->GetData(DATA_CONVERSATION) == NOT_STARTED && who->GetTypeId() == TYPEID_PLAYER && me->IsWithinDistInMap(who, 70.0f)) - { - Talk(SAY_SOCCOTHRATES_CONVO_1); - instance->SetData(DATA_CONVERSATION, DONE); + Talk(SAY_SOCCOTHRATES_CONVO_1); + instance->SetData(DATA_CONVERSATION, DONE); - if (Creature* dalliah = me->FindNearestCreature(NPC_DALLIAH, 50.0f, true)) - { - dalliahGUID = dalliah->GetGUID(); - preFight = true; - events.ScheduleEvent(EVENT_PREFIGHT_1, 2000); - } - } + preFight = true; + events.ScheduleEvent(EVENT_PREFIGHT_1, 2000); } } @@ -163,7 +156,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript switch (eventId) { case EVENT_PREFIGHT_1: - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_1); events.ScheduleEvent(EVENT_PREFIGHT_2, 3000); break; @@ -172,7 +165,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, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_2); events.ScheduleEvent(EVENT_PREFIGHT_4, 6000); break; @@ -181,7 +174,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, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_DALLIAH_CONVO_3); events.ScheduleEvent(EVENT_PREFIGHT_6, 3000); break; @@ -190,7 +183,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, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->GetMotionMaster()->MovePoint(0, 118.6048f, 96.84852f, 22.44115f); events.ScheduleEvent(EVENT_PREFIGHT_8, 4000); break; @@ -199,7 +192,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, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) { dalliah->SetFacingToObject(me); me->SetFacingToObject(dalliah); @@ -253,7 +246,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, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) if (dalliah->IsAlive() && !dalliah->IsInCombat()) dalliah->AI()->Talk(SAY_AGGRO_SOCCOTHRATES_FIRST); break; @@ -264,7 +257,7 @@ class boss_wrath_scryer_soccothrates : public CreatureScript if (HealthBelowPct(25) && !dalliahTaunt) { - if (Creature* dalliah = ObjectAccessor::GetCreature(*me, dalliahGUID)) + if (Creature* dalliah = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_DALLIAH))) dalliah->AI()->Talk(SAY_SOCCOTHRATES_25_PERCENT); dalliahTaunt = true; } @@ -272,16 +265,15 @@ class boss_wrath_scryer_soccothrates : public CreatureScript DoMeleeAttackIfReady(); } - private: - bool preFight; - bool dalliahTaunt; - bool dalliahDeath; - uint64 dalliahGUID; + private: + bool preFight; + bool dalliahTaunt; + bool dalliahDeath; }; CreatureAI* GetAI(Creature* creature) const OVERRIDE { - return new boss_wrath_scryer_soccothratesAI(creature); + return GetArcatrazAI<boss_wrath_scryer_soccothratesAI>(creature); } }; diff --git a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp index 0145636f9d2..cb7cd3828e2 100644 --- a/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp +++ b/src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp @@ -38,6 +38,8 @@ class instance_arcatraz : public InstanceMapScript SetBossNumber(EncounterCount); LoadDoorData(doorData); + DalliahGUID = 0; + SoccothratesGUID = 0; MellicharGUID = 0; WardensShieldGUID = 0; @@ -49,8 +51,20 @@ class instance_arcatraz : public InstanceMapScript void OnCreatureCreate(Creature* creature) OVERRIDE { - if (creature->GetEntry() == NPC_MELLICHAR) - MellicharGUID = creature->GetGUID(); + switch (creature->GetEntry()) + { + case NPC_DALLIAH: + DalliahGUID = creature->GetGUID(); + break; + case NPC_SOCCOTHRATES: + SoccothratesGUID = creature->GetGUID(); + break; + case NPC_MELLICHAR: + MellicharGUID = creature->GetGUID(); + break; + default: + break; + } } void OnGameObjectCreate(GameObject* go) OVERRIDE @@ -102,29 +116,13 @@ class instance_arcatraz : public InstanceMapScript switch (type) { case DATA_WARDEN_1: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[0], true); - StasisPodStates[0] = uint8(data); - break; case DATA_WARDEN_2: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[1], true); - StasisPodStates[1] = uint8(data); - break; case DATA_WARDEN_3: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[2], true); - StasisPodStates[2] = uint8(data); - break; case DATA_WARDEN_4: - if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[3], true); - StasisPodStates[3] = uint8(data); - break; case DATA_WARDEN_5: if (data == IN_PROGRESS) - HandleGameObject(StasisPodGUIDs[4], true); - StasisPodStates[4] = uint8(data); + HandleGameObject(StasisPodGUIDs[type - DATA_WARDEN_1], true); + StasisPodStates[type - DATA_WARDEN_1] = uint8(data); break; case DATA_CONVERSATION: ConversationState = uint8(data); @@ -156,6 +154,10 @@ class instance_arcatraz : public InstanceMapScript { switch (data) { + case DATA_DALLIAH: + return DalliahGUID; + case DATA_SOCCOTHRATES: + return SoccothratesGUID; case DATA_MELLICHAR: return MellicharGUID; case DATA_WARDENS_SHIELD: @@ -233,6 +235,8 @@ class instance_arcatraz : public InstanceMapScript } protected: + uint64 DalliahGUID; + uint64 SoccothratesGUID; uint64 StasisPodGUIDs[5]; uint64 MellicharGUID; uint64 WardensShieldGUID; |