diff options
author | tartalo <none@none> | 2009-10-31 21:29:00 +0100 |
---|---|---|
committer | tartalo <none@none> | 2009-10-31 21:29:00 +0100 |
commit | d9e728eadef3bb21a908b35028834116e6cf779e (patch) | |
tree | 2968e1e3cfaa5d64c0a5acacbce0923eab0d95d9 /src | |
parent | 7f00bab916517486a6202678f210b5e47588e342 (diff) |
Drak'Tharon Keep: Fix Trollgore's achievement
Fix possible crash in Tharon'Ja's script
Add player spells in Tharon'Ja's script
--HG--
branch : trunk
Diffstat (limited to 'src')
-rw-r--r-- | src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp | 24 | ||||
-rw-r--r-- | src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp | 2 |
2 files changed, 24 insertions, 2 deletions
diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp index 2384f789043..6ed0587166d 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_tharon_ja.cpp @@ -168,8 +168,15 @@ struct TRINITY_DLL_DECL boss_tharon_jaAI : public ScriptedAI for (std::list<HostilReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) { Unit *pTemp = Unit::GetUnit((*m_creature),(*itr)->getUnitGuid()); - if (pTemp->GetTypeId() == TYPEID_PLAYER) + if (pTemp && pTemp->GetTypeId() == TYPEID_PLAYER) + { + Player *pTarget = CAST_PLR(pTemp); DoCast(pTemp, SPELL_GIFT_OF_THARON_JA); + pTarget->AddTemporarySpell(SPELL_PLAYER_PHASE2_BONE_ARMOR); + pTarget->AddTemporarySpell(SPELL_PLAYER_PHASE2_SLAYING_STRIKE); + pTarget->AddTemporarySpell(SPELL_PLAYER_PHASE2_TAUNT); + pTarget->AddTemporarySpell(SPELL_PLAYER_PHASE2_TOUCH_OF_LIFE); + } } uiPhaseTimer = 20000; uiLightningBreathTimer = urand(3000,4000); @@ -217,6 +224,21 @@ struct TRINITY_DLL_DECL boss_tharon_jaAI : public ScriptedAI uiCurseOfLifeTimer = 1000; uiRainOfFireTimer = urand(14000,18000); uiShadowVolleyTimer = urand(8000,10000); + std::list<HostilReference*>& threatlist = m_creature->getThreatManager().getThreatList(); + for (std::list<HostilReference*>::iterator itr = threatlist.begin(); itr != threatlist.end(); ++itr) + { + Unit *pTemp = Unit::GetUnit((*m_creature),(*itr)->getUnitGuid()); + if (pTemp && pTemp->GetTypeId() == TYPEID_PLAYER) + { + if (pTemp->HasAura(SPELL_GIFT_OF_THARON_JA)) + pTemp->RemoveAura(SPELL_GIFT_OF_THARON_JA); + Player *pTarget = CAST_PLR(pTemp); + pTarget->RemoveTemporarySpell(SPELL_PLAYER_PHASE2_BONE_ARMOR); + pTarget->RemoveTemporarySpell(SPELL_PLAYER_PHASE2_SLAYING_STRIKE); + pTarget->RemoveTemporarySpell(SPELL_PLAYER_PHASE2_TAUNT); + pTarget->RemoveTemporarySpell(SPELL_PLAYER_PHASE2_TOUCH_OF_LIFE); + } + } } else uiPhaseTimer -= diff; break; } diff --git a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp index 2845ce02f0e..d4474258c89 100644 --- a/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp +++ b/src/bindings/scripts/scripts/northrend/draktharon_keep/boss_trollgore.cpp @@ -83,7 +83,7 @@ struct TRINITY_DLL_DECL boss_trollgoreAI : public ScriptedAI uiInfectedWoundTimer = urand(6000,10000); uiExplodeCorpseTimer = 3000; - bAchiev = true; + bAchiev = HeroicMode; if (pInstance) pInstance->SetData(DATA_TROLLGORE_EVENT, NOT_STARTED); |