diff options
author | maximius <none@none> | 2009-10-13 16:18:00 -0700 |
---|---|---|
committer | maximius <none@none> | 2009-10-13 16:18:00 -0700 |
commit | 3069fd6fb1bb61b8e7d97128ae8448859533824c (patch) | |
tree | 9a0ff624330e50dc1652effc3ed65150452ee8d7 | |
parent | 8a5ac3834d120c4dc0efbb4369b859e318635fce (diff) |
*Krikthir the Gatewatcher - Implement Watch Him Die achievement & change defines to enums, by Tartalo
--HG--
branch : trunk
3 files changed, 50 insertions, 12 deletions
diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp index 536addeace4..f9b47964d38 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/boss_krikthir_the_gatewatcher.cpp @@ -94,7 +94,10 @@ enum Yells H_SPELL_POSION_SPRAY = 59366, }; - +enum Misc +{ + ACHIEVEMENT_WATCH_HIM_DIE = 1296 +}; struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI { boss_krik_thirAI(Creature *c) : ScriptedAI(c) @@ -194,7 +197,22 @@ struct TRINITY_DLL_DECL boss_krik_thirAI : public ScriptedAI DoScriptText(SAY_DEATH, m_creature); if (pInstance) + { 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() && + HeroicMode && pMap && pMap->IsDungeon() && AchievWatchHimDie) + { + Map::PlayerList const &players = pMap->GetPlayers(); + for(Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr) + itr->getSource()->CompletedAchievement(AchievWatchHimDie); + } + } } void KilledUnit(Unit *victim) { diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h index 9e319e8fde0..df02f9e13d3 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/def_azjol_nerub.h @@ -19,11 +19,20 @@ #ifndef DEF_AZJOL_NERUB_H #define DEF_AZJOL_NERUB_H -#define DATA_KRIKTHIR_THE_GATEWATCHER 1 -#define DATA_HADRONOX 2 -#define DATA_ANUBARAK 3 +enum Data64 +{ + DATA_KRIKTHIR_THE_GATEWATCHER, + DATA_HADRONOX, + DATA_ANUBARAK, + DATA_WATCHER_GASHRA, + DATA_WATCHER_SILTHIK, + DATA_WATCHER_NARJIL +}; +enum Data +{ + DATA_KRIKTHIR_THE_GATEWATCHER_EVENT, + DATA_HADRONOX_EVENT, + DATA_ANUBARAK_EVENT +}; -#define DATA_KRIKTHIR_THE_GATEWATCHER_EVENT 4 -#define DATA_HADRONOX_EVENT 5 -#define DATA_ANUBARAK_EVENT 6 #endif diff --git a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp index 5a2159345e5..80d2ed04652 100644 --- a/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp +++ b/src/bindings/scripts/scripts/northrend/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp @@ -41,6 +41,9 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance uint64 m_uiKrikthir; uint64 m_uiHadronox; uint64 m_uiAnubarak; + uint64 m_uiWatcherGashra; + uint64 m_uiWatcherSilthik; + uint64 m_uiWatcherNarjil; uint64 m_uiKrikthirDoor; @@ -52,7 +55,10 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance m_uiKrikthir = 0; m_uiHadronox = 0; - m_uiAnubarak =0; + m_uiAnubarak = 0; + m_uiWatcherGashra = 0; + m_uiWatcherSilthik = 0; + m_uiWatcherNarjil = 0; m_uiKrikthirDoor = 0; } @@ -69,10 +75,12 @@ struct TRINITY_DLL_DECL 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 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; } } @@ -95,6 +103,9 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance 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; } return 0; |