diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp | 11 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp | 35 |
2 files changed, 19 insertions, 27 deletions
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp index cdfc09f1434..9d05fd44a6c 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_dred.cpp @@ -65,7 +65,10 @@ struct TRINITY_DLL_DECL boss_dredAI : public ScriptedAI void Reset() { if (pInstance) + { pInstance->SetData(DATA_DRED_EVENT,NOT_STARTED); + pInstance->SetData(DATA_KING_DRED_ACHIEV, 0); + } BellowingRoarTimer = 33000; GrievousBiteTimer = 20000; @@ -165,7 +168,7 @@ struct TRINITY_DLL_DECL npc_drakkari_gutripperAI : public ScriptedAI void Reset() { - GutRipTimer = urand(10,15)*1000; + GutRipTimer = urand(10000,15000); } void UpdateAI(const uint32 diff) @@ -177,7 +180,7 @@ struct TRINITY_DLL_DECL npc_drakkari_gutripperAI : public ScriptedAI if (GutRipTimer < diff) { DoCastVictim(SPELL_GUT_RIP,false); - GutRipTimer = urand(10,15)*1000; + GutRipTimer = urand(10000,15000); }else GutRipTimer -=diff; DoMeleeAttackIfReady(); @@ -213,7 +216,7 @@ struct TRINITY_DLL_DECL npc_drakkari_scytheclawAI : public ScriptedAI void Reset() { - RendTimer = urand(10,15)*1000; + RendTimer = urand(10000,15000); } void UpdateAI(const uint32 diff) @@ -225,7 +228,7 @@ struct TRINITY_DLL_DECL npc_drakkari_scytheclawAI : public ScriptedAI if (RendTimer < diff) { DoCastVictim(SPELL_REND,false); - RendTimer = urand(10,15)*1000; + RendTimer = urand(10000,15000); }else RendTimer -=diff; DoMeleeAttackIfReady(); diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp index 4226988c732..2b155793949 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_novos.cpp @@ -66,9 +66,9 @@ enum CombatPhase PHASE_1, PHASE_2 }; -enum Achievement +enum Achievements { - ACHIEVEMENT_OH_NOVOS = 2057 + ACHIEV_OH_NOVOS = 2057 }; struct Location @@ -77,7 +77,8 @@ struct Location }; static Location AddSpawnPoint = { -379.20, -816.76, 59.70}; -static Location AddDestinyPoint = { -282.169, -711.369, 27.375}; +static Location CrystalHandlerSpawnPoint = { -326.626343, -709.956604, 27.813314 }; +static Location AddDestinyPoint = { -382.169, -711.369, 27.375}; struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI { @@ -103,6 +104,7 @@ struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI Phase = IDLE; luiCrystals.clear(); bAchiev = true; + m_creature->CastStop(); if (pInstance) { pInstance->SetData(DATA_NOVOS_EVENT, NOT_STARTED); @@ -155,7 +157,7 @@ struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI if (uiCrystalHandlerTimer <= diff) { //TODO: say - Creature *pCrystalHandler = m_creature->SummonCreature(CREATURE_CRYSTAL_HANDLER, AddSpawnPoint.x, AddSpawnPoint.y , AddSpawnPoint.z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); + Creature *pCrystalHandler = m_creature->SummonCreature(CREATURE_CRYSTAL_HANDLER, CrystalHandlerSpawnPoint.x, CrystalHandlerSpawnPoint.y , CrystalHandlerSpawnPoint.z, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN,20000); pCrystalHandler->GetMotionMaster()->MovePoint(0, AddDestinyPoint.x, AddDestinyPoint.y, AddDestinyPoint.z); uiCrystalHandlerTimer = urand(20000,30000); } else uiCrystalHandlerTimer -= diff; @@ -163,12 +165,9 @@ struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI case PHASE_2: if (uiTimer <= diff) { - Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); - while (pTarget && pTarget->GetTypeId() != TYPEID_PLAYER) - pTarget = SelectUnit(SELECT_TARGET_RANDOM,0); - if (pTarget) - DoCast(pTarget, HeroicMode ? RAND(H_SPELL_ARCANE_BLAST,H_SPELL_BLIZZARD,H_SPELL_FROSTBOLT,H_SPELL_WRATH_OF_MISERY) : - RAND(SPELL_ARCANE_BLAST,SPELL_BLIZZARD,SPELL_FROSTBOLT,SPELL_WRATH_OF_MISERY)); + if (Unit *pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true)) + DoCast(pTarget, HEROIC(RAND(SPELL_ARCANE_BLAST,SPELL_BLIZZARD,SPELL_FROSTBOLT,SPELL_WRATH_OF_MISERY), + RAND(H_SPELL_ARCANE_BLAST,H_SPELL_BLIZZARD,H_SPELL_FROSTBOLT,H_SPELL_WRATH_OF_MISERY))); uiTimer = urand(1000,3000); } else uiTimer -= diff; break; @@ -177,21 +176,11 @@ struct TRINITY_DLL_DECL boss_novosAI : public Scripted_NoMovementAI void JustDied(Unit* killer) { if (pInstance) + { pInstance->SetData(DATA_NOVOS_EVENT, DONE); - if (HeroicMode && bAchiev) - { - AchievementEntry const *AchievOhNovos = GetAchievementStore()->LookupEntry(ACHIEVEMENT_OH_NOVOS); - if (AchievOhNovos) - { - Map* pMap = m_creature->GetMap(); - if (pMap && pMap->IsDungeon()) - { - Map::PlayerList const &players = pMap->GetPlayers(); - for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) - itr->getSource()->CompletedAchievement(AchievOhNovos); - } - } + if (HeroicMode && bAchiev) + pInstance->DoCompleteAchievement(ACHIEV_OH_NOVOS); } } |