Jump to content
  • Instance ZG Raid Saving


    Arkadus
    • Status: In Progress
      Main Category: Dungeons and Raids
      Sub-Category: raid-boss
      Version: 0.20 Milestone: 20 Priority: Normal
      Implemented Version: 0.20

    Instance ZG Raid Saving

    Instance ZG .cpp

    void instance_zulgurub::OnCreatureCreate(Creature* pCreature)
    {
    switch (pCreature->GetEntry())
    {
    case NPC_VENOXIS:
    if (m_auiEncounter[TYPE_VENOXIS] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_JEKLIK:
    if (m_auiEncounter[TYPE_JEKLIK] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_LORKHAN:
    case NPC_ZATH:
    case NPC_THEKAL:
    if (m_auiEncounter[TYPE_THEKAL] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_JINDO:
    if (m_auiEncounter[TYPE_JINDO] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_HAKKAR:
    if (m_auiEncounter[TYPE_HAKKAR] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_BLOODLORD_MANDOKIR:
    if (m_auiEncounter[TYPE_OHGAN] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_MARLI:
    if (m_auiEncounter[TYPE_MARLI] == DONE)
    {
    pCreature->Despawn();
    break;
    }
    m_mNpcEntryGuidStore[pCreature->GetEntry()] = pCreature->GetObjectGuid();
    break;
    case NPC_PANTHER_TRIGGER:
    if (pCreature->GetPositionY() {
    m_lLeftPantherTriggerGUIDList.push_back(pCreature->GetObjectGuid());
    }
    else
    {
    m_lRightPantherTriggerGUIDList.push_back(pCreature->GetObjectGuid());
    }
    case NPC_ARLOKK:
    if (m_auiEncounter[TYPE_ARLOKK] == DONE)
    {
    pCreature->Despawn();
    break;
    }

    }
    }


    Instance ZG .h header file

    enum
    {
    MAX_ENCOUNTER = 10,
    MAX_PRIESTS = 5,

    TYPE_JEKLIK = 0,
    TYPE_VENOXIS = 1,
    TYPE_MARLI = 2,
    TYPE_THEKAL = 3,
    TYPE_ARLOKK = 4,
    TYPE_OHGAN = 5, // Do not change, used by Acid
    TYPE_LORKHAN = 6,
    TYPE_ZATH = 7,
    TYPE_JINDO = 8,
    TYPE_HAKKAR = 9,

    NPC_LORKHAN = 11347,
    NPC_ZATH = 11348,
    NPC_THEKAL = 14509,
    NPC_JINDO = 11380,
    NPC_HAKKAR = 14834,
    NPC_ARLOKK = 14515,
    NPC_PANTHER_TRIGGER = 15091,
    NPC_BLOODLORD_MANDOKIR = 11382,
    NPC_MARLI = 14510,
    NPC_VENOXIS = 14507,
    NPC_JEKLIK = 14517,

    GO_SPIDER_EGG = 179985,
    GO_GONG_OF_BETHEKK = 180526,
    GO_FORCEFIELD = 180497,

    SAY_MINION_DESTROY = -1309022,
    SAY_HAKKAR_PROTECT = -1309023,

    HP_LOSS_PER_PRIEST = 60000,

    AREATRIGGER_ENTER = 3958,
    AREATRIGGER_ALTAR = 3960,
    };

    static const float aMandokirDownstairsPos[3] = { -12196.30f, -1948.37f, 130.31f};

    class instance_zulgurub : public ScriptedInstance
    {
    public:
    instance_zulgurub(Map* pMap);
    ~instance_zulgurub() {}

    void Initialize() override;
    // IsEncounterInProgress() const override { return false; } // not active in Zul'Gurub

    void OnCreatureCreate(Creature* pCreature) override;
    void OnObjectCreate(GameObject* pGo) override;

    void SetData(uint32 uiType, uint32 uiData) override;
    uint32 GetData(uint32 uiType) const override;

    const char* Save() const override { return m_strInstData.c_str(); }
    void Load(const char* chrIn) override;

    void DoYellAtTriggerIfCan(uint32 uiTriggerId);

    Creature* SelectRandomPantherTrigger(bool bIsLeft);

    protected:
    void DoLowerHakkarHitPoints();

    uint32 m_auiEncounter[MAX_ENCOUNTER];
    std::string m_strInstData;

    GuidList m_lRightPantherTriggerGUIDList;
    GuidList m_lLeftPantherTriggerGUIDList;
    GuidList m_lSpiderEggGUIDList;

    bool m_bHasIntroYelled;
    bool m_bHasAltarYelled;
    };

    #endif


    User Feedback

    Recommended Comments



    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