diff options
author | tartalo <none@none> | 2009-10-20 15:38:53 +0200 |
---|---|---|
committer | tartalo <none@none> | 2009-10-20 15:38:53 +0200 |
commit | 4654e9e446ed7e939d3ea97cc6f3d4fad17c1c25 (patch) | |
tree | 27ec83cdc764b2f8f7e57a9d6a3e86cb9d31687e | |
parent | 1912cd7b264ddc10eac67d12a948a80da612e105 (diff) |
Ruins of Ahn'Qiraj: Instance script + cleanup + boss placeholder's completion
First step of AQ20 remaking process
--HG--
branch : trunk
12 files changed, 501 insertions, 69 deletions
diff --git a/sql/FULL/world_scripts_full.sql b/sql/FULL/world_scripts_full.sql index b96e7ebef72..92825b04727 100644 --- a/sql/FULL/world_scripts_full.sql +++ b/sql/FULL/world_scripts_full.sql @@ -851,6 +851,12 @@ UPDATE `creature_template` SET `ScriptName`='npc_deaths_head_ward_keeper' WHERE /* REDRIDGE MOUNTAINS */ /* RUINS OF AHN'QIRAJ */ +UPDATE `creature_template` SET `ScriptName`='boss_kurinnaxx' WHERE `entry`=15348; +UPDATE `creature_template` SET `ScriptName`='boss_rajaxx' WHERE `entry`=15341; +UPDATE `creature_template` SET `ScriptName`='boss_moam' WHERE `entry`=15340; +UPDATE `creature_template` SET `ScriptName`='boss_buru' WHERE `entry`=15370; +UPDATE `creature_template` SET `ScriptName`='boss_ayamiss' WHERE `entry`=15369; +UPDATE `creature_template` SET `ScriptName`='boss_ossirian' WHERE `entry`=15339; UPDATE `instance_template` SET `script`='instance_ruins_of_ahnqiraj' WHERE `map`=509; /* SCARLET MONASTERY */ diff --git a/sql/updates/6022_world_scripts.sql b/sql/updates/6022_world_scripts.sql new file mode 100644 index 00000000000..7253c0732a8 --- /dev/null +++ b/sql/updates/6022_world_scripts.sql @@ -0,0 +1,6 @@ +UPDATE `creature_template` SET `ScriptName`='boss_kurinnaxx' WHERE `entry`=15348; +UPDATE `creature_template` SET `ScriptName`='boss_rajaxx' WHERE `entry`=15341; +UPDATE `creature_template` SET `ScriptName`='boss_moam' WHERE `entry`=15340; +UPDATE `creature_template` SET `ScriptName`='boss_buru' WHERE `entry`=15370; +UPDATE `creature_template` SET `ScriptName`='boss_ayamiss' WHERE `entry`=15369; +UPDATE `creature_template` SET `ScriptName`='boss_ossirian' WHERE `entry`=15339; 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(); |