aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortartalo <none@none>2009-10-20 15:38:53 +0200
committertartalo <none@none>2009-10-20 15:38:53 +0200
commit4654e9e446ed7e939d3ea97cc6f3d4fad17c1c25 (patch)
tree27ec83cdc764b2f8f7e57a9d6a3e86cb9d31687e /src
parent1912cd7b264ddc10eac67d12a948a80da612e105 (diff)
Ruins of Ahn'Qiraj: Instance script + cleanup + boss placeholder's completion
First step of AQ20 remaking process --HG-- branch : trunk
Diffstat (limited to 'src')
-rw-r--r--src/bindings/scripts/CMakeLists.txt1
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ayamiss.cpp31
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_buru.cpp47
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_kurinnaxx.cpp73
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_moam.cpp40
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ossirian.cpp63
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_rajaxx.cpp76
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/def_ruins_of_ahnqiraj.h34
-rw-r--r--src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp179
-rw-r--r--src/bindings/scripts/system/ScriptLoader.cpp14
10 files changed, 489 insertions, 69 deletions
diff --git a/src/bindings/scripts/CMakeLists.txt b/src/bindings/scripts/CMakeLists.txt
index ad920fd6dbd..7d0481fda23 100644
--- a/src/bindings/scripts/CMakeLists.txt
+++ b/src/bindings/scripts/CMakeLists.txt
@@ -254,6 +254,7 @@ SET(trinityscript_LIB_SRCS
scripts/kalimdor/ruins_of_ahnqiraj/boss_moam.cpp
scripts/kalimdor/ruins_of_ahnqiraj/boss_ossirian.cpp
scripts/kalimdor/ruins_of_ahnqiraj/boss_rajaxx.cpp
+ scripts/kalimdor/ruins_of_ahnqiraj/def_ruins_of_ahnqiraj.h
scripts/kalimdor/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp
scripts/kalimdor/temple_of_ahnqiraj/boss_bug_trio.cpp
scripts/kalimdor/temple_of_ahnqiraj/boss_cthun.cpp
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ayamiss.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ayamiss.cpp
index 84e34924958..3b08d8b6eb1 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ayamiss.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ayamiss.cpp
@@ -22,26 +22,35 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
/*
To do:
make him fly from 70-100%
*/
-#define SPELL_STINGERSPRAY 25749
-#define SPELL_POISONSTINGER 25748 //only used in phase1
-#define SPELL_SUMMONSWARMER 25844 //might be 25708
-// #define SPELL_PARALYZE 23414 doesnt work correct (core)
+enum Spells
+{
+ SPELL_STINGERSPRAY = 25749,
+ SPELL_POISONSTINGER = 25748, //only used in phase1
+ SPELL_SUMMONSWARMER = 25844, //might be 25708
+ SPELL_PARALYZE = 23414 //doesnt work correct (core)
+};
struct TRINITY_DLL_DECL boss_ayamissAI : public ScriptedAI
{
- boss_ayamissAI(Creature *c) : ScriptedAI(c) {}
+ boss_ayamissAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
Unit *pTarget;
uint32 STINGERSPRAY_Timer;
uint32 POISONSTINGER_Timer;
uint32 SUMMONSWARMER_Timer;
uint32 phase;
+
+ ScriptedInstance *pInstance;
void Reset()
{
@@ -50,11 +59,23 @@ struct TRINITY_DLL_DECL boss_ayamissAI : public ScriptedAI
POISONSTINGER_Timer = 30000;
SUMMONSWARMER_Timer = 60000;
phase=1;
+
+ if (pInstance)
+ pInstance->SetData(DATA_AYAMISS_EVENT, NOT_STARTED);
}
void EnterCombat(Unit *who)
{
pTarget = who;
+
+ if (pInstance)
+ pInstance->SetData(DATA_AYAMISS_EVENT, IN_PROGRESS);
+ }
+
+ void JustDied(Unit *killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_AYAMISS_EVENT, DONE);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_buru.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_buru.cpp
index 58c48540362..40f23d66101 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_buru.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_buru.cpp
@@ -22,6 +22,51 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
- #define EMOTE_TARGET -1509002
+enum Yells
+{
+ EMOTE_TARGET = -1509002
+};
+
+struct TRINITY_DLL_DECL boss_buruAI : public ScriptedAI
+{
+ boss_buruAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ ScriptedInstance *pInstance;
+
+ void Reset()
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_BURU_EVENT, NOT_STARTED);
+ }
+
+ void EnterCombat(Unit *who)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_BURU_EVENT, IN_PROGRESS);
+ }
+
+ void JustDied(Unit *killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_BURU_EVENT, DONE);
+ }
+};
+CreatureAI* GetAI_boss_buru(Creature* pCreature)
+{
+ return new boss_buruAI (pCreature);
+}
+
+void AddSC_boss_buru()
+{
+ Script *newscript;
+ newscript = new Script;
+ newscript->Name = "boss_buru";
+ newscript->GetAI = &GetAI_boss_buru;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_kurinnaxx.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_kurinnaxx.cpp
index 5096b60ccdf..834a6aeb515 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_kurinnaxx.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_kurinnaxx.cpp
@@ -22,31 +22,51 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
-#define SPELL_MORTALWOUND 25646
-#define SPELL_SANDTRAP 25656
-#define SPELL_ENRAGE 28798
+enum Spells
+{
+ SPELL_MORTALWOUND = 25646,
+ SPELL_SANDTRAP = 25656,
+ SPELL_ENRAGE = 28798,
+ SPELL_SUMMON_PLAYER = 26446,
+ SPELL_TRASH = 3391,
+ SPELL_WIDE_SLASH = 25814
+};
struct TRINITY_DLL_DECL boss_kurinnaxxAI : public ScriptedAI
{
- boss_kurinnaxxAI(Creature *c) : ScriptedAI(c) {}
-
- Unit *pTarget;
- uint32 MORTALWOUND_Timer;
- uint32 SANDTRAP_Timer;
- uint32 i;
+ boss_kurinnaxxAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ uint32 uiMortalWoundTimer;
+ uint32 uiSandtrapTimer;
+ bool bIsEnraged;
+
+ ScriptedInstance* pInstance;
void Reset()
{
- i=0;
- pTarget = NULL;
- MORTALWOUND_Timer = 30000;
- SANDTRAP_Timer = 30000;
+ bIsEnraged = false;
+ uiMortalWoundTimer = urand(2000,7000);
+ uiSandtrapTimer = 30000;
+
+ if (pInstance)
+ pInstance->SetData(DATA_KURINNAXX_EVENT, NOT_STARTED);
}
void EnterCombat(Unit *who)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_KURINNAXX_EVENT, IN_PROGRESS);
+ }
+
+ void JustDied(Unit *killer)
{
- pTarget = who;
+ if (pInstance)
+ pInstance->SetData(DATA_KURINNAXX_EVENT, DONE);
}
void UpdateAI(const uint32 diff)
@@ -55,25 +75,26 @@ struct TRINITY_DLL_DECL boss_kurinnaxxAI : public ScriptedAI
return;
//If we are <30% cast enrage
- if (i==0 && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 30 && !m_creature->IsNonMeleeSpellCasted(false))
+ if (!bIsEnraged && m_creature->GetHealth()*100 / m_creature->GetMaxHealth() <= 30 && !m_creature->IsNonMeleeSpellCasted(false))
{
- i=1;
- DoCast(m_creature->getVictim(),SPELL_ENRAGE);
+ bIsEnraged = true;
+ DoCast(m_creature,SPELL_ENRAGE);
}
- //MORTALWOUND_Timer
- if (MORTALWOUND_Timer < diff)
+ //uiMortalWoundTimer
+ if (uiMortalWoundTimer < diff)
{
DoCast(m_creature->getVictim(),SPELL_MORTALWOUND);
- MORTALWOUND_Timer = 30000;
- }else MORTALWOUND_Timer -= diff;
+ uiMortalWoundTimer = urand(2000,7000);;
+ }else uiMortalWoundTimer -= diff;
- //SANDTRAP_Timer
- if (SANDTRAP_Timer < diff)
+ //uiSandtrapTimer
+ if (uiSandtrapTimer < diff)
{
- DoCast(m_creature->getVictim(),SPELL_SANDTRAP);
- SANDTRAP_Timer = 30000;
- }else SANDTRAP_Timer -= diff;
+ if (Unit* pTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))
+ DoCast(pTarget,SPELL_SANDTRAP);
+ uiSandtrapTimer = 30000;
+ }else uiSandtrapTimer -= diff;
DoMeleeAttackIfReady();
}
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_moam.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_moam.cpp
index 1e5ca42d044..9412439a7d8 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_moam.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_moam.cpp
@@ -22,19 +22,29 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
-#define EMOTE_AGGRO -1509000
-#define EMOTE_MANA_FULL -1509001
+enum Emotes
+{
+ EMOTE_AGGRO = -1509000,
+ EMOTE_MANA_FULL = -1509001
+};
-#define SPELL_TRAMPLE 15550
-#define SPELL_DRAINMANA 27256
-#define SPELL_ARCANEERUPTION 25672
-#define SPELL_SUMMONMANA 25681
-#define SPELL_GRDRSLEEP 24360 //Greater Dreamless Sleep
+enum Spells
+{
+ SPELL_TRAMPLE = 15550,
+ SPELL_DRAINMANA = 27256,
+ SPELL_ARCANEERUPTION = 25672,
+ SPELL_SUMMONMANA = 25681,
+ SPELL_GRDRSLEEP = 24360 //Greater Dreamless Sleep
+};
struct TRINITY_DLL_DECL boss_moamAI : public ScriptedAI
{
- boss_moamAI(Creature *c) : ScriptedAI(c) {}
+ boss_moamAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
Unit *pTarget;
uint32 TRAMPLE_Timer;
@@ -42,6 +52,8 @@ struct TRINITY_DLL_DECL boss_moamAI : public ScriptedAI
uint32 SUMMONMANA_Timer;
uint32 i;
uint32 j;
+
+ ScriptedInstance *pInstance;
void Reset()
{
@@ -50,12 +62,24 @@ struct TRINITY_DLL_DECL boss_moamAI : public ScriptedAI
pTarget = NULL;
TRAMPLE_Timer = 30000;
DRAINMANA_Timer = 30000;
+
+ if (pInstance)
+ pInstance->SetData(DATA_MOAM_EVENT, NOT_STARTED);
}
void EnterCombat(Unit *who)
{
DoScriptText(EMOTE_AGGRO, m_creature);
pTarget = who;
+
+ if (pInstance)
+ pInstance->SetData(DATA_MOAM_EVENT, IN_PROGRESS);
+ }
+
+ void JustDied(Unit *killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_MOAM_EVENT, DONE);
}
void UpdateAI(const uint32 diff)
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ossirian.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ossirian.cpp
index 5652b706917..306913ed6bd 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ossirian.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_ossirian.cpp
@@ -22,17 +22,58 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
-#define SAY_SURPREME2 -1509019
-#define SAY_SURPREME3 -1509020
+enum Yells
+{
+ SAY_SURPREME2 = -1509019,
+ SAY_SURPREME3 = -1509020,
+ SAY_RAND_INTRO1 = -1509021,
+ SAY_RAND_INTRO2 = -1509022,
+ SAY_RAND_INTRO3 = -1509023,
+ SAY_RAND_INTRO4 = -1509024, //possibly old?
+ SAY_AGGRO = -1509025,
+ SAY_SLAY = -1509026,
+ SAY_DEATH = -1509027
+};
-#define SAY_RAND_INTRO1 -1509021
-#define SAY_RAND_INTRO2 -1509022
-#define SAY_RAND_INTRO3 -1509023
-#define SAY_RAND_INTRO4 -1509024 //possibly old?
-
-#define SAY_AGGRO -1509025
-
-#define SAY_SLAY -1509026
-#define SAY_DEATH -1509027
+struct TRINITY_DLL_DECL boss_ossirianAI : public ScriptedAI
+{
+ boss_ossirianAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ ScriptedInstance *pInstance;
+
+ void Reset()
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_OSSIRIAN_EVENT, NOT_STARTED);
+ }
+
+ void EnterCombat(Unit *who)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_OSSIRIAN_EVENT, IN_PROGRESS);
+ }
+
+ void JustDied(Unit *killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_OSSIRIAN_EVENT, DONE);
+ }
+};
+CreatureAI* GetAI_boss_ossirian(Creature* pCreature)
+{
+ return new boss_ossirianAI (pCreature);
+}
+void AddSC_boss_ossirian()
+{
+ Script *newscript;
+ newscript = new Script;
+ newscript->Name = "boss_ossirian";
+ newscript->GetAI = &GetAI_boss_ossirian;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_rajaxx.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_rajaxx.cpp
index fb2c92ff59f..8568c43ce11 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_rajaxx.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/boss_rajaxx.cpp
@@ -22,24 +22,64 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
-#define SAY_ANDOROV_INTRO -1509003
-#define SAY_ANDOROV_ATTACK -1509004
+enum Yells
+{
+ SAY_ANDOROV_INTRO = -1509003,
+ SAY_ANDOROV_ATTACK = -1509004,
+ SAY_WAVE3 = -1509005,
+ SAY_WAVE4 = -1509006,
+ SAY_WAVE5 = -1509007,
+ SAY_WAVE6 = -1509008,
+ SAY_WAVE7 = -1509009,
+ SAY_INTRO = -1509010,
+ SAY_UNK1 = -1509011,
+ SAY_UNK2 = -1509012,
+ SAY_UNK3 = -1509013,
+ SAY_UNK4 = -1509014,
+ SAY_DEAGGRO = -1509015,
+ SAY_KILLS_ANDOROV = -1509016,
+ SAY_COMPLETE_QUEST = -1509017 //Yell when realm complete quest 8743 for world event
+};
-#define SAY_WAVE3 -1509005
-#define SAY_WAVE4 -1509006
-#define SAY_WAVE5 -1509007
-#define SAY_WAVE6 -1509008
-#define SAY_WAVE7 -1509009
-#define SAY_INTRO -1509010
-
-#define SAY_UNK1 -1509011
-#define SAY_UNK2 -1509012
-#define SAY_UNK3 -1509013
-#define SAY_UNK4 -1509014
-
-#define SAY_DEAGGRO -1509015
-#define SAY_KILLS_ANDOROV -1509016
-
-#define SAY_COMPLETE_QUEST -1509017 //Yell when realm complete quest 8743 for world event
+struct TRINITY_DLL_DECL boss_rajaxxAI : public ScriptedAI
+{
+ boss_rajaxxAI(Creature *c) : ScriptedAI(c)
+ {
+ pInstance = c->GetInstanceData();
+ }
+
+ ScriptedInstance *pInstance;
+
+ void Reset()
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_RAJAXX_EVENT, NOT_STARTED);
+ }
+
+ void EnterCombat(Unit *who)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_RAJAXX_EVENT, IN_PROGRESS);
+ }
+
+ void JustDied(Unit *killer)
+ {
+ if (pInstance)
+ pInstance->SetData(DATA_RAJAXX_EVENT, DONE);
+ }
+};
+CreatureAI* GetAI_boss_rajaxx(Creature* pCreature)
+{
+ return new boss_rajaxxAI (pCreature);
+}
+void AddSC_boss_rajaxx()
+{
+ Script *newscript;
+ newscript = new Script;
+ newscript->Name = "boss_rajaxx";
+ newscript->GetAI = &GetAI_boss_rajaxx;
+ newscript->RegisterSelf();
+} \ No newline at end of file
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/def_ruins_of_ahnqiraj.h b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/def_ruins_of_ahnqiraj.h
new file mode 100644
index 00000000000..c53a0c8050d
--- /dev/null
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/def_ruins_of_ahnqiraj.h
@@ -0,0 +1,34 @@
+#ifndef DEF_RUINS_OF_AHNQIRAJ_H
+#define DEF_RUINS_OF_AHNQIRAJ_H
+
+enum Data
+{
+ DATA_KURINNAXX_EVENT,
+ DATA_RAJAXX_EVENT,
+ DATA_MOAM_EVENT,
+ DATA_BURU_EVENT,
+ DATA_AYAMISS_EVENT,
+ DATA_OSSIRIAN_EVENT
+};
+
+enum Data64
+{
+ DATA_KURINNAXX,
+ DATA_RAJAXX,
+ DATA_MOAM,
+ DATA_BURU,
+ DATA_AYAMISS,
+ DATA_OSSIRIAN
+};
+
+enum Bosses
+{
+ CREATURE_KURINAXX = 15348,
+ CREATURE_RAJAXX = 15341,
+ CREATURE_MOAM = 15340,
+ CREATURE_BURU = 15370,
+ CREATURE_AYAMISS = 15369,
+ CREATURE_OSSIRIAN = 15339
+};
+
+#endif \ No newline at end of file
diff --git a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp
index b94e6f16a80..3e9c0197629 100644
--- a/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp
+++ b/src/bindings/scripts/scripts/kalimdor/ruins_of_ahnqiraj/instance_ruins_of_ahnqiraj.cpp
@@ -22,4 +22,183 @@ SDCategory: Ruins of Ahn'Qiraj
EndScriptData */
#include "precompiled.h"
+#include "def_ruins_of_ahnqiraj.h"
+#define MAX_ENCOUNTER 6
+/* Ruins of Ahn'Qiraj encounters:
+0 - Kurinnaxx
+1 - General Rajaxx
+2 - Moam
+3 - Buru the Gorger
+4 - Ayamiss the Hunter
+5 - Ossirian the Unscarred */
+
+struct TRINITY_DLL_DECL instance_ruins_of_ahn_qiraj : public ScriptedInstance
+{
+ instance_ruins_of_ahn_qiraj(Map* pMap) : ScriptedInstance(pMap) { Initialize(); }
+
+ uint64 uiKurinaxx;
+ uint64 uiRajaxx;
+ uint64 uiMoam;
+ uint64 uiBuru;
+ uint64 uiAyamiss;
+ uint64 uiOssirian;
+
+ uint8 m_auiEncounter[MAX_ENCOUNTER];
+ std::string str_data;
+
+ void Initialize()
+ {
+ memset(&m_auiEncounter, 0, sizeof(m_auiEncounter));
+
+ uiKurinaxx = 0;
+ uiRajaxx = 0;
+ uiMoam = 0;
+ uiBuru = 0;
+ uiAyamiss = 0;
+ uiOssirian = 0;
+ }
+
+ void OnCreatureCreate(Creature* pCreature, bool add)
+ {
+ switch (pCreature->GetEntry())
+ {
+ case CREATURE_KURINAXX:
+ uiKurinaxx = pCreature->GetGUID();
+ break;
+ case CREATURE_RAJAXX:
+ uiRajaxx = pCreature->GetGUID();
+ break;
+ case CREATURE_MOAM:
+ uiMoam = pCreature->GetGUID();
+ break;
+ case CREATURE_BURU:
+ uiBuru = pCreature->GetGUID();
+ break;
+ case CREATURE_AYAMISS:
+ uiAyamiss = pCreature->GetGUID();
+ break;
+ case CREATURE_OSSIRIAN:
+ uiOssirian = pCreature->GetGUID();
+ break;
+ }
+ }
+
+ uint32 GetData(uint32 identifier)
+ {
+ switch(identifier)
+ {
+ case DATA_KURINNAXX_EVENT: return m_auiEncounter[0];
+ case DATA_RAJAXX_EVENT: return m_auiEncounter[1];
+ case DATA_MOAM_EVENT: return m_auiEncounter[2];
+ case DATA_BURU_EVENT: return m_auiEncounter[3];
+ case DATA_AYAMISS_EVENT: return m_auiEncounter[4];
+ case DATA_OSSIRIAN_EVENT: return m_auiEncounter[5];
+ }
+
+ return 0;
+ }
+
+ void SetData(uint32 identifier, uint32 data)
+ {
+ switch(identifier)
+ {
+ case DATA_KURINNAXX_EVENT:
+ m_auiEncounter[0] = data;
+ break;
+ case DATA_RAJAXX_EVENT:
+ m_auiEncounter[1] = data;
+ break;
+ case DATA_MOAM_EVENT:
+ m_auiEncounter[2] = data;
+ break;
+ case DATA_BURU_EVENT:
+ m_auiEncounter[3] = data;
+ break;
+ case DATA_AYAMISS_EVENT:
+ m_auiEncounter[4] = data;
+ break;
+ case DATA_OSSIRIAN_EVENT:
+ m_auiEncounter[5] = data;
+ break;
+ }
+
+ if (data == DONE)
+ SaveToDB();
+ }
+
+ uint64 GetData64(uint32 uiIdentifier)
+ {
+ switch(uiIdentifier)
+ {
+ case DATA_KURINNAXX: return uiKurinaxx;
+ case DATA_RAJAXX: return uiRajaxx;
+ case DATA_MOAM: return uiMoam;
+ case DATA_BURU: return uiBuru;
+ case DATA_AYAMISS: return uiAyamiss;
+ case DATA_OSSIRIAN: return uiOssirian;
+ }
+
+ return 0;
+ }
+
+ std::string GetSaveData()
+ {
+ OUT_SAVE_INST_DATA;
+
+ std::ostringstream saveStream;
+ saveStream << "R A " << m_auiEncounter[0] << " " << m_auiEncounter[1] << " "
+ << m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5];
+
+ str_data = saveStream.str();
+
+ OUT_SAVE_INST_DATA_COMPLETE;
+ return str_data;
+ }
+
+ void Load(const char* in)
+ {
+ if (!in)
+ {
+ OUT_LOAD_INST_DATA_FAIL;
+ return;
+ }
+
+ OUT_LOAD_INST_DATA(in);
+
+ char dataHead1, dataHead2;
+ uint16 data0,data1,data2, data3, data4, data5;
+
+ std::istringstream loadStream(in);
+ loadStream >> dataHead1 >> dataHead2 >> data0 >> data1 >> data2 >> data3 >> data4 >> data5;
+
+ if (dataHead1 == 'R' && dataHead2 == 'A')
+ {
+ m_auiEncounter[0] = data0;
+ m_auiEncounter[1] = data1;
+ m_auiEncounter[2] = data2;
+ m_auiEncounter[3] = data3;
+ m_auiEncounter[4] = data4;
+ m_auiEncounter[5] = data5;
+
+ for (uint8 i = 0; i < MAX_ENCOUNTER; ++i)
+ if (m_auiEncounter[i] == IN_PROGRESS)
+ m_auiEncounter[i] = NOT_STARTED;
+
+ }else OUT_LOAD_INST_DATA_FAIL;
+ }
+};
+
+InstanceData* GetInstanceData_instance_ruins_of_ahn_qiraj(Map* pMap)
+{
+ return new instance_ruins_of_ahn_qiraj(pMap);
+}
+
+void AddSC_instance_ruins_of_ahnqiraj()
+{
+ Script *newscript;
+ newscript = new Script;
+ newscript->Name = "instance_ruins_of_ahnqiraj";
+ newscript->GetInstanceData = &GetInstanceData_instance_ruins_of_ahn_qiraj;
+ newscript->RegisterSelf();
+}
diff --git a/src/bindings/scripts/system/ScriptLoader.cpp b/src/bindings/scripts/system/ScriptLoader.cpp
index dde39ee426f..e902c4ee8e6 100644
--- a/src/bindings/scripts/system/ScriptLoader.cpp
+++ b/src/bindings/scripts/system/ScriptLoader.cpp
@@ -224,6 +224,13 @@ extern void AddSC_boss_onyxia(); //Onyxia's Lair
extern void AddSC_boss_amnennar_the_coldbringer(); //Razorfen Downs
extern void AddSC_razorfen_downs();
extern void AddSC_razorfen_kraul(); //Razorfen Kraul
+extern void AddSC_boss_kurinnaxx(); //Ruins of ahn'qiraj
+extern void AddSC_boss_rajaxx();
+extern void AddSC_boss_moam();
+extern void AddSC_boss_buru();
+extern void AddSC_boss_ayamiss();
+extern void AddSC_boss_ossirian();
+extern void AddSC_instance_ruins_of_ahnqiraj();
extern void AddSC_boss_cthun(); //Temple of ahn'qiraj
extern void AddSC_boss_fankriss();
extern void AddSC_boss_huhuran();
@@ -659,6 +666,13 @@ void AddScripts()
AddSC_boss_amnennar_the_coldbringer(); //Razorfen Downs
AddSC_razorfen_downs();
AddSC_razorfen_kraul(); //Razorfen Kraul
+ AddSC_boss_kurinnaxx(); //Ruins of ahn'qiraj
+ AddSC_boss_rajaxx();
+ AddSC_boss_moam();
+ AddSC_boss_buru();
+ AddSC_boss_ayamiss();
+ AddSC_boss_ossirian();
+ AddSC_instance_ruins_of_ahnqiraj();
AddSC_boss_cthun(); //Temple of ahn'qiraj
AddSC_boss_fankriss();
AddSC_boss_huhuran();