Jump to content
  • AQ40 Raid Saving


    Arkadus
    • Status: devacknowledged
      Main Category: Script (Eluna / SD3)
      Sub-Category: sd2
      Version: 0.20 Milestone: 20 Priority: Normal
      Implemented Version: 0.20

    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;
    };


    User Feedback

    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 account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use