diff options
11 files changed, 609 insertions, 657 deletions
diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp index 02fe55ea1a3..757841d4877 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_amanitar.cpp @@ -47,24 +47,24 @@ struct boss_amanitarAI : public ScriptedAI boss_amanitarAI(Creature *c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - FirstTime = true; + bFirstTime = true; } ScriptedInstance* pInstance; - uint32 roottimer; - uint32 bashtimer; - uint32 bolttimer; - uint32 spawntimer; + uint32 uiRootTimer; + uint32 uiBashTimer; + uint32 uiBoltTimer; + uint32 uiSpawnTimer; - bool FirstTime; + bool bFirstTime; void Reset() { - roottimer = urand(5000,9000); - bashtimer = urand(10000,14000); - bolttimer = urand(15000,30000); - spawntimer = 0; + uiRootTimer = urand(5*IN_MILISECONDS,9*IN_MILISECONDS); + uiBashTimer = urand(10*IN_MILISECONDS,14*IN_MILISECONDS); + uiBoltTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); + uiSpawnTimer = 0; m_creature->SetMeleeDamageSchool(SPELL_SCHOOL_NATURE); m_creature->ApplySpellImmune(0, IMMUNITY_SCHOOL, SPELL_SCHOOL_MASK_NATURE, true); @@ -72,11 +72,10 @@ struct boss_amanitarAI : public ScriptedAI if (pInstance) { pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_MINI); - if (!FirstTime) - { + if (!bFirstTime) pInstance->SetData(DATA_AMANITAR_EVENT, FAIL); - } - else FirstTime = false; + else + bFirstTime = false; } } @@ -108,9 +107,9 @@ struct boss_amanitarAI : public ScriptedAI Position pos; victim->GetPosition(&pos); m_creature->GetRandomNearPosition(pos, float(urand(5,80))); - m_creature->SummonCreature(NPC_POISONOUS_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000); + m_creature->SummonCreature(NPC_POISONOUS_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30*IN_MILISECONDS); m_creature->GetRandomNearPosition(pos, float(urand(5,80))); - m_creature->SummonCreature(NPC_HEALTHY_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30000); + m_creature->SummonCreature(NPC_HEALTHY_MUSHROOM, pos, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 30*IN_MILISECONDS); } } } @@ -121,31 +120,31 @@ struct boss_amanitarAI : public ScriptedAI if (!UpdateVictim()) return; - if (spawntimer <= diff) + if (uiSpawnTimer <= diff) { SpawnAdds(); - spawntimer = urand(35000,40000); - } else spawntimer -= diff; + uiSpawnTimer = urand(35*IN_MILISECONDS,40*IN_MILISECONDS); + } else uiSpawnTimer -= diff; - if (roottimer <= diff) + if (uiRootTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, SPELL_ENTANGLING_ROOTS); - roottimer = urand(15000,30000); - } + uiRootTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); + } else uiRootTimer -= diff; - if (bashtimer <= diff) + if (uiBashTimer <= diff) { DoCastVictim(SPELL_BASH); - bashtimer = urand(15000,30000); - } else bashtimer -= diff; + uiBashTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); + } else uiBashTimer -= diff; - if (bolttimer <= diff) + if (uiBoltTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, SPELL_VENOM_BOLT_VOLLEY); - bolttimer = urand(15000,30000); - } else bolttimer -= diff; + uiBoltTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); + } else uiBoltTimer -= diff; DoMeleeAttackIfReady(); } @@ -153,13 +152,10 @@ struct boss_amanitarAI : public ScriptedAI struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI { - mob_amanitar_mushroomsAI(Creature* c) : Scripted_NoMovementAI(c) - { - c->SetUInt32Value(UNIT_FIELD_DISPLAYID, 26981); // Unsichtbar... - } + mob_amanitar_mushroomsAI(Creature* c) : Scripted_NoMovementAI(c) {} - uint32 auratimer, - deathtimer; // Without not all will despawn after 30000! :-( + uint32 uiAuraTimer; + uint32 uiDeathTimer; void Reset() { @@ -168,8 +164,8 @@ struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI if (m_creature->GetEntry() == NPC_POISONOUS_MUSHROOM) DoCast(m_creature, SPELL_POISONOUS_MUSHROOM_VISUAL_AURA, true); - auratimer = 0; - deathtimer = 30000; + uiAuraTimer = 0; + uiDeathTimer = 30*IN_MILISECONDS; } void JustDied(Unit *killer) @@ -191,17 +187,16 @@ struct mob_amanitar_mushroomsAI : public Scripted_NoMovementAI { if (m_creature->GetEntry() == NPC_POISONOUS_MUSHROOM) { - if (auratimer <= diff) + if (uiAuraTimer <= diff) { DoCast(m_creature, SPELL_POISONOUS_MUSHROOM_VISUAL_AREA, true); DoCast(m_creature, SPELL_POISONOUS_MUSHROOM_POISON_CLOUD, false); - auratimer = 7000; - } else auratimer -= diff; + uiAuraTimer = 7*IN_MILISECONDS; + } else uiAuraTimer -= diff; } - if (deathtimer <= diff) - { + if (uiDeathTimer <= diff) m_creature->DisappearAndDie(); - } else deathtimer -= diff; + else uiDeathTimer -= diff; } }; diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp index dc309151470..3e6f3f45a72 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_elder_nadox.cpp @@ -43,7 +43,9 @@ enum Spells SPELL_BROOD_PLAGUE = 56130, H_SPELL_BROOD_PLAGUE = 59467, H_SPELL_BROOD_RAGE = 59465, - SPELL_ENRAGE = 26662 // Enraged if too far away from home + SPELL_ENRAGE = 26662, // Enraged if too far away from home + SPELL_SUMMON_SWARMERS = 56119, //2x 30178 -- 2x every 10secs + SPELL_SUMMON_SWARM_GUARD = 56120, //1x 30176 -- every 25secs }; enum Creatures @@ -52,13 +54,6 @@ enum Creatures MOB_AHNKAHAR_GUARDIAN_ENTRY = 30176 }; -enum CreatureSpells -{ - SPELL_SUMMON_SWARMERS = 56119, //2x 30178 -- 2x every 10secs - SPELL_SUMMON_SWARM_GUARD = 56120, //1x 30176 -- every 25secs - SPELL_GUARDIAN_AURA = 56151 -}; - #define EMOTE_HATCHES "An Ahn'kahar Guardian hatches!" struct boss_elder_nadoxAI : public ScriptedAI @@ -68,29 +63,29 @@ struct boss_elder_nadoxAI : public ScriptedAI pInstance = c->GetInstanceData(); } - uint32 plague_Timer; - uint32 rage_Timer; + uint32 uiPlagueTimer; + uint32 uiRagueTimer; - uint32 swarmer_spawn_Timer; - uint32 guard_spawn_Timer; - uint32 enrage_Timer; + uint32 uiSwarmerSpawnTimer; + uint32 uiGuardSpawnTimer; + uint32 uiEnragueTimer; - bool GuardSpawned; + bool bGuardSpawned; ScriptedInstance *pInstance; void Reset() { - plague_Timer = 13000; - rage_Timer = 20000; + uiPlagueTimer = 13*IN_MILISECONDS; + uiRagueTimer = 20*IN_MILISECONDS; - swarmer_spawn_Timer = 10000; - guard_spawn_Timer = 25000; + uiSwarmerSpawnTimer = 10*IN_MILISECONDS; + uiGuardSpawnTimer = 25*IN_MILISECONDS; - enrage_Timer = 5000; + uiEnragueTimer = 5*IN_MILISECONDS; DeadAhnkaharGuardian = false; - GuardSpawned = false; + bGuardSpawned = false; if (pInstance) pInstance->SetData(DATA_ELDER_NADOX_EVENT, NOT_STARTED); @@ -106,8 +101,6 @@ struct boss_elder_nadoxAI : public ScriptedAI void KilledUnit(Unit *victim) { - if (victim == m_creature) - return; DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature); } @@ -128,42 +121,40 @@ struct boss_elder_nadoxAI : public ScriptedAI if (!UpdateVictim()) return; - if (plague_Timer <= diff) + if (uiPlagueTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BROOD_PLAGUE, H_SPELL_BROOD_PLAGUE)); - plague_Timer = 15000; - } else plague_Timer -= diff; + uiPlagueTimer = 15*IN_MILISECONDS; + } else uiPlagueTimer -= diff; if (IsHeroic()) - if (rage_Timer <= diff) + if (uiRagueTimer <= diff) { - Unit* Swarmer = m_creature->FindNearestCreature(MOB_AHNKAHAR_SWARMER, 35); - - if (Swarmer) + if (Creature *pSwarmer = m_creature->FindNearestCreature(MOB_AHNKAHAR_SWARMER, 35)) { - DoCast(Swarmer, H_SPELL_BROOD_RAGE, true); - rage_Timer = 15000; + DoCast(pSwarmer, H_SPELL_BROOD_RAGE, true); + uiRagueTimer = 15*IN_MILISECONDS; } - } else rage_Timer -= diff; + } else uiRagueTimer -= diff; - if (swarmer_spawn_Timer <= diff) + if (uiSwarmerSpawnTimer <= diff) { DoCast(m_creature, SPELL_SUMMON_SWARMERS, true); DoCast(m_creature, SPELL_SUMMON_SWARMERS); if (urand(1,3) == 3) // 33% chance of dialog DoScriptText(RAND(SAY_EGG_SAC_1,SAY_EGG_SAC_2), m_creature); - swarmer_spawn_Timer = 10000; - } else swarmer_spawn_Timer -= diff; + uiSwarmerSpawnTimer = 10*IN_MILISECONDS; + } else uiSwarmerSpawnTimer -= diff; - if (!GuardSpawned && guard_spawn_Timer <= diff) + if (!bGuardSpawned && uiGuardSpawnTimer <= diff) { m_creature->MonsterTextEmote(EMOTE_HATCHES,m_creature->GetGUID(),true); DoCast(m_creature, SPELL_SUMMON_SWARM_GUARD); - GuardSpawned = true; - } else guard_spawn_Timer -= diff; + bGuardSpawned = true; + } else uiGuardSpawnTimer -= diff; - if (enrage_Timer <= diff) + if (uiEnragueTimer <= diff) { if (m_creature->HasAura(SPELL_ENRAGE,0)) return; @@ -174,8 +165,8 @@ struct boss_elder_nadoxAI : public ScriptedAI if (!m_creature->IsNonMeleeSpellCasted(false)) DoCast(m_creature, SPELL_ENRAGE, true); - enrage_Timer = 5000; - } else enrage_Timer -= diff; + uiEnragueTimer = 5*IN_MILISECONDS; + } else uiEnragueTimer -= diff; DoMeleeAttackIfReady(); } @@ -186,7 +177,11 @@ CreatureAI* GetAI_boss_elder_nadox(Creature* pCreature) return new boss_elder_nadoxAI(pCreature); } -#define SPELL_SPRINT 56354 +enum AddSpells +{ + SPELL_SPRINT = 56354, + SPELL_GUARDIAN_AURA = 56151 +}; struct mob_ahnkahar_nerubianAI : public ScriptedAI { @@ -196,13 +191,13 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI } ScriptedInstance *pInstance; - uint32 sprint_Timer; + uint32 uiSprintTimer; void Reset() { - if (m_creature->GetEntry() == 30176) //magic numbers are bad! + if (m_creature->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY) //magic numbers are bad! DoCast(m_creature, SPELL_GUARDIAN_AURA, true); - sprint_Timer = 10000; + uiSprintTimer = 10*IN_MILISECONDS; } void JustDied(Unit *killer) @@ -215,7 +210,10 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI void UpdateAI(const uint32 diff) { - if (m_creature->GetEntry() == 30176) //magic numbers are bad! + if (!UpdateVictim()) + return; + + if (m_creature->GetEntry() == MOB_AHNKAHAR_GUARDIAN_ENTRY) m_creature->RemoveAurasDueToSpell(SPELL_GUARDIAN_AURA); if (pInstance) @@ -229,16 +227,17 @@ struct mob_ahnkahar_nerubianAI : public ScriptedAI if (!UpdateVictim()) return; - if (sprint_Timer <= diff) + if (uiSprintTimer <= diff) { DoCast(m_creature, SPELL_SPRINT); - sprint_Timer = 25000; - } else sprint_Timer -= diff; + uiSprintTimer = 25*IN_MILISECONDS; + } else uiSprintTimer -= diff; DoMeleeAttackIfReady(); } }; +//HACK: No, AI. Replace with proper db content? struct mob_nadox_eggsAI : public Scripted_NoMovementAI { mob_nadox_eggsAI(Creature* c) : Scripted_NoMovementAI(c) diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp index 298fa4d30fe..923f000a99b 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_herald_volazj.cpp @@ -33,7 +33,13 @@ enum Spells SPELL_SHADOW_BOLT_VOLLEY = 57942, H_SPELL_SHADOW_BOLT_VOLLEY = 59975, SPELL_SHIVER = 57949, - H_SPELL_SHIVER = 59978 + H_SPELL_SHIVER = 59978, + SPELL_CLONE_PLAYER = 57507, //casted on player during insanity + SPELL_INSANITY_PHASING_1 = 57508, + SPELL_INSANITY_PHASING_2 = 57509, + SPELL_INSANITY_PHASING_3 = 57519, + SPELL_INSANITY_PHASING_4 = 57511, + SPELL_INSANITY_PHASING_5 = 57512 }; enum Creatures @@ -126,7 +132,7 @@ struct boss_volazjAI : public ScriptedAI // Fixme: allow mirror image query to send other guid to get rid of minion status summon->SetUInt64Value(UNIT_FIELD_CREATEDBY, plr->GetGUID()); // clone - plr->CastSpell(summon, 57507, true); + plr->CastSpell(summon, SPELL_CLONE_PLAYER, true); // set phase summon->SetPhaseMask((1<<(4+insanityHandled)),true); } @@ -138,9 +144,9 @@ struct boss_volazjAI : public ScriptedAI void Reset() { uiEncounterTimer = 0; - uiMindFlayTimer = 8000; - uiShadowBoltVolleyTimer = 5000; - uiShiverTimer = 15000; + uiMindFlayTimer = 8*IN_MILISECONDS; + uiShadowBoltVolleyTimer = 5*IN_MILISECONDS; + uiShiverTimer = 15*IN_MILISECONDS; if (pInstance) pInstance->SetData(DATA_HERALD_VOLAZJ, NOT_STARTED); @@ -174,19 +180,19 @@ struct boss_volazjAI : public ScriptedAI switch (phase) { case 16: - spell = 57508; + spell = SPELL_INSANITY_PHASING_1; break; case 32: - spell = 57509; + spell = SPELL_INSANITY_PHASING_2; break; case 64: - spell = 57510; + spell = SPELL_INSANITY_PHASING_3; break; case 128: - spell = 57511; + spell = SPELL_INSANITY_PHASING_4; break; case 256: - spell = 57512; + spell = SPELL_INSANITY_PHASING_5; break; } return spell; @@ -256,20 +262,20 @@ struct boss_volazjAI : public ScriptedAI if (uiMindFlayTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY)); - uiMindFlayTimer = 20000; + uiMindFlayTimer = 20*IN_MILISECONDS; } else uiMindFlayTimer -= diff; if (uiShadowBoltVolleyTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_BOLT_VOLLEY, H_SPELL_SHADOW_BOLT_VOLLEY)); - uiShadowBoltVolleyTimer = 5000; + uiShadowBoltVolleyTimer = 5*IN_MILISECONDS; } else uiShadowBoltVolleyTimer -= diff; if (uiShiverTimer <= diff) { if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) DoCast(pTarget, DUNGEON_MODE(SPELL_SHIVER, H_SPELL_SHIVER)); - uiShiverTimer = 15000; + uiShiverTimer = 15*IN_MILISECONDS; } else uiShiverTimer -= diff; uiEncounterTimer += diff; @@ -283,7 +289,7 @@ struct boss_volazjAI : public ScriptedAI if (pInstance) { pInstance->SetData(DATA_HERALD_VOLAZJ, DONE); - if (IsHeroic() && uiEncounterTimer < 120000) + if (IsHeroic() && uiEncounterTimer < 120*IN_MILISECONDS) pInstance->DoCompleteAchievement(ACHIEV_QUICK_DEMISE); } @@ -292,9 +298,6 @@ struct boss_volazjAI : public ScriptedAI void KilledUnit(Unit *victim) { - if (victim == m_creature) - return; - DoScriptText(RAND(SAY_SLAY_1,SAY_SLAY_2,SAY_SLAY_3), m_creature); } }; diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp index 432f3c66331..fde2cbc800f 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_jedoga_shadowseeker.cpp @@ -50,12 +50,17 @@ enum Spells SPELL_LIGHTNING_BOLT = 56891, // 40Y SPELL_LIGHTNING_BOLT_H = 60032, // 40Y SPELL_THUNDERSHOCK = 56926, // 30Y - SPELL_THUNDERSHOCK_H = 60029 // 30Y + SPELL_THUNDERSHOCK_H = 60029 // 30Y +}; + +enum Creatures +{ + NPC_JEDOGA_CONTROLLER = 30181 }; const Position JedogaPosition[2] = { - {372.330994f, -705.278015f, -0.624178f, 5.427970f}, + {372.330994f, -705.278015f, -0.624178f, 5.427970f}, {372.330994f, -705.278015f, -16.179716f, 5.427970f} }; @@ -64,8 +69,8 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI boss_jedoga_shadowseekerAI(Creature* c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - FirstTime = true; - predone = false; + bFirstTime = true; + bPreDone = false; } ScriptedInstance* pInstance; @@ -75,21 +80,21 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI uint32 uiBoltTimer; uint32 uiThunderTimer; - bool predone; + bool bPreDone; bool bOpFerok; bool bOnGround; bool bOpFerokFail; bool bCanDown; - bool FirstTime; + bool bFirstTime; void Reset() { - uiOpFerTimer = urand(15000,20000); + uiOpFerTimer = urand(15*IN_MILISECONDS,20*IN_MILISECONDS); - uiCycloneTimer = 3000; - uiBoltTimer = 7000; - uiThunderTimer = 12000; + uiCycloneTimer = 3*IN_MILISECONDS; + uiBoltTimer = 7*IN_MILISECONDS; + uiThunderTimer = 12*IN_MILISECONDS; bOpFerok = false; bOpFerokFail = false; @@ -98,7 +103,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI if (pInstance) { - if (!FirstTime) + if (!bFirstTime) pInstance->SetData(DATA_JEDOGA_SHADOWSEEKER_EVENT, FAIL); pInstance->SetData64(DATA_PL_JEDOGA_TARGET, 0); @@ -107,12 +112,12 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI } MoveUp(); - FirstTime = false; + bFirstTime = false; } void EnterCombat(Unit* who) { - if (!pInstance || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == 30181)) + if (!pInstance || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER)) return; DoScriptText(TEXT_AGGRO, m_creature); @@ -122,7 +127,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI void AttackStart(Unit* who) { - if (!who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == 30181)) + if (!who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER)) return; ScriptedAI::AttackStart(who); @@ -145,13 +150,13 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI void MoveInLineOfSight(Unit* who) { - if (!pInstance || !who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == 30181)) + if (!pInstance || !who || (who->GetTypeId() == TYPEID_UNIT && who->GetEntry() == NPC_JEDOGA_CONTROLLER)) return; - if (!predone && who->GetTypeId() == TYPEID_PLAYER && m_creature->GetDistance(who) < 100.0f) + if (!bPreDone && who->GetTypeId() == TYPEID_PLAYER && m_creature->GetDistance(who) < 100.0f) { DoScriptText(RAND(TEXT_PREACHING_1, TEXT_PREACHING_2, TEXT_PREACHING_3, TEXT_PREACHING_4, TEXT_PREACHING_5), m_creature); - predone = true; + bPreDone = true; } if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS || !bOnGround) @@ -243,7 +248,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == IN_PROGRESS) OpferRufen(); bOnGround = false; - uiOpFerTimer = urand(15000,30000); + uiOpFerTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); } void OpferRufen() @@ -299,7 +304,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI if (uiCycloneTimer <= diff) { DoCast(m_creature, DUNGEON_MODE(SPELL_CYCLONE_STRIKE, SPELL_CYCLONE_STRIKE_H), false); - uiCycloneTimer = urand(15000,30000); + uiCycloneTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); } else uiCycloneTimer -= diff; if (uiBoltTimer <= diff) @@ -307,7 +312,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_LIGHTNING_BOLT, SPELL_LIGHTNING_BOLT_H), false); - uiBoltTimer = urand(15000,30000); + uiBoltTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); } else uiBoltTimer -= diff; if (uiThunderTimer <= diff) @@ -315,7 +320,7 @@ struct boss_jedoga_shadowseekerAI : public ScriptedAI if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_THUNDERSHOCK, SPELL_THUNDERSHOCK_H), false); - uiThunderTimer = urand(15000,30000); + uiThunderTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); } else uiThunderTimer -= diff; if (uiOpFerTimer <= diff) @@ -337,17 +342,17 @@ struct mob_jedoga_initiandAI : public ScriptedAI ScriptedInstance* pInstance; - uint32 checktimer; + uint32 bCheckTimer; - bool walking; + bool bWalking; void Reset() { if (!pInstance) return; - walking = false; - checktimer = 2000; + bWalking = false; + bCheckTimer = 2*IN_MILISECONDS; if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS) { @@ -369,7 +374,7 @@ struct mob_jedoga_initiandAI : public ScriptedAI { if (!Killer || !pInstance) return; - if (walking) + if (bWalking) { Creature* boss = m_creature->GetMap()->GetCreature(pInstance->GetData64(DATA_JEDOGA_SHADOWSEEKER)); if (boss && !CAST_AI(boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok) CAST_AI(boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true; @@ -377,7 +382,7 @@ struct mob_jedoga_initiandAI : public ScriptedAI if (Killer->GetTypeId() == TYPEID_PLAYER) pInstance->SetData(DATA_INITIAND_KILLED, 1); pInstance->SetData64(DATA_ADD_JEDOGA_OPFER, 0); - walking = false; + bWalking = false; } if (Killer->GetTypeId() == TYPEID_PLAYER) pInstance->SetData64(DATA_PL_JEDOGA_TARGET, Killer->GetGUID()); } @@ -423,9 +428,9 @@ struct mob_jedoga_initiandAI : public ScriptedAI void UpdateAI(const uint32 diff) { - if (pInstance && checktimer <= diff) + if (pInstance && bCheckTimer <= diff) { - if (m_creature->GetGUID() == pInstance->GetData64(DATA_ADD_JEDOGA_OPFER) && !walking) + if (m_creature->GetGUID() == pInstance->GetData64(DATA_ADD_JEDOGA_OPFER) && !bWalking) { m_creature->RemoveAurasDueToSpell(SPELL_SPHERE_VISUAL); m_creature->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, false); @@ -443,9 +448,9 @@ struct mob_jedoga_initiandAI : public ScriptedAI m_creature->GetMotionMaster()->Clear(false); m_creature->GetMotionMaster()->MovePoint(1, JedogaPosition[1]); - walking = true; + bWalking = true; } - if (!walking) + if (!bWalking) { if (pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) != IN_PROGRESS && m_creature->HasAura(SPELL_SPHERE_VISUAL)) { @@ -462,8 +467,8 @@ struct mob_jedoga_initiandAI : public ScriptedAI m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE + UNIT_FLAG_NON_ATTACKABLE); } } - checktimer = 2000; - } else checktimer -= diff; + bCheckTimer = 2*IN_MILISECONDS; + } else bCheckTimer -= diff; //Return since we have no target if (!UpdateVictim()) @@ -487,20 +492,20 @@ struct npc_jedogas_aufseher_triggerAI : public Scripted_NoMovementAI npc_jedogas_aufseher_triggerAI(Creature* c) : Scripted_NoMovementAI(c) { pInstance = c->GetInstanceData(); - c->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11686); - c->setFaction(35); - removed = false; - removed2 = false; - casted = false; - casted2 = false; +// c->SetUInt32Value(UNIT_FIELD_DISPLAYID, 11686); +// c->setFaction(35); + bRemoved = false; + bRemoved2 = false; + bCasted = false; + bCasted2 = false; } ScriptedInstance* pInstance; - bool removed; - bool removed2; - bool casted; - bool casted2; + bool bRemoved; + bool bRemoved2; + bool bCasted; + bool bCasted2; void Reset() {} void EnterCombat(Unit* who) {} @@ -512,36 +517,36 @@ struct npc_jedogas_aufseher_triggerAI : public Scripted_NoMovementAI if (!pInstance) return; - if (!removed && m_creature->GetPositionX() > 440.0f) + if (!bRemoved && m_creature->GetPositionX() > 440.0f) { if (pInstance->GetData(DATA_PRINCE_TALDARAM_EVENT) == DONE) { m_creature->InterruptNonMeleeSpells(true); - removed = true; + bRemoved = true; return; } - if (!casted) + if (!bCasted) { DoCast(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_1, false); - casted = true; + bCasted = true; } } - if (!removed2 && m_creature->GetPositionX() < 440.0f) + if (!bRemoved2 && m_creature->GetPositionX() < 440.0f) { - if (!casted2 && pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH)) + if (!bCasted2 && pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH)) { DoCast(m_creature, SPELL_BEAM_VISUAL_JEDOGAS_AUFSEHER_2, false); - casted2 = true; + bCasted2 = true; } - if (casted2 && !pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH)) + if (bCasted2 && !pInstance->GetData(DATA_JEDOGA_TRIGGER_SWITCH)) { m_creature->InterruptNonMeleeSpells(true); - casted2 = false; + bCasted2 = false; } - if (!removed2 && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == DONE) + if (!bRemoved2 && pInstance->GetData(DATA_JEDOGA_SHADOWSEEKER_EVENT) == DONE) { m_creature->InterruptNonMeleeSpells(true); - removed2 = true; + bRemoved2 = true; } } } diff --git a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp index 5c2cbb724c1..82eda44bb58 100644 --- a/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp +++ b/src/scripts/northrend/azjol_nerub/ahnkahet/boss_prince_taldaram.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2009 - 2010 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 @@ -16,59 +16,51 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* ScriptData -SDName: boss_prince_taldaram -SDAuthor: Tartalo & tlexii -SD%Complete: 0 -SDComment: -SDCategory: Ahn'kahet -EndScriptData */ - #include "ScriptedPch.h" #include "ahnkahet.h" enum Spells { - SPELL_BLOODTHIRST = 55968, //Trigger Spell + add aura - SPELL_CONJURE_FLAME_SPHERE = 55931, - SPELL_FLAME_SPHERE_SUMMON_1 = 55895,// 1x 30106 - H_SPELL_FLAME_SPHERE_SUMMON_1 = 59511,// 1x 31686 - H_SPELL_FLAME_SPHERE_SUMMON_2 = 59512,// 1x 31687 - SPELL_FLAME_SPHERE_SPAWN_EFFECT = 55891, - SPELL_FLAME_SPHERE_VISUAL = 55928, - SPELL_FLAME_SPHERE_PERIODIC = 55926, - H_SPELL_FLAME_SPHERE_PERIODIC = 59508, - SPELL_FLAME_SPHERE_DEATH_EFFECT = 55947, - SPELL_BEAM_VISUAL = 60342, - SPELL_EMBRACE_OF_THE_VAMPYR = 55959, - H_SPELL_EMBRACE_OF_THE_VAMPYR = 59513, - SPELL_VANISH = 55964, - CREATURE_FLAME_SPHERE = 30106, - H_CREATURE_FLAME_SPHERE_1 = 31686, - H_CREATURE_FLAME_SPHERE_2 = 31687 + SPELL_BLOODTHIRST = 55968, //Trigger Spell + add aura + SPELL_CONJURE_FLAME_SPHERE = 55931, + SPELL_FLAME_SPHERE_SUMMON_1 = 55895,// 1x 30106 + H_SPELL_FLAME_SPHERE_SUMMON_1 = 59511,// 1x 31686 + H_SPELL_FLAME_SPHERE_SUMMON_2 = 59512,// 1x 31687 + SPELL_FLAME_SPHERE_SPAWN_EFFECT = 55891, + SPELL_FLAME_SPHERE_VISUAL = 55928, + SPELL_FLAME_SPHERE_PERIODIC = 55926, + H_SPELL_FLAME_SPHERE_PERIODIC = 59508, + SPELL_FLAME_SPHERE_DEATH_EFFECT = 55947, + SPELL_BEAM_VISUAL = 60342, + SPELL_EMBRACE_OF_THE_VAMPYR = 55959, + H_SPELL_EMBRACE_OF_THE_VAMPYR = 59513, + SPELL_VANISH = 55964, + CREATURE_FLAME_SPHERE = 30106, + H_CREATURE_FLAME_SPHERE_1 = 31686, + H_CREATURE_FLAME_SPHERE_2 = 31687 }; enum Misc { - DATA_EMBRACE_DMG = 20000, - H_DATA_EMBRACE_DMG = 40000, - DATA_SPHERE_DISTANCE = 15 + DATA_EMBRACE_DMG = 20000, + H_DATA_EMBRACE_DMG = 40000, + DATA_SPHERE_DISTANCE = 15 }; #define DATA_SPHERE_ANGLE_OFFSET 0.7 #define DATA_GROUND_POSITION_Z 11.4 enum Achievements { - ACHIEVEMENT_THE_PARTY_IS_OVER = 1861 + ACHIEV_THE_PARTY_IS_OVER = 1861 }; enum Yells { - SAY_AGGRO = -1619021, - SAY_SLAY_1 = -1619022, - SAY_SLAY_2 = -1619023, - SAY_DEATH = -1619024, - SAY_FEED_1 = -1619025, - SAY_FEED_2 = -1619026, - SAY_VANISH_1 = -1619027, - SAY_VANISH_2 = -1619028 + SAY_AGGRO = -1619021, + SAY_SLAY_1 = -1619022, + SAY_SLAY_2 = -1619023, + SAY_DEATH = -1619024, + SAY_FEED_1 = -1619025, + SAY_FEED_2 = -1619026, + SAY_VANISH_1 = -1619027, + SAY_VANISH_2 = -1619028 }; enum CombatPhase { @@ -78,6 +70,11 @@ enum CombatPhase VANISHED, FEEDING }; +enum GameObjects +{ + GO_SPHERE1 = 193093, + GO_SPHERE2 = 193094 +}; struct boss_taldaramAI : public ScriptedAI { @@ -104,10 +101,10 @@ struct boss_taldaramAI : public ScriptedAI void Reset() { - uiBloodthirstTimer = 10000; - uiVanishTimer = (25 + rand()%10)*1000; - uiEmbraceTimer = 20000; - uiFlamesphereTimer = 5000; + uiBloodthirstTimer = 10*IN_MILISECONDS; + uiVanishTimer = urand(25*IN_MILISECONDS,35*IN_MILISECONDS); + uiEmbraceTimer = 20*IN_MILISECONDS; + uiFlamesphereTimer = 5*IN_MILISECONDS; uiEmbraceTakenDamage = 0; Phase = NORMAL; uiPhaseTimer = 0; @@ -136,7 +133,7 @@ struct boss_taldaramAI : public ScriptedAI Creature* pSpheres[3]; //DoCast(m_creature, SPELL_FLAME_SPHERE_SUMMON_1); - pSpheres[0] = DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000); + pSpheres[0] = DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILISECONDS); Unit *pSphereTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); if (pSphereTarget && pSpheres[0]) { @@ -149,9 +146,9 @@ struct boss_taldaramAI : public ScriptedAI if (IsHeroic()) { //DoCast(m_creature, H_SPELL_FLAME_SPHERE_SUMMON_1); - pSpheres[1] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000); + pSpheres[1] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILISECONDS); //DoCast(m_creature, H_SPELL_FLAME_SPHERE_SUMMON_2); - pSpheres[2] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10000); + pSpheres[2] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILISECONDS); if (pSphereTarget && pSpheres[1] && pSpheres[2]) { float angle,x,y; @@ -187,7 +184,7 @@ struct boss_taldaramAI : public ScriptedAI m_creature->SetSpeed(MOVE_WALK, 1.0f, true); m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim()); Phase = FEEDING; - uiPhaseTimer = 20000; + uiPhaseTimer = 20*IN_MILISECONDS; break; case FEEDING: Phase = NORMAL; @@ -198,15 +195,15 @@ struct boss_taldaramAI : public ScriptedAI if (uiBloodthirstTimer <= diff) { DoCast(m_creature->getVictim(), SPELL_BLOODTHIRST); - uiBloodthirstTimer = 10000; + uiBloodthirstTimer = 10*IN_MILISECONDS; } else uiBloodthirstTimer -= diff; if (uiFlamesphereTimer <= diff) { DoCast(m_creature, SPELL_CONJURE_FLAME_SPHERE); Phase = CASTING_FLAME_SPHERES; - uiPhaseTimer = 3000 + diff; - uiFlamesphereTimer = 15000; + uiPhaseTimer = 3*IN_MILISECONDS + diff; + uiFlamesphereTimer = 15*IN_MILISECONDS; } else uiFlamesphereTimer -= diff; if (uiVanishTimer <= diff) @@ -234,7 +231,7 @@ struct boss_taldaramAI : public ScriptedAI uiEmbraceTarget = pEmbraceTarget->GetGUID(); } - uiVanishTimer = urand(25000,35000); + uiVanishTimer = urand(25*IN_MILISECONDS,35*IN_MILISECONDS); } else uiVanishTimer -= diff; DoMeleeAttackIfReady(); @@ -268,15 +265,11 @@ struct boss_taldaramAI : public ScriptedAI { pInstance->SetData(DATA_PRINCE_TALDARAM_EVENT, DONE); - //The Party's Over achievement: - AchievementEntry const *AchievThePartyIsOver = GetAchievementStore()->LookupEntry(ACHIEVEMENT_THE_PARTY_IS_OVER); - Map* pMap = m_creature->GetMap(); - if (pMap && pMap->IsDungeon() && IsHeroic() && AchievThePartyIsOver) + if (IsHeroic()) { - Map::PlayerList const &players = pMap->GetPlayers(); + Map::PlayerList const &players = pInstance->instance->GetPlayers(); if (players.getSize() < 5) - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) - itr->getSource()->CompletedAchievement(AchievThePartyIsOver); + pInstance->DoCompleteAchievement(ACHIEV_THE_PARTY_IS_OVER); } } } @@ -358,7 +351,7 @@ struct mob_taldaram_flamesphereAI : public ScriptedAI DoCast(m_creature, SPELL_FLAME_SPHERE_VISUAL); DoCast(m_creature, SPELL_FLAME_SPHERE_SPAWN_EFFECT); DoCast(m_creature, DUNGEON_MODE(SPELL_FLAME_SPHERE_PERIODIC, H_SPELL_FLAME_SPHERE_PERIODIC)); - uiDespawnTimer = 10000; + uiDespawnTimer = 10*IN_MILISECONDS; } void EnterCombat(Unit *who) {} @@ -401,8 +394,8 @@ bool GOHello_prince_taldaram_sphere(Player *pPlayer, GameObject *pGO) switch(pGO->GetEntry()) { - case 193093: pInstance->SetData(DATA_SPHERE1_EVENT,IN_PROGRESS); break; - case 193094: pInstance->SetData(DATA_SPHERE2_EVENT,IN_PROGRESS); break; + case GO_SPHERE1: pInstance->SetData(DATA_SPHERE1_EVENT,IN_PROGRESS); break; + case GO_SPHERE2: pInstance->SetData(DATA_SPHERE2_EVENT,IN_PROGRESS); break; } CAST_AI(boss_taldaramAI, pPrinceTaldaram->AI())->CheckSpheres(); diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h b/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h index df02f9e13d3..4113885b6f4 100644 --- a/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h +++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/azjol_nerub.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2009 - 2010 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 diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp index e8300fd1f97..fc8901270cb 100644 --- a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp +++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_anubarak.cpp @@ -1,75 +1,63 @@ /* - * Copyright (C) 2009 Trinity <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, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* ScriptData -SDName: boss_anubarak -SD%Complete: 90 % -SDComment: Says are not implemented. -SDCategory: Azjol Nerub -EndScriptData */ - +* Copyright (C) 2009 - 2010 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, write to the Free Software +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ #include "ScriptedPch.h" #include "azjol_nerub.h" enum Spells { - SPELL_CARRION_BEETLES = 53520, - SPELL_SUMMON_CARRION_BEETLES = 53521, - SPELL_LEECHING_SWARM = 53467, - - SPELL_IMPALE = 53454, - H_SPELL_IMPALE = 59446, - - SPELL_POUND = 53472, - H_SPELL_POUND = 59433, - - SPELL_SUBMERGE = 53421, + SPELL_CARRION_BEETLES = 53520, + SPELL_SUMMON_CARRION_BEETLES = 53521, + SPELL_LEECHING_SWARM = 53467, + SPELL_IMPALE = 53454, + H_SPELL_IMPALE = 59446, + SPELL_POUND = 53472, + H_SPELL_POUND = 59433, + SPELL_SUBMERGE = 53421, }; enum Creatures { - CREATURE_GUARDIAN = 29216, - CREATURE_VENOMANCER = 29217, - CREATURE_DATTER = 29213 + CREATURE_GUARDIAN = 29216, + CREATURE_VENOMANCER = 29217, + CREATURE_DATTER = 29213 }; // not in db enum Yells { - SAY_INTRO = -1601010, - SAY_AGGRO = -1601000, - SAY_SLAY_1 = -1601001, - SAY_SLAY_2 = -1601002, - SAY_SLAY_3 = -1601003, - SAY_LOCUST_1 = -1601005, - SAY_LOCUST_2 = -1601006, - SAY_LOCUST_3 = -1601007, - SAY_SUBMERGE_1 = -1601008, - SAY_SUBMERGE_2 = -1601009, - SAY_DEATH = -1601004 + SAY_INTRO = -1601010, + SAY_AGGRO = -1601000, + SAY_SLAY_1 = -1601001, + SAY_SLAY_2 = -1601002, + SAY_SLAY_3 = -1601003, + SAY_LOCUST_1 = -1601005, + SAY_LOCUST_2 = -1601006, + SAY_LOCUST_3 = -1601007, + SAY_SUBMERGE_1 = -1601008, + SAY_SUBMERGE_2 = -1601009, + SAY_DEATH = -1601004 }; -#define SPAWNPOINT_Z 224.3 -float SpawnPoint[2][2] = +const Position SpawnPoint[2] = { - {550.7, 282.8}, - {551.1, 229.4}, + { 550.7, 282.8, 224.3 }, + { 551.1, 229.4, 224.3 }, }; struct boss_anub_arakAI : public ScriptedAI @@ -81,36 +69,35 @@ struct boss_anub_arakAI : public ScriptedAI ScriptedInstance *pInstance; - bool Channeling; - bool HeroicMode; - bool Summoned_Guardian; - bool Summoned_Venomancer; - bool Summoned_Datter; - uint32 Phase; - uint32 Phase_Time; - - uint32 SPELL_CARRION_BEETLES_Timer; - uint32 SPELL_LEECHING_SWARM_Timer; - uint32 SPELL_IMPALE_Timer; - uint32 SPELL_POUND_Timer; - uint32 SPELL_SUBMERGE_Timer; - uint32 UNDERGROUND_Timer; - uint32 VENOMANCER_Timer; - uint32 DATTER_Timer; + bool bChanneling; + bool bGuardianSummoned; + bool bVenomancerSummoned; + bool bDatterSummoned; + uint8 uiPhase; + uint32 uiPhaseTimer; + + uint32 uiCarrionBeetlesTimer; + uint32 uiLeechingSwarmTimer; + uint32 uiImpaleTimer; + uint32 uiPoundTimer; + uint32 uiSubmergeTimer; + uint32 uiUndergroundTimer; + uint32 uiVenomancerTimer; + uint32 uiDatterTimer; SummonList lSummons; void Reset() { - SPELL_CARRION_BEETLES_Timer = 8000; - SPELL_LEECHING_SWARM_Timer = 20000; - SPELL_IMPALE_Timer = 9000; - SPELL_POUND_Timer = 15000; + uiCarrionBeetlesTimer = 8*IN_MILISECONDS; + uiLeechingSwarmTimer = 20*IN_MILISECONDS; + uiImpaleTimer = 9*IN_MILISECONDS; + uiPoundTimer = 15*IN_MILISECONDS; - Phase = 0; - Phase_Time = 0; - Channeling = false; + uiPhase = 0; + uiPhaseTimer = 0; + bChanneling = false; m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); m_creature->RemoveAura(SPELL_SUBMERGE); @@ -137,126 +124,125 @@ struct boss_anub_arakAI : public ScriptedAI if (!UpdateVictim()) return; - if (Channeling == true) + if (bChanneling == true) { for (uint8 i = 0; i < 4; ++i) DoCast(m_creature->getVictim(), SPELL_SUMMON_CARRION_BEETLES, true); - Channeling = false; + bChanneling = false; } - if (Phase == 1) + if (uiPhase == 1) { - if (SPELL_IMPALE_Timer <= diff) + if (uiImpaleTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) m_creature->CastSpell(pTarget, DUNGEON_MODE(SPELL_IMPALE,H_SPELL_IMPALE), true); + uiImpaleTimer = 9*IN_MILISECONDS; + } else uiImpaleTimer -= diff; - SPELL_IMPALE_Timer = 9000; - } else SPELL_IMPALE_Timer -= diff; - - if (!Summoned_Guardian) + if (!bGuardianSummoned) { for (uint8 i = 0; i < 2; ++i) { - if (Creature *Guardian = m_creature->SummonCreature(CREATURE_GUARDIAN,SpawnPoint[i][0],SpawnPoint[i][1],SPAWNPOINT_Z,0,TEMPSUMMON_CORPSE_DESPAWN,0)) + if (Creature *Guardian = m_creature->SummonCreature(CREATURE_GUARDIAN,SpawnPoint[i],TEMPSUMMON_CORPSE_DESPAWN,0)) { Guardian->AddThreat(m_creature->getVictim(), 0.0f); DoZoneInCombat(Guardian); } } - Summoned_Guardian = true; + bGuardianSummoned = true; } - if(!Summoned_Venomancer) + if(!bVenomancerSummoned) { - if (VENOMANCER_Timer <= diff) + if (uiVenomancerTimer <= diff) { - if (Phase_Time > 1) + if (uiPhaseTimer > 1) { for (uint8 i = 0; i < 2; ++i) { - if (Creature *Venomancer = m_creature->SummonCreature(CREATURE_VENOMANCER,SpawnPoint[i][0],SpawnPoint[i][1],SPAWNPOINT_Z,0,TEMPSUMMON_CORPSE_DESPAWN,0)) + if (Creature *Venomancer = m_creature->SummonCreature(CREATURE_VENOMANCER,SpawnPoint[i],TEMPSUMMON_CORPSE_DESPAWN,0)) { Venomancer->AddThreat(m_creature->getVictim(), 0.0f); DoZoneInCombat(Venomancer); } } - Summoned_Venomancer = true; + bVenomancerSummoned = true; } - } else VENOMANCER_Timer -= diff; + } else uiVenomancerTimer -= diff; } - if(!Summoned_Datter) + if(!bDatterSummoned) { - if (DATTER_Timer <= diff) + if (uiDatterTimer <= diff) { - if (Phase_Time > 2) + if (uiPhaseTimer > 2) { for (uint8 i = 0; i < 2; ++i) { - if (Creature *Datter = m_creature->SummonCreature(CREATURE_DATTER,SpawnPoint[i][0],SpawnPoint[i][1],SPAWNPOINT_Z,0,TEMPSUMMON_CORPSE_DESPAWN,0)) + if (Creature *Datter = m_creature->SummonCreature(CREATURE_DATTER,SpawnPoint[i],TEMPSUMMON_CORPSE_DESPAWN,0)) { Datter->AddThreat(m_creature->getVictim(), 0.0f); DoZoneInCombat(Datter); } } - Summoned_Datter = true; + bDatterSummoned = true; } - } else DATTER_Timer -= diff; + } else uiDatterTimer -= diff; } - if (UNDERGROUND_Timer <= diff) + if (uiUndergroundTimer <= diff) { m_creature->RemoveAura(SPELL_SUBMERGE); m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); - Phase = 0; - } else UNDERGROUND_Timer -= diff; + uiPhase = 0; + } else uiUndergroundTimer -= diff; } - if (Phase == 0) + if (uiPhase == 0) { - if (SPELL_LEECHING_SWARM_Timer <= diff) + if (uiLeechingSwarmTimer <= diff) { DoCast(m_creature, SPELL_LEECHING_SWARM, true); - SPELL_LEECHING_SWARM_Timer = 19000; - } else SPELL_LEECHING_SWARM_Timer -= diff; + uiLeechingSwarmTimer = 19*IN_MILISECONDS; + } else uiLeechingSwarmTimer -= diff; - if (SPELL_CARRION_BEETLES_Timer <= diff) + if (uiCarrionBeetlesTimer <= diff) { - Channeling = true; + bChanneling = true; DoCastVictim(SPELL_CARRION_BEETLES); - SPELL_CARRION_BEETLES_Timer = 25000; - } else SPELL_CARRION_BEETLES_Timer -= diff; + uiCarrionBeetlesTimer = 25*IN_MILISECONDS; + } else uiCarrionBeetlesTimer -= diff; - if (SPELL_POUND_Timer <= diff) + if (uiPoundTimer <= diff) { DoCastVictim(DUNGEON_MODE(SPELL_POUND, H_SPELL_POUND)); - SPELL_POUND_Timer = 16500; - } else SPELL_POUND_Timer -= diff; + uiPoundTimer = 16.5*IN_MILISECONDS; + } else uiPoundTimer -= diff; } - if ((Phase_Time == 0 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 75) - || (Phase_Time == 1 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 50) - || (Phase_Time == 2 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 25)) + if ((uiPhaseTimer == 0 && HealthBelowPct(75)) + || (uiPhaseTimer == 1 && HealthBelowPct(50)) + || (uiPhaseTimer == 2 && HealthBelowPct(25))) { - ++Phase_Time; + ++uiPhaseTimer; - Summoned_Guardian = false; - Summoned_Venomancer = false; - Summoned_Datter = false; + bGuardianSummoned = false; + bVenomancerSummoned = false; + bDatterSummoned = false; - UNDERGROUND_Timer = 40000; - VENOMANCER_Timer = 25000; - DATTER_Timer = 32000; + uiUndergroundTimer = 40*IN_MILISECONDS; + uiVenomancerTimer = 25*IN_MILISECONDS; + uiDatterTimer = 32*IN_MILISECONDS; DoCast(m_creature, SPELL_SUBMERGE, false); m_creature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE|UNIT_FLAG_NOT_SELECTABLE); - Phase = 1; + uiPhase = 1; } - if (Phase != 1) + if (uiPhase != 1) DoMeleeAttackIfReady(); } diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp index c0dc08b7fe2..cc31d982e03 100644 --- a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp +++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_hadronox.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2009 - 2010 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 @@ -16,89 +16,83 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* Script Data Start -SDName: Boss hadronox -SDAuthor: WarHead -SD%Complete: 50 -SDComment: No Waves atm and the doors spells are crazy... -SDCategory: -Script Data End */ - -//Phase 0 => Gauntlet Event described below -//Phase 1 => Boss Encounter - -/*When your group enters the main room (the one after the bridge), you will notice a group of 3 Nerubians. -When you engage them, 2 more groups like this one spawn behind the first one - it is important to pull the first group back, -so you don't aggro all 3. Hadronox will be under you, fighting Nerubians. - -This is the timed gauntlet - waves of non-elite spiders - will spawn from the 3 doors located a little above the main room, and will then head down to fight Hadronox. After clearing the - main room, it is recommended to just stay in it, kill the occasional non-elites that will attack you instead of the boss, and wait for - Hadronox to make his way to you. When Hadronox enters the main room, she will web the doors, and no more non-elites will spawn.*/ +/* +* Comment: No Waves atm and the doors spells are crazy... +* +* When your group enters the main room (the one after the bridge), you will notice a group of 3 Nerubians. +* When you engage them, 2 more groups like this one spawn behind the first one - it is important to pull the first group back, +* so you don't aggro all 3. Hadronox will be under you, fighting Nerubians. +* +* This is the timed gauntlet - waves of non-elite spiders +* will spawn from the 3 doors located a little above the main room, and will then head down to fight Hadronox. After clearing the +* main room, it is recommended to just stay in it, kill the occasional non-elites that will attack you instead of the boss, and wait for +* Hadronox to make his way to you. When Hadronox enters the main room, she will web the doors, and no more non-elites will spawn. +*/ #include "ScriptedPch.h" #include "azjol_nerub.h" -#define SPELL_ACID_CLOUD 53400 // Victim -#define SPELL_LEECH_POISON 53030 // Victim -#define SPELL_PIERCE_ARMOR 53418 // Victim -#define SPELL_WEB_GRAB 57731 // Victim -#define SPELL_WEB_FRONT_DOORS 53177 // Self -#define SPELL_WEB_SIDE_DOORS 53185 // Self - -#define SPELL_ACID_CLOUD_H 59419 -#define SPELL_LEECH_POISON_H 59417 -#define SPELL_WEB_GRAB_H 59421 +enum Spells +{ + SPELL_ACID_CLOUD = 53400, // Victim + SPELL_LEECH_POISON = 53030, // Victim + SPELL_PIERCE_ARMOR = 53418, // Victim + SPELL_WEB_GRAB = 57731, // Victim + SPELL_WEB_FRONT_DOORS = 53177, // Self + SPELL_WEB_SIDE_DOORS = 53185, // Self + H_SPELL_ACID_CLOUD = 59419, + H_SPELL_LEECH_POISON = 59417, + H_SPELL_WEB_GRAB = 59421 +}; struct boss_hadronoxAI : public ScriptedAI { boss_hadronoxAI(Creature* c) : ScriptedAI(c) { pInstance = c->GetInstanceData(); - MaxDistance = 50.0f; - FirstTime = true; + fMaxDistance = 50.0f; + bFirstTime = true; } ScriptedInstance* pInstance; - uint32 acidtimer, - leechtimer, - piercetimer, - grabtimer, - doorstimer, - CheckDistanceTimer; + uint32 uiAcidTimer; + uint32 uiLeechTimer; + uint32 uiPierceTimer; + uint32 uiGrabTimer; + uint32 uiDoorsTimer; + uint32 uiCheckDistanceTimer; - bool FirstTime; + bool bFirstTime; - float MaxDistance; + float fMaxDistance; void Reset() { m_creature->SetFloatValue(UNIT_FIELD_BOUNDINGRADIUS, 9.0f); m_creature->SetFloatValue(UNIT_FIELD_COMBATREACH, 9.0f); - acidtimer = urand(10000,14000); - leechtimer = urand(3000,9000); - piercetimer = urand(1000,3000); - grabtimer = urand(15000,19000); - doorstimer = urand(20000,30000); + uiAcidTimer = urand(10*IN_MILISECONDS,14*IN_MILISECONDS); + uiLeechTimer = urand(3*IN_MILISECONDS,9*IN_MILISECONDS); + uiPierceTimer = urand(1*IN_MILISECONDS,3*IN_MILISECONDS); + uiGrabTimer = urand(15*IN_MILISECONDS,19*IN_MILISECONDS); + uiDoorsTimer = urand(20*IN_MILISECONDS,30*IN_MILISECONDS); + uiCheckDistanceTimer = 2*IN_MILISECONDS; - CheckDistanceTimer = 2000; - - if (pInstance && (pInstance->GetData(DATA_HADRONOX_EVENT) != DONE && !FirstTime)) + if (pInstance && (pInstance->GetData(DATA_HADRONOX_EVENT) != DONE && !bFirstTime)) pInstance->SetData(DATA_HADRONOX_EVENT, FAIL); - FirstTime = false; + bFirstTime = false; } //when Hadronox kills any enemy (that includes a party member) she will regain 10% of her HP if the target had Leech Poison on void KilledUnit(Unit* Victim) { // not sure if this aura check is correct, I think it is though - if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)) || !m_creature->isAlive()) + if (!Victim || !Victim->HasAura(DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON)) || !m_creature->isAlive()) return; - uint32 health = (m_creature->GetMaxHealth()/100)*10; + uint32 health = m_creature->GetMaxHealth()/10; if ((m_creature->GetHealth()+health) >= m_creature->GetMaxHealth()) m_creature->SetHealth(m_creature->GetMaxHealth()); @@ -127,11 +121,11 @@ struct boss_hadronoxAI : public ScriptedAI float x=0.0f, y=0.0f, z=0.0f; m_creature->GetRespawnCoord(x,y,z); - if (CheckDistanceTimer <= uiDiff) - CheckDistanceTimer = 5000; + if (uiCheckDistanceTimer <= uiDiff) + uiCheckDistanceTimer = 5*IN_MILISECONDS; else { - CheckDistanceTimer -= uiDiff; + uiCheckDistanceTimer -= uiDiff; return; } if (m_creature->IsInEvadeMode() || !m_creature->getVictim()) @@ -146,7 +140,7 @@ struct boss_hadronoxAI : public ScriptedAI if (!UpdateVictim()) return; // Without he comes up through the air to players on the bridge after krikthir if players crossing this bridge! - CheckDistance(MaxDistance, diff); + CheckDistance(fMaxDistance, diff); if (m_creature->HasAura(SPELL_WEB_FRONT_DOORS) || m_creature->HasAura(SPELL_WEB_SIDE_DOORS)) { @@ -156,42 +150,41 @@ struct boss_hadronoxAI : public ScriptedAI else if (!IsCombatMovement()) SetCombatMovement(true); - if (piercetimer <= diff) + if (uiPierceTimer <= diff) { DoCast(m_creature->getVictim(), SPELL_PIERCE_ARMOR); - piercetimer = 8000; - } else piercetimer -= diff; + uiPierceTimer = 8*IN_MILISECONDS; + } else uiPierceTimer -= diff; - if (acidtimer <= diff) + if (uiAcidTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, DUNGEON_MODE(SPELL_ACID_CLOUD, SPELL_ACID_CLOUD_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_ACID_CLOUD, H_SPELL_ACID_CLOUD)); - acidtimer = urand(20000,30000); - } else acidtimer -= diff; + uiAcidTimer = urand(20*IN_MILISECONDS,30*IN_MILISECONDS); + } else uiAcidTimer -= diff; - if (leechtimer <= diff) + if (uiLeechTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) - DoCast(pTarget, DUNGEON_MODE(SPELL_LEECH_POISON, SPELL_LEECH_POISON_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_LEECH_POISON, H_SPELL_LEECH_POISON)); - leechtimer = urand(11000,14000); - } else leechtimer -= diff; + uiLeechTimer = urand(11*IN_MILISECONDS,14*IN_MILISECONDS); + } else uiLeechTimer -= diff; - if (grabtimer <= diff) + if (uiGrabTimer <= diff) { if (Unit* pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0)) // Draws all players (and attacking Mobs) to itself. - DoCast(pTarget, DUNGEON_MODE(SPELL_WEB_GRAB, SPELL_WEB_GRAB_H)); + DoCast(pTarget, DUNGEON_MODE(SPELL_WEB_GRAB, H_SPELL_WEB_GRAB)); - grabtimer = urand(15000,30000); - } else grabtimer -= diff; + uiGrabTimer = urand(15*IN_MILISECONDS,30*IN_MILISECONDS); + } else uiGrabTimer -= diff; - if (doorstimer <= diff) - {/* Debuff bleibt auf den Spielern bis zum Tod... - DoCast(m_creature, RAND(SPELL_WEB_FRONT_DOORS, SPELL_WEB_SIDE_DOORS)); - */ - doorstimer = urand(30000,60000); - } else doorstimer -= diff; + if (uiDoorsTimer <= diff) + { + //DoCast(m_creature, RAND(SPELL_WEB_FRONT_DOORS, SPELL_WEB_SIDE_DOORS)); + uiDoorsTimer = urand(30*IN_MILISECONDS,60*IN_MILISECONDS); + } else uiDoorsTimer -= diff; DoMeleeAttackIfReady(); } diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp index dda95f0005d..f4d0e7df8e1 100644 --- a/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2009 - 2010 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 @@ -16,84 +16,81 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* ScriptData -SDName: boss_krikthir_the_gatewatcher -SD%Complete: 80 % -SDComment: Find in the future best timers and the event is not implemented. -SDCategory: Azjol Nerub -EndScriptData */ - -/*** SQL START *** -update creature_template set scriptname = 'boss_krik_thir' where entry = ''; -*** SQL END ***/ +/* + * Comment: Find in the future best timers and the event is not implemented. + */ #include "ScriptedPch.h" #include "azjol_nerub.h" enum Spells { - SPELL_MIND_FLAY = 52586, - H_SPELL_MIND_FLAY = 59367, - SPELL_CURSE_OF_FATIGUE = 52592, - H_SPELL_CURSE_OF_FATIGUE = 59368, - SPELL_FRENZY = 28747, //maybe 53361 - - SPELL_SUMMON_SKITTERING_SWARMER = 52438, //AOE Effect 140, maybe 52439 - SPELL_SUMMON_SKITTERING_SWARMER_1 = 52439, //Summon 3x 28735 - - H_SPELL_ACID_SPLASH = 59363, - SPELL_ACID_SPLASH = 52446, - - SPELL_CHARGE = 16979,//maybe is another spell - SPELL_BACKSTAB = 52540, - - SPELL_SHADOW_BOLT = 52534, - H_SPELL_SHADOW_BOLT = 59357, - SPELL_SHADOW_NOVA = 52535, - H_SPELL_SHADOW_NOVA = 59358, - - SPELL_STRIKE = 52532, - SPELL_CLEAVE = 49806, - - SPELL_ENRAGE = 52470, - - SPELL_INFECTED_BITE = 52469, - H_SPELL_INFECTED_BITE = 59364, - SPELL_WEB_WRAP = 52086,//the spell is not working propperly - - SPELL_BLINDING_WEBS = 52524, - H_SPELL_BLINDING_WEBS = 59365, - - SPELL_POSION_SPRAY = 52493, - H_SPELL_POSION_SPRAY = 59366, + SPELL_MIND_FLAY = 52586, + H_SPELL_MIND_FLAY = 59367, + SPELL_CURSE_OF_FATIGUE = 52592, + H_SPELL_CURSE_OF_FATIGUE = 59368, + SPELL_FRENZY = 28747, //maybe 53361 + SPELL_SUMMON_SKITTERING_SWARMER = 52438, //AOE Effect 140, maybe 52439 + SPELL_SUMMON_SKITTERING_SWARMER_1 = 52439, //Summon 3x 28735 + H_SPELL_ACID_SPLASH = 59363, + SPELL_ACID_SPLASH = 52446, + SPELL_CHARGE = 16979,//maybe is another spell + SPELL_BACKSTAB = 52540, + SPELL_SHADOW_BOLT = 52534, + H_SPELL_SHADOW_BOLT = 59357, + SPELL_SHADOW_NOVA = 52535, + H_SPELL_SHADOW_NOVA = 59358, + SPELL_STRIKE = 52532, + SPELL_CLEAVE = 49806, + SPELL_ENRAGE = 52470, + SPELL_INFECTED_BITE = 52469, + H_SPELL_INFECTED_BITE = 59364, + SPELL_WEB_WRAP = 52086,//the spell is not working properly + SPELL_BLINDING_WEBS = 52524, + H_SPELL_BLINDING_WEBS = 59365, + SPELL_POSION_SPRAY = 52493, + H_SPELL_POSION_SPRAY = 59366 }; enum Mobs { - MOB_SKITTERING_SWARMER = 28735, - MOB_SKITTERING_SWARMER_CONTROLLER = 32593, - MOB_SKITTERING_INFECTIOR = 28736, + MOB_SKITTERING_SWARMER = 28735, + MOB_SKITTERING_SWARMER_CONTROLLER = 32593, + MOB_SKITTERING_INFECTIOR = 28736 }; enum Yells { - SAY_AGGRO = -1601000, - SAY_SLAY_1 = -1601001, - SAY_SLAY_2 = -1601002, - SAY_DEATH = -1601003, + SAY_AGGRO = -1601000, + SAY_SLAY_1 = -1601001, + SAY_SLAY_2 = -1601002, + SAY_DEATH = -1601003, //Not in db - SAY_SEND_GROUP_1 = -1601004, - SAY_SEND_GROUP_2 = -1601005, - SAY_SEND_GROUP_3 = -1601006, - SAY_SWARM_1 = -1601007, - SAY_SWARM_2 = -1601008, - SAY_PREFIGHT_1 = -1601009, - SAY_PREFIGHT_2 = -1601010, - SAY_PREFIGHT_3 = -1601011, + SAY_SEND_GROUP_1 = -1601004, + SAY_SEND_GROUP_2 = -1601005, + SAY_SEND_GROUP_3 = -1601006, + SAY_SWARM_1 = -1601007, + SAY_SWARM_2 = -1601008, + SAY_PREFIGHT_1 = -1601009, + SAY_PREFIGHT_2 = -1601010, + SAY_PREFIGHT_3 = -1601011 }; + enum Misc { - ACHIEVEMENT_WATCH_HIM_DIE = 1296 + ACHIEV_WATH_HIM_DIE = 1296 +}; + +const Position SpawnPoint[] = +{ + { 566.164, 682.087, 769.079, 2.21657 }, + { 529.042, 706.941, 777.298, 1.0821 }, + { 489.975, 671.239, 772.131, 0.261799 }, + { 488.556, 692.95, 771.764, 4.88692 }, + { 553.34, 640.387, 777.419, 1.20428 }, + { 517.486, 706.398, 777.335, 5.35816 }, + { 504.01, 637.693, 777.479, 0.506145 }, + { 552.625, 706.408, 777.177, 3.4383 } }; struct boss_krik_thirAI : public ScriptedAI { @@ -104,14 +101,14 @@ struct boss_krik_thirAI : public ScriptedAI ScriptedInstance* pInstance; - uint32 MindFlayTimer; - uint32 CurseFatigueTimer; - uint32 SummonTimer; + uint32 uiMindFlayTimer; + uint32 uiCurseFatigueTimer; + uint32 uiSummonTimer; void Reset() { - MindFlayTimer = 15000; - CurseFatigueTimer = 12000; + uiMindFlayTimer = 15*IN_MILISECONDS; + uiCurseFatigueTimer = 12*IN_MILISECONDS; if (pInstance) pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, NOT_STARTED); @@ -121,7 +118,7 @@ struct boss_krik_thirAI : public ScriptedAI { DoScriptText(SAY_AGGRO, m_creature); Summon(); - SummonTimer = 15000; + uiSummonTimer = 15*IN_MILISECONDS; if (pInstance) pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, IN_PROGRESS); @@ -129,22 +126,22 @@ struct boss_krik_thirAI : public ScriptedAI void Summon() { - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,566.164,682.087,769.079,2.21657,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,566.164,682.087,769.079,2.21657,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,529.042,706.941,777.298,1.0821,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,529.042,706.941,777.298,1.0821,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,489.975,671.239,772.131,0.261799,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,489.975,671.239,772.131,0.261799,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,488.556,692.95,771.764,4.88692,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,488.556,692.95,771.764,4.88692,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,553.34,640.387,777.419,1.20428,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,553.34,640.387,777.419,1.20428,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,517.486,706.398,777.335,5.35816,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,517.486,706.398,777.335,5.35816,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,504.01,637.693,777.479,0.506145,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,504.01,637.693,777.479,0.506145,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,552.625,706.408,777.177,3.4383,TEMPSUMMON_TIMED_DESPAWN,25000); - m_creature->SummonCreature(MOB_SKITTERING_SWARMER,552.625,706.408,777.177,3.4383,TEMPSUMMON_TIMED_DESPAWN,25000); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[0],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[0],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[1],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[1],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[2],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[2],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[3],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[3],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,SpawnPoint[4],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[4],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,SpawnPoint[5],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[5],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_INFECTIOR,SpawnPoint[6],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[6],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[7],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); + m_creature->SummonCreature(MOB_SKITTERING_SWARMER,SpawnPoint[7],TEMPSUMMON_TIMED_DESPAWN,25*IN_MILISECONDS); } void UpdateAI(const uint32 diff) @@ -152,19 +149,19 @@ struct boss_krik_thirAI : public ScriptedAI if (!UpdateVictim()) return; - if (SummonTimer <= diff) + if (uiSummonTimer <= diff) { Summon(); - SummonTimer = 15000; - } else SummonTimer -= diff; + uiSummonTimer = 15*IN_MILISECONDS; + } else uiSummonTimer -= diff; - if (MindFlayTimer <= diff) + if (uiMindFlayTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_MIND_FLAY, H_SPELL_MIND_FLAY)); - MindFlayTimer = 15000; - } else MindFlayTimer -= diff; + uiMindFlayTimer = 15*IN_MILISECONDS; + } else uiMindFlayTimer -= diff; - if (CurseFatigueTimer <= diff) + if (uiCurseFatigueTimer <= diff) { //WowWiki say "Curse of Fatigue-Kirk'thir will cast Curse of Fatigue on 2-3 targets periodically." Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true); @@ -173,10 +170,10 @@ struct boss_krik_thirAI : public ScriptedAI DoCast(pTarget, DUNGEON_MODE(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE)); DoCast(pTarget_1, DUNGEON_MODE(SPELL_CURSE_OF_FATIGUE, H_SPELL_CURSE_OF_FATIGUE)); - CurseFatigueTimer = 10000; - } else CurseFatigueTimer -= diff; + uiCurseFatigueTimer = 10*IN_MILISECONDS; + } else uiCurseFatigueTimer -= diff; - if (!m_creature->HasAura(SPELL_FRENZY) && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 10) + if (!m_creature->HasAura(SPELL_FRENZY) && HealthBelowPct(10)) DoCast(m_creature, SPELL_FRENZY, true); DoMeleeAttackIfReady(); @@ -189,19 +186,12 @@ struct boss_krik_thirAI : public ScriptedAI { pInstance->SetData(DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, DONE); //Achievement: Watch him die - AchievementEntry const *AchievWatchHimDie = GetAchievementStore()->LookupEntry(ACHIEVEMENT_WATCH_HIM_DIE); - Map* pMap = m_creature->GetMap(); Creature *pAdd1, *pAdd2, *pAdd3; if ((pAdd1 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_GASHRA))) && pAdd1->isAlive() && (pAdd2 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_SILTHIK))) && pAdd2->isAlive() && (pAdd3 = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_WATCHER_NARJIL))) && pAdd3->isAlive() && - IsHeroic() && pMap && pMap->IsDungeon() && AchievWatchHimDie) - { - Map::PlayerList const &players = pMap->GetPlayers(); - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) - if (itr->getSource()) - itr->getSource()->CompletedAchievement(AchievWatchHimDie); - } + IsHeroic()) + pInstance->DoCompleteAchievement(ACHIEV_WATH_HIM_DIE); } } void KilledUnit(Unit *victim) @@ -214,7 +204,7 @@ struct boss_krik_thirAI : public ScriptedAI void JustSummoned(Creature* summoned) { - summoned->GetMotionMaster()->MovePoint(m_creature->GetEntry(),m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ()); + summoned->GetMotionMaster()->MovePoint(0,m_creature->GetPositionX(),m_creature->GetPositionY(),m_creature->GetPositionZ()); } }; @@ -234,13 +224,13 @@ struct npc_anub_ar_skirmisherAI : public ScriptedAI { npc_anub_ar_skirmisherAI(Creature *c) : ScriptedAI(c) {} - uint32 ChargeTimer; - uint32 BackstabTimer; + uint32 uiChargeTimer; + uint32 uiBackstabTimer; void Reset() { - ChargeTimer = 11000; - BackstabTimer = 7000; + uiChargeTimer = 11*IN_MILISECONDS; + uiBackstabTimer = 7*IN_MILISECONDS; } void UpdateAI(const uint32 diff) @@ -248,7 +238,7 @@ struct npc_anub_ar_skirmisherAI : public ScriptedAI if (!UpdateVictim()) return; - if (ChargeTimer <= diff) + if (uiChargeTimer <= diff) { if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) { @@ -256,15 +246,14 @@ struct npc_anub_ar_skirmisherAI : public ScriptedAI m_creature->AddThreat(pTarget,1.0f); DoCast(pTarget, SPELL_CHARGE, true); } + uiChargeTimer = 15*IN_MILISECONDS; + } else uiChargeTimer -= diff; - ChargeTimer = 15000; - } else ChargeTimer -= diff; - - if (BackstabTimer <= diff) + if (uiBackstabTimer <= diff) { DoCast(m_creature->getVictim(), SPELL_BACKSTAB); - BackstabTimer = 12000; - } else BackstabTimer -= diff; + uiBackstabTimer = 12*IN_MILISECONDS; + } else uiBackstabTimer -= diff; DoMeleeAttackIfReady(); @@ -275,13 +264,13 @@ struct npc_anub_ar_shadowcasterAI : public ScriptedAI { npc_anub_ar_shadowcasterAI(Creature *c) : ScriptedAI(c) {} - uint32 ShadowBoltTimer; - uint32 ShadowNovaTimer; + uint32 uiShadowBoltTimer; + uint32 uiShadowNovaTimer; void Reset() { - ShadowBoltTimer = 6000; - ShadowNovaTimer = 15000; + uiShadowBoltTimer = 6*IN_MILISECONDS; + uiShadowNovaTimer = 15*IN_MILISECONDS; } void UpdateAI(const uint32 diff) @@ -289,18 +278,18 @@ struct npc_anub_ar_shadowcasterAI : public ScriptedAI if (!UpdateVictim()) return; - if (ShadowBoltTimer <= diff) + if (uiShadowBoltTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, DUNGEON_MODE(SPELL_SHADOW_BOLT, H_SPELL_SHADOW_BOLT), true); - ShadowBoltTimer = 15000; - } else ShadowBoltTimer -= diff; + uiShadowBoltTimer = 15*IN_MILISECONDS; + } else uiShadowBoltTimer -= diff; - if (ShadowNovaTimer <= diff) + if (uiShadowNovaTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_SHADOW_NOVA, H_SPELL_SHADOW_NOVA), true); - ShadowNovaTimer = 17000; - } else ShadowNovaTimer -= diff; + uiShadowNovaTimer = 17*IN_MILISECONDS; + } else uiShadowNovaTimer -= diff; DoMeleeAttackIfReady(); } @@ -310,13 +299,13 @@ struct npc_anub_ar_warriorAI : public ScriptedAI { npc_anub_ar_warriorAI(Creature *c) : ScriptedAI(c){} - uint32 CleaveTimer; - uint32 StrikeTimer; + uint32 uiCleaveTimer; + uint32 uiStrikeTimer; void Reset() { - CleaveTimer = 11000; - StrikeTimer = 6000; + uiCleaveTimer = 11*IN_MILISECONDS; + uiStrikeTimer = 6*IN_MILISECONDS; } void UpdateAI(const uint32 diff) @@ -324,17 +313,17 @@ struct npc_anub_ar_warriorAI : public ScriptedAI if (!UpdateVictim()) return; - if (StrikeTimer <= diff) + if (uiStrikeTimer <= diff) { DoCast(m_creature->getVictim(), SPELL_STRIKE, true); - StrikeTimer = 15000; - } else StrikeTimer -= diff; + uiStrikeTimer = 15*IN_MILISECONDS; + } else uiStrikeTimer -= diff; - if (CleaveTimer <= diff) + if (uiCleaveTimer <= diff) { DoCast(m_creature->getVictim(), SPELL_CLEAVE, true); - CleaveTimer = 17000; - } else CleaveTimer -= diff; + uiCleaveTimer = 17*IN_MILISECONDS; + } else uiCleaveTimer -= diff; DoMeleeAttackIfReady(); @@ -346,13 +335,13 @@ struct npc_watcher_gashraAI : public ScriptedAI { npc_watcher_gashraAI(Creature *c) : ScriptedAI(c) {} - uint32 WebWrapTimer; - uint32 InfectedBiteTimer; + uint32 uiWebWrapTimer; + uint32 uiInfectedBiteTimer; void Reset() { - WebWrapTimer = 11000; - InfectedBiteTimer = 4000; + uiWebWrapTimer = 11*IN_MILISECONDS; + uiInfectedBiteTimer = 4*IN_MILISECONDS; } void EnterCombat(Unit* who) @@ -365,18 +354,18 @@ struct npc_watcher_gashraAI : public ScriptedAI if (!UpdateVictim()) return; - if (WebWrapTimer <= diff) + if (uiWebWrapTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, SPELL_WEB_WRAP, true); - WebWrapTimer = 17000; - } else WebWrapTimer -= diff; + uiWebWrapTimer = 17*IN_MILISECONDS; + } else uiWebWrapTimer -= diff; - if (InfectedBiteTimer <= diff) + if (uiInfectedBiteTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); - InfectedBiteTimer = 15000; - } else InfectedBiteTimer -= diff; + uiInfectedBiteTimer = 15*IN_MILISECONDS; + } else uiInfectedBiteTimer -= diff; DoMeleeAttackIfReady(); } @@ -386,15 +375,15 @@ struct npc_watcher_narjilAI : public ScriptedAI { npc_watcher_narjilAI(Creature *c) : ScriptedAI(c) {} - uint32 WebWrapTimer; - uint32 InfectedBiteTimer; - uint32 BlindingWebsTimer; + uint32 uiWebWrapTimer; + uint32 uiInfectedBiteTimer; + uint32 uiBindingWebsTimer; void Reset() { - WebWrapTimer = 11000; - InfectedBiteTimer = 4000; - BlindingWebsTimer = 17000; + uiWebWrapTimer = 11*IN_MILISECONDS; + uiInfectedBiteTimer = 4*IN_MILISECONDS; + uiBindingWebsTimer = 17*IN_MILISECONDS; } void UpdateAI(const uint32 diff) @@ -402,24 +391,24 @@ struct npc_watcher_narjilAI : public ScriptedAI if (!UpdateVictim()) return; - if (WebWrapTimer <= diff) + if (uiWebWrapTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, SPELL_WEB_WRAP, true); - WebWrapTimer = 15000; - } else WebWrapTimer -= diff; + uiWebWrapTimer = 15*IN_MILISECONDS; + } else uiWebWrapTimer -= diff; - if (InfectedBiteTimer <= diff) + if (uiInfectedBiteTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); - InfectedBiteTimer = 11000; - } else InfectedBiteTimer -= diff; + uiInfectedBiteTimer = 11*IN_MILISECONDS; + } else uiInfectedBiteTimer -= diff; - if (BlindingWebsTimer <= diff) + if (uiBindingWebsTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_BLINDING_WEBS, H_SPELL_BLINDING_WEBS), true); - BlindingWebsTimer = 17000; - } else BlindingWebsTimer -= diff; + uiBindingWebsTimer = 17*IN_MILISECONDS; + } else uiBindingWebsTimer -= diff; DoMeleeAttackIfReady(); } @@ -429,15 +418,15 @@ struct npc_watcher_silthikAI : public ScriptedAI { npc_watcher_silthikAI(Creature *c) : ScriptedAI(c) {} - uint32 WebWrapTimer; - uint32 InfectedBiteTimer; - uint32 PosionSprayTimer; + uint32 uiWebWrapTimer; + uint32 uiInfectedBiteTimer; + uint32 uiPoisonSprayTimer; void Reset() { - WebWrapTimer = 11000; - InfectedBiteTimer = 4000; - PosionSprayTimer = 15000; + uiWebWrapTimer = 11*IN_MILISECONDS; + uiInfectedBiteTimer = 4*IN_MILISECONDS; + uiPoisonSprayTimer = 15*IN_MILISECONDS; } void UpdateAI(const uint32 diff) @@ -445,25 +434,25 @@ struct npc_watcher_silthikAI : public ScriptedAI if (!UpdateVictim()) return; - if (WebWrapTimer <= diff) + if (uiWebWrapTimer <= diff) { if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) DoCast(pTarget, SPELL_WEB_WRAP, true); - WebWrapTimer = 15000; - } else WebWrapTimer -= diff; + uiWebWrapTimer = 15*IN_MILISECONDS; + } else uiWebWrapTimer -= diff; - if (InfectedBiteTimer <= diff) + if (uiInfectedBiteTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_INFECTED_BITE, H_SPELL_INFECTED_BITE), true); - InfectedBiteTimer = 15000; - } else InfectedBiteTimer -= diff; + uiInfectedBiteTimer = 15*IN_MILISECONDS; + } else uiInfectedBiteTimer -= diff; - if (PosionSprayTimer <= diff) + if (uiPoisonSprayTimer <= diff) { DoCast(m_creature->getVictim(), DUNGEON_MODE(SPELL_POSION_SPRAY, H_SPELL_POSION_SPRAY), true); - PosionSprayTimer = 17000; - } else PosionSprayTimer -= diff; + uiPoisonSprayTimer = 17*IN_MILISECONDS; + } else uiPoisonSprayTimer -= diff; DoMeleeAttackIfReady(); diff --git a/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp b/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp index 8f80d0cc4d0..bf322e8b392 100644 --- a/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp +++ b/src/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2009 Trinity <http://www.trinitycore.org/> + * Copyright (C) 2009 - 2010 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 @@ -16,13 +16,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* ScriptData -SDName: Instance_Azjol_Nerub -SD%Complete: 0 -SDComment: Placeholder -SDCategory: Azjol Nerub -EndScriptData */ - #include "ScriptedPch.h" #include "azjol_nerub.h" @@ -38,34 +31,34 @@ struct instance_azjol_nerub : public ScriptedInstance { instance_azjol_nerub(Map* pMap) : ScriptedInstance(pMap) {Initialize();}; - uint64 m_uiKrikthir; - uint64 m_uiHadronox; - uint64 m_uiAnubarak; - uint64 m_uiWatcherGashra; - uint64 m_uiWatcherSilthik; - uint64 m_uiWatcherNarjil; + uint64 uiKrikthir; + uint64 uiHadronox; + uint64 uiAnubarak; + uint64 uiWatcherGashra; + uint64 uiWatcherSilthik; + uint64 uiWatcherNarjil; - uint64 m_uiKrikthirDoor; + uint64 uiKrikthirDoor; - uint32 m_auiEncounter[MAX_ENCOUNTER]; + uint32 auiEncounter[MAX_ENCOUNTER]; void Initialize() { - memset(&m_auiEncounter, 0, sizeof(m_auiEncounter)); - - m_uiKrikthir = 0; - m_uiHadronox = 0; - m_uiAnubarak = 0; - m_uiWatcherGashra = 0; - m_uiWatcherSilthik = 0; - m_uiWatcherNarjil = 0; - m_uiKrikthirDoor = 0; + memset(&auiEncounter, 0, sizeof(auiEncounter)); + + uiKrikthir = 0; + uiHadronox = 0; + uiAnubarak = 0; + uiWatcherGashra = 0; + uiWatcherSilthik = 0; + uiWatcherNarjil = 0; + uiKrikthirDoor = 0; } bool IsEncounterInProgress() const { for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) return true; + if (auiEncounter[i] == IN_PROGRESS) return true; return false; } @@ -74,12 +67,12 @@ struct instance_azjol_nerub : public ScriptedInstance { switch(pCreature->GetEntry()) { - case 28684: m_uiKrikthir = pCreature->GetGUID(); break; - case 28921: m_uiHadronox = pCreature->GetGUID(); break; - case 29120: m_uiAnubarak = pCreature->GetGUID(); break; - case 28730: m_uiWatcherGashra = pCreature->GetGUID(); break; - case 28731: m_uiWatcherSilthik = pCreature->GetGUID(); break; - case 28729: m_uiWatcherNarjil = pCreature->GetGUID(); break; + case 28684: uiKrikthir = pCreature->GetGUID(); break; + case 28921: uiHadronox = pCreature->GetGUID(); break; + case 29120: uiAnubarak = pCreature->GetGUID(); break; + case 28730: uiWatcherGashra = pCreature->GetGUID(); break; + case 28731: uiWatcherSilthik = pCreature->GetGUID(); break; + case 28729: uiWatcherNarjil = pCreature->GetGUID(); break; } } @@ -88,8 +81,8 @@ struct instance_azjol_nerub : public ScriptedInstance switch (pGo->GetEntry()) { case 192395: - m_uiKrikthirDoor = pGo->GetGUID(); - if (m_auiEncounter[0] == DONE) + uiKrikthirDoor = pGo->GetGUID(); + if (auiEncounter[0] == DONE) HandleGameObject(NULL,true,pGo); break; } @@ -99,12 +92,12 @@ struct instance_azjol_nerub : public ScriptedInstance { switch(identifier) { - case DATA_KRIKTHIR_THE_GATEWATCHER: return m_uiKrikthir; - case DATA_HADRONOX: return m_uiHadronox; - case DATA_ANUBARAK: return m_uiAnubarak; - case DATA_WATCHER_GASHRA: return m_uiWatcherGashra; - case DATA_WATCHER_SILTHIK: return m_uiWatcherSilthik; - case DATA_WATCHER_NARJIL: return m_uiWatcherNarjil; + case DATA_KRIKTHIR_THE_GATEWATCHER: return uiKrikthir; + case DATA_HADRONOX: return uiHadronox; + case DATA_ANUBARAK: return uiAnubarak; + case DATA_WATCHER_GASHRA: return uiWatcherGashra; + case DATA_WATCHER_SILTHIK: return uiWatcherSilthik; + case DATA_WATCHER_NARJIL: return uiWatcherNarjil; } return 0; @@ -115,14 +108,14 @@ struct instance_azjol_nerub : public ScriptedInstance switch(type) { case DATA_KRIKTHIR_THE_GATEWATCHER_EVENT: - m_auiEncounter[0] = data; + auiEncounter[0] = data; if (data == DONE) - HandleGameObject(m_uiKrikthirDoor,true); + HandleGameObject(uiKrikthirDoor,true); break; case DATA_HADRONOX_EVENT: - m_auiEncounter[1] = data; break; + auiEncounter[1] = data; break; case DATA_ANUBARAK_EVENT: - m_auiEncounter[2] = data; break; + auiEncounter[2] = data; break; } if (data == DONE) @@ -135,9 +128,9 @@ struct instance_azjol_nerub : public ScriptedInstance { switch(type) { - case DATA_KRIKTHIR_THE_GATEWATCHER_EVENT: return m_auiEncounter[0]; - case DATA_HADRONOX_EVENT: return m_auiEncounter[1]; - case DATA_ANUBARAK_EVENT: return m_auiEncounter[2]; + case DATA_KRIKTHIR_THE_GATEWATCHER_EVENT: return auiEncounter[0]; + case DATA_HADRONOX_EVENT: return auiEncounter[1]; + case DATA_ANUBARAK_EVENT: return auiEncounter[2]; } return 0; @@ -147,16 +140,12 @@ struct instance_azjol_nerub : public ScriptedInstance { OUT_SAVE_INST_DATA; - std::string str_data; - std::ostringstream saveStream; - saveStream << "A N " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " - << m_auiEncounter[2]; - - str_data = saveStream.str(); + saveStream << "A N " << auiEncounter[0] << " " << auiEncounter[1] << " " + << auiEncounter[2]; OUT_SAVE_INST_DATA_COMPLETE; - return str_data; + return saveStream.str(); } void Load(const char* in) @@ -177,13 +166,13 @@ struct instance_azjol_nerub : public ScriptedInstance if (dataHead1 == 'A' && dataHead2 == 'N') { - m_auiEncounter[0] = data0; - m_auiEncounter[1] = data1; - m_auiEncounter[2] = data2; + auiEncounter[0] = data0; + auiEncounter[1] = data1; + auiEncounter[2] = data2; for (uint8 i = 0; i < MAX_ENCOUNTER; ++i) - if (m_auiEncounter[i] == IN_PROGRESS) - m_auiEncounter[i] = NOT_STARTED; + if (auiEncounter[i] == IN_PROGRESS) + auiEncounter[i] = NOT_STARTED; } else OUT_LOAD_INST_DATA_FAIL; diff --git a/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h b/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h index 6d343f34232..597971d17dd 100644 --- a/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h +++ b/src/scripts/northrend/draktharon_keep/drak_tharon_keep.h @@ -1,5 +1,5 @@ /* -* Copyright (C) 2008-2010 Trinity <http://www.trinitycore.org/> +* Copyright (C) 2008 - 2010 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 |