void instance_molten_core::SetData(uint32 uiType, uint32 uiData)
{
    switch (uiType)
    {
        case TYPE_LUCIFRON:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_MAGMADAR:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_GEHENNAS:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_GARR:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_SHAZZRAH:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_GEDDON:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_GOLEMAGG:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_SULFURON:
            m_auiEncounter[uiType] = uiData;
            break;
        case TYPE_MAJORDOMO:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
                DoRespawnGameObject(GO_CACHE_OF_THE_FIRE_LORD, HOUR);
            break;
        case TYPE_RAGNAROS:
            m_auiEncounter[uiType] = uiData;
            break;
    }

    // Check if Majordomo can be summoned
    if (uiData == SPECIAL)
        DoSpawnMajordomoIfCan(false);

    if (uiData == DONE || uiData == SPECIAL)
    {
        OUT_SAVE_INST_DATA;

        std::ostringstream saveStream;
        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " "
                   << m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " "
                   << m_auiEncounter[6] << " " << m_auiEncounter[7] << " " << m_auiEncounter[8] << " "
                   << m_auiEncounter[9];

        m_strInstData = saveStream.str();

        SaveToDB();
        OUT_SAVE_INST_DATA_COMPLETE;
    }
}
Example #2
0
void instance_molten_core::OnPlayerEnter(Player* pPlayer)
{
    // Summon Majordomo if can
    DoSpawnMajordomoIfCan(true);
}
Example #3
0
void instance_molten_core::SetData(uint32 uiType, uint32 uiData)
{
    switch(uiType)
    {
        case TYPE_LUCIFRON:
            m_auiEncounter[uiType] = uiData;
            if (uiData == FAIL)
                DoHandleAdds(m_luiProtectorGUIDs);
            break;
        case TYPE_MAGMADAR:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
                DoUseDoorOrButton(m_uiRuneKressGUID);
            break;
        case TYPE_GEHENNAS:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
            {
                DoUseDoorOrButton(m_uiRuneMohnGUID);
                m_luiFlamewakerGUIDs.clear();
            }
            if (uiData == FAIL)
                DoHandleAdds(m_luiFlamewakerGUIDs);
            break;
        case TYPE_GARR:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
            {
                DoUseDoorOrButton(m_uiRuneBlazGUID);
                m_luiFireswornGUIDs.clear();
            }
            if (uiData == FAIL)
                DoHandleAdds(m_luiFireswornGUIDs);
            break;
        case TYPE_SHAZZRAH:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
                DoUseDoorOrButton(m_uiRuneMazjGUID);
            break;
        case TYPE_GEDDON:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
                DoUseDoorOrButton(m_uiRuneZethGUID);
            break;
        case TYPE_GOLEMAGG:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
            {
                DoUseDoorOrButton(m_uiRuneTheriGUID);
                DoHandleAdds(m_luiRagerGUIDs, false);
                m_luiRagerGUIDs.clear();
            }
            if (uiData == FAIL)
                DoHandleAdds(m_luiRagerGUIDs);
            break;
        case TYPE_SULFURON:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
            {
                DoUseDoorOrButton(m_uiRuneKoroGUID);
                m_luiPriestGUIDs.clear();
            }
            if (uiData == FAIL)
                DoHandleAdds(m_luiPriestGUIDs);
            break;
        case TYPE_MAJORDOMO:
            m_auiEncounter[uiType] = uiData;
            if (uiData == DONE)
                DoRespawnGameObject(m_uiFirelordCacheGUID);
            break;
        case TYPE_RAGNAROS:
            m_auiEncounter[uiType] = uiData;
            break;
    }

    // Check if Majordomo can be summoned
    if (uiData == DONE)
        DoSpawnMajordomoIfCan(false);

    if (uiData == DONE)
    {
        OUT_SAVE_INST_DATA;

        std::ostringstream saveStream;
        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " "
            << m_auiEncounter[3] << " " << m_auiEncounter[4] << " " << m_auiEncounter[5] << " "
            << m_auiEncounter[6] << " " << m_auiEncounter[7] << " " << m_auiEncounter[8] << " "
            << m_auiEncounter[9];

        m_strInstData = saveStream.str();

        SaveToDB();
        OUT_SAVE_INST_DATA_COMPLETE;
    }
}