aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/2013_11_28_02_world_misc.sql2
-rw-r--r--src/server/scripts/EasternKingdoms/SunwellPlateau/boss_eredar_twins.cpp32
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_dalliah_the_doomsayer.cpp16
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/boss_wrath_scryer_soccothrates.cpp44
-rw-r--r--src/server/scripts/Outland/TempestKeep/arcatraz/instance_arcatraz.cpp44
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;