AQ40 Raid Saving
Instance AQ40 .cpp
void instance_temple_of_ahnqiraj::OnCreatureCreate(Creature* pCreature)
{
switch (pCreature->GetEntry())
{
case NPC_SKERAM:
// Don't store the summoned images guid
if (GetData(TYPE_SKERAM) == IN_PROGRESS)
{ break; }
if (m_auiEncounter[TYPE_SKERAM] == DONE)
{
pCreature->Despawn();
break;
}
m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
break;
case NPC_KRI:
case NPC_VEM:
case NPC_YAUJ:
if (m_auiEncounter[TYPE_BUG_TRIO] == DONE)
{ pCreature->Despawn(); }
break;
case NPC_SARTURA:
if (m_auiEncounter[TYPE_SARTURA] == DONE)
{
pCreature->Despawn();
break;
}
m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
break;
case NPC_FANKRISS:
if (m_auiEncounter[TYPE_FANKRISS] == DONE)
{ pCreature->Despawn(); }
break;
case NPC_VISCIDUS:
if (m_auiEncounter[TYPE_VISCIDUS] == DONE)
{ pCreature->Despawn(); }
break;
case NPC_HUHURAN:
if (m_auiEncounter[TYPE_HUHURAN] == DONE)
{ pCreature->Despawn(); }
break;
case NPC_VEKLOR:
case NPC_VEKNILASH:
if (m_auiEncounter[TYPE_TWINS] == DONE)
{
pCreature->Despawn();
break;
}
pCreature->SetStandState(UNIT_STAND_STATE_KNEEL);
m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
break;
case NPC_MASTERS_EYE:
if (m_auiEncounter[TYPE_CTHUN] == DONE)
{
pCreature->Despawn();
break;
}
pCreature->SetObjectScale(1);
case NPC_OURO_SPAWNER:
if (m_auiEncounter[TYPE_OURO] == DONE)
{
pCreature->Despawn();
break;
}
m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
break;
case NPC_EYE_OF_CTHUN:
if (m_auiEncounter[TYPE_CTHUN] == DONE)
{
pCreature->Despawn();
break;
}
break;
case NPC_CTHUN:
if (m_auiEncounter[TYPE_CTHUN] == DONE)
{
pCreature->Despawn();
break;
}
pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);
m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
break;
}
}
Instance AQ40 header
enum
{
MAX_ENCOUNTER = 9,
TYPE_SKERAM = 0,
TYPE_BUG_TRIO = 1,
TYPE_SARTURA = 2,
TYPE_FANKRISS = 3,
TYPE_VISCIDUS = 4,
TYPE_HUHURAN = 5,
TYPE_TWINS = 6,
TYPE_OURO = 7,
TYPE_CTHUN = 8,
NPC_SKERAM = 15263,
NPC_KRI = 15511,
NPC_VEM = 15544,
NPC_YAUJ = 15543,
NPC_SARTURA = 15516,
NPC_FANKRISS = 15510,
NPC_VISCIDUS = 15299,
NPC_HUHURAN = 15509,
NPC_VEKLOR = 15276,
NPC_VEKNILASH = 15275,
NPC_MASTERS_EYE = 15963,
NPC_OURO_SPAWNER = 15957,
NPC_EYE_OF_CTHUN = 15589,
NPC_CTHUN = 15727,
GO_SKERAM_GATE = 180636,
GO_TWINS_ENTER_DOOR = 180634,
GO_TWINS_EXIT_DOOR = 180635,
GO_SANDWORM_BASE = 180795,
EMOTE_EYE_INTRO = -1531012,
SAY_EMPERORS_INTRO_1 = -1531013,
SAY_EMPERORS_INTRO_2 = -1531014,
SAY_EMPERORS_INTRO_3 = -1531015,
SAY_EMPERORS_INTRO_4 = -1531016,
SAY_EMPERORS_INTRO_5 = -1531017,
SAY_EMPERORS_INTRO_6 = -1531018,
// Whispered on players around the map
SAY_CTHUN_WHISPER_1 = -1531033,
SAY_CTHUN_WHISPER_2 = -1531034,
SAY_CTHUN_WHISPER_3 = -1531035,
SAY_CTHUN_WHISPER_4 = -1531036,
SAY_CTHUN_WHISPER_5 = -1531037,
SAY_CTHUN_WHISPER_6 = -1531038,
SAY_CTHUN_WHISPER_7 = -1531039,
SAY_CTHUN_WHISPER_8 = -1531040,
AREATRIGGER_TWIN_EMPERORS = 4047,
AREATRIGGER_SARTURA = 4052,
SPELL_SUMMON_PLAYER = 20477,
// Cast periodically on players around the instance
SPELL_WHISPERINGS_CTHUN_1 = 26195,
SPELL_WHISPERINGS_CTHUN_2 = 26197,
SPELL_WHISPERINGS_CTHUN_3 = 26198,
SPELL_WHISPERINGS_CTHUN_4 = 26258,
SPELL_WHISPERINGS_CTHUN_5 = 26259,
};
class instance_temple_of_ahnqiraj : public ScriptedInstance
{
public:
instance_temple_of_ahnqiraj(Map* pMap);
void Initialize() override;
bool IsEncounterInProgress() const override;
void OnCreatureCreate(Creature* pCreature) override;
void OnObjectCreate(GameObject* pGo) override;
void SetData(uint32 uiType, uint32 uiData) override;
uint32 GetData(uint32 uiType) const override;
void DoHandleTempleAreaTrigger(uint32 uiTriggerId);
const char* Save() const override { return m_strInstData.c_str(); }
void Load(const char* chrIn) override;
void Update(uint32 uiDiff) override;
private:
uint32 m_auiEncounter[MAX_ENCOUNTER];
std::string m_strInstData;
uint8 m_uiBugTrioDeathCount;
uint32 m_uiCthunWhisperTimer;
bool m_bIsEmperorsIntroDone;
DialogueHelper m_dialogueHelper;
};
Recommended Comments
There are no comments to display.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now