您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ DoToggleGameObjectFlags函数代码示例

51自学网 2021-06-01 20:29:14
  C++
这篇教程C++ DoToggleGameObjectFlags函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中DoToggleGameObjectFlags函数的典型用法代码示例。如果您正苦于以下问题:C++ DoToggleGameObjectFlags函数的具体用法?C++ DoToggleGameObjectFlags怎么用?C++ DoToggleGameObjectFlags使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了DoToggleGameObjectFlags函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: switch

void instance_serpentshrine_cavern::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_HYDROSS_EVENT:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_LEOTHERAS_EVENT:            m_auiEncounter[1] = uiData;            if (uiData == FAIL)            {                for (GuidList::const_iterator itr = m_lSpellBindersGUIDList.begin(); itr != m_lSpellBindersGUIDList.end(); ++itr)                {                    if (Creature* pSpellBinder = instance->GetCreature(*itr))                        pSpellBinder->Respawn();                }                m_uiSpellBinderCount = 0;            }            break;        case TYPE_THELURKER_EVENT:        case TYPE_KARATHRESS_EVENT:        case TYPE_MOROGRIM_EVENT:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_LADYVASHJ_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == FAIL)            {                // interrupt the shield                for (GuidList::const_iterator itr = m_lShieldGeneratorGUIDList.begin(); itr != m_lShieldGeneratorGUIDList.end(); ++itr)                {                    if (Creature* pGenerator = instance->GetCreature(*itr))                        pGenerator->InterruptNonMeleeSpells(false);                }                // reset generators                DoToggleGameObjectFlags(GO_SHIELD_GENERATOR_1, GO_FLAG_NO_INTERACT, false);                DoToggleGameObjectFlags(GO_SHIELD_GENERATOR_2, GO_FLAG_NO_INTERACT, false);                DoToggleGameObjectFlags(GO_SHIELD_GENERATOR_3, GO_FLAG_NO_INTERACT, false);                DoToggleGameObjectFlags(GO_SHIELD_GENERATOR_4, GO_FLAG_NO_INTERACT, false);            }            break;    }    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_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:Splash,项目名称:scriptdev2,代码行数:59,


示例2: switch

void instance_steam_vault::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_HYDROMANCER_THESPIA:            if (uiData == DONE)                DoToggleGameObjectFlags(GO_ACCESS_PANEL_HYDRO, GO_FLAG_NO_INTERACT, false);            if (uiData == SPECIAL)            {                if (GetData(TYPE_MEKGINEER_STEAMRIGGER) == SPECIAL)                    DoUseDoorOrButton(GO_MAIN_CHAMBERS_DOOR);            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_MEKGINEER_STEAMRIGGER:            if (uiData == DONE)                DoToggleGameObjectFlags(GO_ACCESS_PANEL_MEK, GO_FLAG_NO_INTERACT, false);            if (uiData == SPECIAL)            {                if (GetData(TYPE_HYDROMANCER_THESPIA) == SPECIAL)                    DoUseDoorOrButton(GO_MAIN_CHAMBERS_DOOR);            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_WARLORD_KALITHRESH:            DoUseDoorOrButton(GO_MAIN_CHAMBERS_DOOR);            if (uiData == FAIL)            {                // Reset Distiller flags - respawn is handled by DB                for (GuidList::const_iterator itr = m_lNagaDistillerGuidList.begin(); itr != m_lNagaDistillerGuidList.end(); ++itr)                {                    if (Creature* pDistiller = instance->GetCreature(*itr))                    {                        if (!pDistiller->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))                            pDistiller->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                    }                }            }            m_auiEncounter[uiType] = uiData;            break;    }    if (uiData == DONE || uiData == SPECIAL)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:jacobmain1,项目名称:GaryMoveOut_2.4.3,代码行数:55,


示例3: DoToggleGameObjectFlags

void instance_dire_maul::OnPlayerEnter(Player* pPlayer){    // figure where to enter to set library doors accordingly    // Enter DM North first    if (pPlayer->IsWithinDist2d(260.0f, -20.0f, 20.0f) && m_auiEncounter[TYPE_WARPWOOD] != DONE)        m_bDoNorthBeforeWest = true;    else        m_bDoNorthBeforeWest = false;    DoToggleGameObjectFlags(GO_WEST_LIBRARY_DOOR, GO_FLAG_NO_INTERACT, m_bDoNorthBeforeWest);    DoToggleGameObjectFlags(GO_WEST_LIBRARY_DOOR, GO_FLAG_LOCKED, !m_bDoNorthBeforeWest);}
开发者ID:michalpolko,项目名称:cmangos,代码行数:12,


示例4: debug_log

void instance_ramparts::SetData(uint32 uiType, uint32 uiData){    debug_log("SD2: Instance Ramparts: SetData received for type %u with data %u",uiType,uiData);    switch (uiType)    {        case TYPE_VAZRUDEN:            if (uiData == DONE && m_auiEncounter[1] == DONE)                DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_FEL_IRON_CHEST : GO_FEL_IRON_CHEST_H, HOUR);            if (uiData == FAIL && m_auiEncounter[0] != FAIL)                DoFailVazruden();            m_auiEncounter[0] = uiData;            break;        case TYPE_NAZAN:            if (uiData == SPECIAL)            {                ++m_uiSentryCounter;                if (m_uiSentryCounter == 2)                    m_auiEncounter[1] = uiData;                return;            }            if (uiData == DONE && m_auiEncounter[0] == DONE)            {                DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_FEL_IRON_CHEST : GO_FEL_IRON_CHEST_H, HOUR);                DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_FEL_IRON_CHEST : GO_FEL_IRON_CHEST_H, GO_FLAG_NO_INTERACT, false);            }            if (uiData == FAIL && m_auiEncounter[1] != FAIL)                DoFailVazruden();            m_auiEncounter[1] = uiData;            break;    }}
开发者ID:AngelX,项目名称:scriptdev2,代码行数:35,


示例5: DoToggleGameObjectFlags

void instance_sunken_temple::DoUpdateFlamesFlags(bool bRestore){    for (GuidList::const_iterator itr = m_luiFlameGUIDs.begin(); itr != m_luiFlameGUIDs.end(); ++itr)    {        DoToggleGameObjectFlags(*itr, GO_FLAG_NO_INTERACT, bRestore);    }}
开发者ID:haidusg,项目名称:scripts,代码行数:7,


示例6: switch

void instance_oculus::SetData(uint32 uiType, uint32 uiData){    switch(uiType)    {    case TYPE_DRAKOS:        m_auiEncounter[TYPE_DRAKOS] = uiData;        break;    case TYPE_VAROS:        m_auiEncounter[TYPE_VAROS] = uiData;        break;    case TYPE_UROM:        m_auiEncounter[TYPE_UROM] = uiData;        break;    case TYPE_EREGOS:        m_auiEncounter[TYPE_EREGOS] = uiData;        if (uiData == DONE)            DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_CACHE_EREGOS : GO_CACHE_EREGOS_H, GO_FLAG_NO_INTERACT, false);        break;    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[TYPE_DRAKOS] << " " << m_auiEncounter[TYPE_VAROS] << " " << m_auiEncounter[TYPE_UROM] << " " << m_auiEncounter[TYPE_EREGOS];        strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:Zuben45,项目名称:scriptdev2,代码行数:33,


示例7: DoToggleGameObjectFlags

/// Function that uses a door or button that is stored in m_mGoEntryGuidStorevoid ScriptedInstance::DoToggleGameObjectFlags(uint32 uiEntry, uint32 uiGOflags, bool bApply){    EntryGuidMap::iterator find = m_mGoEntryGuidStore.find(uiEntry);    if (find != m_mGoEntryGuidStore.end())        DoToggleGameObjectFlags(find->second, uiGOflags, bApply);    else        // Output log, possible reason is not added GO to storage, or not yet loaded        debug_log("SD2: Script call ToogleTameObjectFlags (by Entry), but no gameobject of entry %u was created yet, or it was not stored by script for map %u.", uiEntry, instance->GetId());}
开发者ID:Donniedarkoz,项目名称:mangos-scriptdev2,代码行数:10,


示例8: DoToggleGameObjectFlags

void instance_blackwing_lair::OnCreatureDeath(Creature* pCreature){    if (pCreature->GetEntry() == NPC_GRETHOK_CONTROLLER)    {        DoToggleGameObjectFlags(GO_ORB_OF_DOMINATION, GO_FLAG_NO_INTERACT, false);        if (Creature* pOrbTrigger = GetSingleCreatureFromStorage(NPC_BLACKWING_ORB_TRIGGER))            pOrbTrigger->InterruptNonMeleeSpells(false);    }}
开发者ID:Agustin1010,项目名称:Scriptdev2-Agustin,代码行数:10,


示例9: switch

void instance_blackwing_lair::OnCreatureDeath(Creature* pCreature){    switch (pCreature->GetEntry())    {        case NPC_GRETHOK_CONTROLLER:            // Allow orb to be used            DoToggleGameObjectFlags(GO_ORB_OF_DOMINATION, GO_FLAG_NO_INTERACT, false);            if (Creature* pOrbTrigger = GetSingleCreatureFromStorage(NPC_BLACKWING_ORB_TRIGGER))                pOrbTrigger->InterruptNonMeleeSpells(false);            break;        case NPC_RAZORGORE:            // Only set the event as done if Razorgore dies in last phase            if (GetData(TYPE_RAZORGORE) == SPECIAL)            {                SetData(TYPE_RAZORGORE, DONE);                break;            }            // If the event is not already failed in Razorgore script, then force group wipe by making the boss trigger an AoE            // this is basically a duplicate of what is in Razorgore script because when the boss is Mind Controlled the AI is overriden            // So we have to handle it in the instance script instead to prevent the event to be stucked or exploited            if (GetData(TYPE_RAZORGORE) != FAIL)            {                if (Creature* pRazorgore = GetSingleCreatureFromStorage(NPC_RAZORGORE))                {                    pRazorgore->CastSpell(pRazorgore, SPELL_FIREBALL, TRIGGERED_OLD_TRIGGERED);                    SetData(TYPE_RAZORGORE, FAIL);                    DoScriptText(SAY_RAZORGORE_DEATH, pRazorgore);                    pRazorgore->ForcedDespawn();                }                if (Creature* pOrbTrigger = GetSingleCreatureFromStorage(NPC_BLACKWING_ORB_TRIGGER))                    pOrbTrigger->CastSpell(pOrbTrigger, SPELL_EXPLODE_ORB, TRIGGERED_IGNORE_UNATTACKABLE_FLAG);            }            break;        case NPC_BLACKWING_LEGIONNAIRE:        case NPC_BLACKWING_MAGE:            m_uiBlackwingDefCount--;            break;        case NPC_DRAGONSPAWN:            m_uiDragonspawnCount--;            break;    }}
开发者ID:krullgor,项目名称:mangos-wotlk,代码行数:44,


示例10: switch

void instance_sethekk_halls::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_SYTH:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_ANZU:            m_auiEncounter[uiType] = uiData;            // Respawn the Raven's Claw if event fails            if (uiData == FAIL)            {                if (GameObject* pClaw = GetSingleGameObjectFromStorage(GO_RAVENS_CLAW))                    pClaw->Respawn();            }            break;        case TYPE_IKISS:            if (uiData == DONE)            {                DoUseDoorOrButton(GO_IKISS_DOOR, DAY);                DoToggleGameObjectFlags(GO_IKISS_CHEST, GO_FLAG_NO_INTERACT | GO_FLAG_INTERACT_COND, false);            }            m_auiEncounter[uiType] = uiData;            break;        default:            return;    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:wowx,项目名称:mangos-tbc,代码行数:41,


示例11: SetData

void instance_blackwing_lair::SetData64(uint32 uiData, uint64 uiGuid){    if (uiData == DATA_DRAGON_EGG)    {        if (GameObject* pEgg = instance->GetGameObject(ObjectGuid(uiGuid)))            m_lUsedEggsGuids.push_back(pEgg->GetObjectGuid());        // If all eggs are destroyed, then allow Razorgore to be attacked        if (m_lUsedEggsGuids.size() == m_lDragonEggsGuids.size())        {            SetData(TYPE_RAZORGORE, SPECIAL);            DoToggleGameObjectFlags(GO_ORB_OF_DOMINATION, GO_FLAG_NO_INTERACT, true);            // Emote for the start of the second phase            if (Creature* pTrigger = GetSingleCreatureFromStorage(NPC_NEFARIANS_TROOPS))            {                DoScriptText(EMOTE_ORB_SHUT_OFF, pTrigger);                DoScriptText(EMOTE_TROOPS_FLEE, pTrigger);            }            // Break mind control and set max health            if (Creature* pRazorgore = GetSingleCreatureFromStorage(NPC_RAZORGORE))            {                pRazorgore->RemoveAllAuras();                pRazorgore->CastSpell(pRazorgore, SPELL_WARMING_FLAMES, TRIGGERED_OLD_TRIGGERED);            }            // All defenders evade and despawn            for (GuidList::const_iterator itr = m_lDefendersGuids.begin(); itr != m_lDefendersGuids.end(); ++itr)            {                if (Creature* pDefender = instance->GetCreature(*itr))                {                    pDefender->AI()->EnterEvadeMode();                    pDefender->ForcedDespawn(10000);                }            }            m_uiBlackwingDefCount = 0;            m_uiDragonspawnCount = 0;        }    }}
开发者ID:krullgor,项目名称:mangos-wotlk,代码行数:41,


示例12: switch

void instance_oculus::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_DRAKOS:            m_auiEncounter[TYPE_DRAKOS] = uiData;            if (uiData == DONE)            {                // Open all cages                for (GuidList::const_iterator itr = m_lCageDoorGUIDs.begin(); itr != m_lCageDoorGUIDs.end(); ++itr)                    DoUseDoorOrButton(*itr);                // Notes: The dialogue is handled by DB script                // Also the Centrifuge Constructs and the related npcs should be summoned - requires additional research                // Activate the world state - the Centrifuge contructs should be loaded by now                DoUpdateWorldState(WORLD_STATE_CONSTRUCTS, 1);                DoUpdateWorldState(WORLD_STATE_CONSTRUCTS_COUNT, m_sConstructsAliveGUIDSet.size());                DoStartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEV_START_EREGOS_ID);            }            break;        case TYPE_VAROS:            m_auiEncounter[TYPE_VAROS] = uiData;            if (uiData == DONE)            {                // Note: Image of Belgaristrasz dialogue is handled by DB script                DoSpawnNextBossIfCan();                DoUpdateWorldState(WORLD_STATE_CONSTRUCTS, 0);            }            break;        case TYPE_UROM:            m_auiEncounter[TYPE_UROM] = uiData;            // Note: Image of Belgaristrasz dialogue is handled by DB script            if (uiData == DONE)                DoSpawnNextBossIfCan();            break;        case TYPE_EREGOS:            m_auiEncounter[TYPE_EREGOS] = uiData;            // Note: Image of Belgaristrasz teleports to the Cache location and does more dialogue - requires additional research            if (uiData == DONE)            {                // The data about the cache isn't consistent, so it's better to handle both cases                DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_CACHE_EREGOS : GO_CACHE_EREGOS_H, GO_FLAG_NO_INTERACT, false);                DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_CACHE_EREGOS : GO_CACHE_EREGOS_H, 30 * MINUTE);            }            break;    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[TYPE_DRAKOS] << " " << m_auiEncounter[TYPE_VAROS] << " " << m_auiEncounter[TYPE_UROM] << " " << m_auiEncounter[TYPE_EREGOS];        strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:BThallid,项目名称:mangos,代码行数:62,


示例13: switch

void instance_karazhan::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_ATTUMEN:            m_auiEncounter[uiType] = uiData;            if (uiData == FAIL)            {                // Respawn Midnight on Fail                if (Creature* pMidnight = GetSingleCreatureFromStorage(NPC_MIDNIGHT))                {                    if (!pMidnight->isAlive())                        pMidnight->Respawn();                }            }            break;        case TYPE_MOROES:        case TYPE_MAIDEN:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_OPERA:            // Don't store the same data twice            if (uiData == m_auiEncounter[uiType])                break;            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                m_uiOzDeathCount = 0;            if (uiData == DONE)            {                DoUseDoorOrButton(GO_STAGE_DOOR_LEFT);                DoUseDoorOrButton(GO_STAGE_DOOR_RIGHT);                DoToggleGameObjectFlags(GO_SIDE_ENTRANCE_DOOR, GO_FLAG_LOCKED, false);            }            // use curtain only for event start or fail            else                DoUseDoorOrButton(GO_STAGE_CURTAIN);            break;        case TYPE_CURATOR:        case TYPE_TERESTIAN:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_ARAN:            if (uiData == FAIL || uiData == DONE)                DoToggleGameObjectFlags(GO_PRIVATE_LIBRARY_DOOR, GO_FLAG_LOCKED, false);            if (uiData == IN_PROGRESS)                DoToggleGameObjectFlags(GO_PRIVATE_LIBRARY_DOOR, GO_FLAG_LOCKED, true);            m_auiEncounter[uiType] = uiData;            break;        case TYPE_NETHERSPITE:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_MASSIVE_DOOR);            break;        case TYPE_CHESS:            if (uiData == DONE)            {                // doors and loot are not handled for friendly games                if (GetData(TYPE_CHESS) != SPECIAL)                {                    DoUseDoorOrButton(GO_GAMESMANS_HALL_EXIT_DOOR);                    DoRespawnGameObject(GO_DUST_COVERED_CHEST, DAY);                    DoToggleGameObjectFlags(GO_DUST_COVERED_CHEST, GO_FLAG_NO_INTERACT, false);                }                // cast game end spells                if (Creature* pMedivh = GetSingleCreatureFromStorage(NPC_ECHO_MEDIVH))                {                    pMedivh->CastSpell(pMedivh, SPELL_FORCE_KILL_BUNNY, TRIGGERED_OLD_TRIGGERED);                    pMedivh->CastSpell(pMedivh, SPELL_GAME_OVER, TRIGGERED_OLD_TRIGGERED);                    pMedivh->CastSpell(pMedivh, SPELL_CLEAR_BOARD, TRIGGERED_OLD_TRIGGERED);                }                if (Creature* pController = GetSingleCreatureFromStorage(NPC_CHESS_VICTORY_CONTROLLER))                    pController->CastSpell(pController, SPELL_VICTORY_VISUAL, TRIGGERED_OLD_TRIGGERED);                // remove silence debuff                Map::PlayerList const& players = instance->GetPlayers();                for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)                {                    if (Player* pPlayer = itr->getSource())                        pPlayer->RemoveAurasDueToSpell(SPELL_GAME_IN_SESSION);                }                m_bFriendlyGame = false;                m_uiChessResetTimer = 35000;            }            else if (uiData == FAIL)            {                // clean the board for reset                if (Creature* pMedivh = GetSingleCreatureFromStorage(NPC_ECHO_MEDIVH))                {                    pMedivh->CastSpell(pMedivh, SPELL_GAME_OVER, TRIGGERED_OLD_TRIGGERED);                    pMedivh->CastSpell(pMedivh, SPELL_CLEAR_BOARD, TRIGGERED_OLD_TRIGGERED);                }                // remove silence debuff                Map::PlayerList const& players = instance->GetPlayers();                for (Map::PlayerList::const_iterator itr = players.begin(); itr != players.end(); ++itr)                {                    if (Player* pPlayer = itr->getSource())                        pPlayer->RemoveAurasDueToSpell(SPELL_GAME_IN_SESSION);                }//.........这里部分代码省略.........
开发者ID:killerwife,项目名称:mangos-tbc,代码行数:101,


示例14: debug_log

void instance_ahnkahet::SetData(uint32 uiType, uint32 uiData){    debug_log("SD2: Instance Ahn'Kahet: SetData received for type %u with data %u", uiType, uiData);    switch (uiType)    {        case TYPE_NADOX:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                m_bRespectElders = true;            else if (uiData == SPECIAL)                m_bRespectElders = false;            else if (uiData == DONE)            {                DoToggleGameObjectFlags(GO_ANCIENT_DEVICE_L, GO_FLAG_NO_INTERACT, false);                DoToggleGameObjectFlags(GO_ANCIENT_DEVICE_R, GO_FLAG_NO_INTERACT, false);            }            break;        case TYPE_TALDARAM:            if (uiData == SPECIAL)            {                ++m_uiDevicesActivated;                if (m_uiDevicesActivated == 2)                {                    m_auiEncounter[uiType] = uiData;                    DoUseDoorOrButton(GO_VORTEX);                    // Lower Taldaram                    if (Creature* pTaldaram = GetSingleCreatureFromStorage(NPC_TALDARAM))                        pTaldaram->GetMotionMaster()->MovePoint(1, aTaldaramLandingLoc[0], aTaldaramLandingLoc[1], aTaldaramLandingLoc[2]);                    // Interrupt the channeling                    for (GuidList::const_iterator itr = m_lJedogaControllersGuidList.begin(); itr != m_lJedogaControllersGuidList.end(); ++itr)                    {                        if (Creature* pTemp = instance->GetCreature(*itr))                            pTemp->InterruptNonMeleeSpells(false);                    }                }            }            else if (uiData == DONE)            {                m_auiEncounter[uiType] = uiData;                DoUseDoorOrButton(GO_DOOR_TALDARAM);            }            break;        case TYPE_JEDOGA:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                m_bVolunteerWork = true;            else if (uiData == SPECIAL)                m_bVolunteerWork = false;            else if (uiData == FAIL)                m_uiInitiatesKilled = 0;            break;        case TYPE_AMANITAR:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_VOLAZJ:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)            {                m_uiTwistedVisageCount = 0;                m_lInsanityPlayersGuidList.clear();            }            break;        default:            script_error_log("Instance Ahn'Kahet: ERROR SetData = %u for type %u does not exist/not implemented.", uiType, uiData);            break;    }    // For some encounters Special data needs to be saved    if (uiData == DONE || (uiData == SPECIAL && uiType == TYPE_TALDARAM))    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3]                   << " " << m_auiEncounter[4];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:mynew4,项目名称:RustEmu-Core,代码行数:87,


示例15: switch

void instance_magisters_terrace::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_SELIN:            if (uiData == DONE)                DoUseDoorOrButton(GO_SELIN_DOOR);            if (uiData == FAIL)            {                // Reset crystals - respawn and kill is handled by creature linking                for (GuidList::const_iterator itr = m_lFelCrystalGuid.begin(); itr != m_lFelCrystalGuid.end(); ++itr)                {                    if (Creature* pTemp = instance->GetCreature(*itr))                    {                        if (!pTemp->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE))                            pTemp->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                        if (pTemp->isAlive())                            pTemp->AI()->EnterEvadeMode();                    }                }            }            if (uiData == IN_PROGRESS)            {                // Stop channeling when the fight starts                for (GuidList::const_iterator itr = m_lFelCrystalGuid.begin(); itr != m_lFelCrystalGuid.end(); ++itr)                {                    if (Creature* pTemp = instance->GetCreature(*itr))                        pTemp->InterruptNonMeleeSpells(false);                }            }            DoUseDoorOrButton(GO_SELIN_ENCOUNTER_DOOR);            m_auiEncounter[uiType] = uiData;            break;        case TYPE_VEXALLUS:            if (uiData == DONE)                DoUseDoorOrButton(GO_VEXALLUS_DOOR);            m_auiEncounter[uiType] = uiData;            break;        case TYPE_DELRISSA:            if (uiData == DONE)                DoUseDoorOrButton(GO_DELRISSA_DOOR);            if (uiData == IN_PROGRESS)                m_uiDelrissaDeathCount = 0;            m_auiEncounter[uiType] = uiData;            break;        case TYPE_KAELTHAS:            DoUseDoorOrButton(GO_KAEL_DOOR);            if (uiData == DONE)                DoToggleGameObjectFlags(GO_ESCAPE_QUEL_DANAS, GO_FLAG_NO_INTERACT, false);            m_auiEncounter[uiType] = uiData;            break;    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:SakhWoW,项目名称:blizzlikecore,代码行数:67,


示例16: switch

//.........这里部分代码省略.........            break;        case TYPE_AURIAYA:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)            {                SetSpecialAchievementCriteria(TYPE_ACHIEV_CAT_LADY, true);                SetSpecialAchievementCriteria(TYPE_ACHIEV_NINE_LIVES, false);            }            break;            // Keepers of Ulduar        case TYPE_MIMIRON:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_MIMIRON_DOOR_1);            DoUseDoorOrButton(GO_MIMIRON_DOOR_2);            DoUseDoorOrButton(GO_MIMIRON_DOOR_3);            if (uiData == DONE)            {                if (GetData(TYPE_MIMIRON_HARD) != DONE)                    DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_CACHE_OF_INOV_10 : GO_CACHE_OF_INOV_25, 30 * MINUTE);                SpawnFriendlyKeeper(NPC_KEEPER_MIMIRON);                DoOpenMadnessDoorIfCan();            }            break;        case TYPE_HODIR:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_HODIR_ENTER);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_HODIR_ICE_WALL);                DoUseDoorOrButton(GO_HODIR_EXIT);                DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_CACHE_OF_WINTER_10 : GO_CACHE_OF_WINTER_25, GO_FLAG_NO_INTERACT, false);                if (GetData(TYPE_HODIR_HARD) == DONE)                    DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_CACHE_OF_RARE_WINTER_10 : GO_CACHE_OF_RARE_WINTER_25, GO_FLAG_NO_INTERACT, false);                SpawnFriendlyKeeper(NPC_KEEPER_HODIR);                DoOpenMadnessDoorIfCan();            }            else if (uiData == FAIL)            {                if (GameObject* pChest = GetSingleGameObjectFromStorage(instance->IsRegularDifficulty() ? GO_CACHE_OF_RARE_WINTER_10 : GO_CACHE_OF_RARE_WINTER_25))                    pChest->Respawn();                if (Player* pPlayer = GetPlayerInMap())                    DoSpawnHodirNpcs(pPlayer);                SetData(TYPE_HODIR_HARD, FAIL);            }            else if (uiData == IN_PROGRESS)            {                SetSpecialAchievementCriteria(TYPE_ACHIEV_CHEESE_FREEZE, true);                SetSpecialAchievementCriteria(TYPE_ACHIEV_COOL_FRIENDS, true);            }            break;        case TYPE_THORIM:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_LIGHTNING_FIELD);            if (uiData == IN_PROGRESS)                DoToggleGameObjectFlags(GO_DOOR_LEVER, GO_FLAG_NO_INTERACT, false);            else if (uiData == DONE)            {                if (GetData(TYPE_THORIM_HARD) == DONE)                {                    DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_CACHE_OF_STORMS_10_H : GO_CACHE_OF_STORMS_25_H, 30 * MINUTE);
开发者ID:wowfactory,项目名称:scriptdev2,代码行数:67,


示例17: switch

void instance_sunwell_plateau::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_KALECGOS:            m_auiEncounter[uiType] = uiData;            // combat doors            DoUseDoorOrButton(GO_FORCEFIELD);            DoUseDoorOrButton(GO_BOSS_COLLISION_1);            DoUseDoorOrButton(GO_BOSS_COLLISION_2);            if (uiData == FAIL)            {                m_uiKalecRespawnTimer = 20000;                if (Creature* pKalecDragon = GetSingleCreatureFromStorage(NPC_KALECGOS_DRAGON))                    pKalecDragon->ForcedDespawn();                if (Creature* pKalecHuman = GetSingleCreatureFromStorage(NPC_KALECGOS_HUMAN))                    pKalecHuman->ForcedDespawn();                if (Creature* pSathrovarr = GetSingleCreatureFromStorage(NPC_SATHROVARR))                    pSathrovarr->AI()->EnterEvadeMode();            }            break;        case TYPE_BRUTALLUS:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_FELMYST:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)                StartNextDialogueText(NPC_KALECGOS_MADRIGOSA);            else if (uiData == IN_PROGRESS)                DoSortFlightTriggers();            break;        case TYPE_EREDAR_TWINS:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                if (Player* pPlayer = GetPlayerInMap())                    pPlayer->SummonCreature(NPC_MURU, afMuruSpawnLoc[0], afMuruSpawnLoc[1], afMuruSpawnLoc[2], afMuruSpawnLoc[3], TEMPSUMMON_DEAD_DESPAWN, 0, true);            }            break;        case TYPE_MURU:            m_auiEncounter[uiType] = uiData;            // combat door            DoUseDoorOrButton(GO_MURU_ENTER_GATE);            if (uiData == DONE)                DoUseDoorOrButton(GO_MURU_EXIT_GATE);            else if (uiData == IN_PROGRESS)                m_uiMuruBerserkTimer = 10 * MINUTE * IN_MILLISECONDS;            if (uiData == FAIL || uiData == DONE)            {                // clear all the trash mobs                for (GuidList::const_iterator itr = m_lMuruTrashGuidList.begin(); itr != m_lMuruTrashGuidList.end(); ++itr)                {                    if (Creature* pTrash = instance->GetCreature(*itr))                        pTrash->ForcedDespawn();                }                m_lMuruTrashGuidList.clear();            }            break;        case TYPE_KILJAEDEN:            m_auiEncounter[uiType] = uiData;            if (uiData == FAIL)            {                m_uiDeceiversKilled = 0;                // Reset Orbs                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_1, GO_FLAG_NO_INTERACT, true);                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_2, GO_FLAG_NO_INTERACT, true);                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_3, GO_FLAG_NO_INTERACT, true);                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_4, GO_FLAG_NO_INTERACT, true);                // Respawn deceivers                for (GuidList::const_iterator itr = m_lDeceiversGuidList.begin(); itr != m_lDeceiversGuidList.end(); ++itr)                {                    if (Creature* pDeceiver = instance->GetCreature(*itr))                    {                        if (!pDeceiver->isAlive())                            pDeceiver->Respawn();                    }                }            }            break;    }    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_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:AlexHjelm,项目名称:Core,代码行数:99,


示例18: switch

void instance_sunwell_plateau::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_KALECGOS:            m_auiEncounter[uiType] = uiData;            // combat doors            DoUseDoorOrButton(GO_FORCEFIELD);            DoUseDoorOrButton(GO_BOSS_COLLISION_1);            DoUseDoorOrButton(GO_BOSS_COLLISION_2);            if (uiData == FAIL)            {                m_uiKalecRespawnTimer = 20000;                if (Creature* pKalecDragon = GetSingleCreatureFromStorage(NPC_KALECGOS_DRAGON))                    pKalecDragon->ForcedDespawn();                if (Creature* pKalecHuman = GetSingleCreatureFromStorage(NPC_KALECGOS_HUMAN))                    pKalecHuman->ForcedDespawn();                if (Creature* pSathrovarr = GetSingleCreatureFromStorage(NPC_SATHROVARR))                    pSathrovarr->AI()->EnterEvadeMode();            }            break;        case TYPE_BRUTALLUS:            m_auiEncounter[uiType] = uiData;            // Temporary - until spells 46609 and 46637 are properly fixed            if (uiData == SPECIAL)                DoUseDoorOrButton(GO_ICE_BARRIER, MINUTE);            break;        case TYPE_FELMYST:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                StartNextDialogueText(NPC_KALECGOS);                // Temporary - until spell 46650 is properly fixed                DoUseDoorOrButton(GO_FIRE_BARRIER);            }            break;        case TYPE_EREDAR_TWINS:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                DoUseDoorOrButton(GO_SECOND_GATE);                DoUseDoorOrButton(GO_MURU_ENTER_GATE);            }            break;        case TYPE_MURU:            m_auiEncounter[uiType] = uiData;            // combat door            DoUseDoorOrButton(GO_MURU_ENTER_GATE);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_MURU_EXIT_GATE);                DoUseDoorOrButton(GO_THIRD_GATE);            }            else if (uiData == IN_PROGRESS)                m_uiMuruBerserkTimer = 10 * MINUTE * IN_MILLISECONDS;            break;        case TYPE_KILJAEDEN:            m_auiEncounter[uiType] = uiData;            if (uiData == FAIL)            {                m_uiDeceiversKilled = 0;                // Reset Orbs                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_1, GO_FLAG_NO_INTERACT, true);                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_2, GO_FLAG_NO_INTERACT, true);                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_3, GO_FLAG_NO_INTERACT, true);                DoToggleGameObjectFlags(GO_ORB_BLUE_FLIGHT_4, GO_FLAG_NO_INTERACT, true);                // Respawn deceivers                for (GuidList::const_iterator itr = m_lDeceiversGuidList.begin(); itr != m_lDeceiversGuidList.end(); ++itr)                {                    if (Creature* pDeceiver = instance->GetCreature(*itr))                    {                        if (!pDeceiver->isAlive())                            pDeceiver->Respawn();                    }                }            }            break;    }    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_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:KillaVulkan,项目名称:scripts-1,代码行数:96,


示例19: switch

void instance_blackrock_depths::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_RING_OF_LAW:            // If finished the arena event after theldren fight            if (uiData == DONE && m_auiEncounter[0] == SPECIAL)                DoRespawnGameObject(GO_ARENA_SPOILS, HOUR);            else if (uiData == DONE)            {                for (GuidSet::const_iterator itr = m_sArenaCrowdNpcGuids.begin(); itr != m_sArenaCrowdNpcGuids.end(); ++itr)                {                    if (Creature* pSpectator = instance->GetCreature(*itr))                        pSpectator->SetFactionTemporary(FACTION_ARENA_NEUTRAL, TEMPFACTION_RESTORE_RESPAWN);                }            }            m_auiEncounter[0] = uiData;            break;        case TYPE_VAULT:            if (uiData == SPECIAL)            {                ++m_uiCofferDoorsOpened;                if (m_uiCofferDoorsOpened == MAX_RELIC_DOORS)                {                    SetData(TYPE_VAULT, IN_PROGRESS);                    Creature* pConstruct = NULL;                    // Activate vault constructs                    for (GuidSet::const_iterator itr = m_sVaultNpcGuids.begin(); itr != m_sVaultNpcGuids.end(); ++itr)                    {                        pConstruct = instance->GetCreature(*itr);                        if (pConstruct)                            pConstruct->RemoveAurasDueToSpell(SPELL_STONED);                    }                    if (!pConstruct)                        return;                    // Summon doomgrip                    pConstruct->SummonCreature(NPC_WATCHER_DOOMGRIP, aVaultPositions[0], aVaultPositions[1], aVaultPositions[2], aVaultPositions[3], TEMPSPAWN_DEAD_DESPAWN, 0);                }                // No need to store in this case                return;            }            if (uiData == DONE)            {                DoUseDoorOrButton(GO_SECRET_DOOR);                DoToggleGameObjectFlags(GO_SECRET_SAFE, GO_FLAG_NO_INTERACT, false);            }            m_auiEncounter[1] = uiData;            break;        case TYPE_ROCKNOT:            if (uiData == SPECIAL)                ++m_uiBarAleCount;            else            {                if (uiData == DONE)                {                    HandleBarPatrons(PATRON_PISSED);                    SetBarDoorIsOpen();                }                m_auiEncounter[2] = uiData;            }            break;        case TYPE_TOMB_OF_SEVEN:            // Don't set the same data twice            if (uiData == m_auiEncounter[3])                break;            // Combat door            DoUseDoorOrButton(GO_TOMB_ENTER);            // Start the event            if (uiData == IN_PROGRESS)                DoCallNextDwarf();            if (uiData == FAIL)            {                // Reset dwarfes                for (uint8 i = 0; i < MAX_DWARFS; ++i)                {                    if (Creature* pDwarf = GetSingleCreatureFromStorage(aTombDwarfes[i]))                    {                        if (!pDwarf->isAlive())                            pDwarf->Respawn();                    }                }                m_uiDwarfRound = 0;                m_uiDwarfFightTimer = 0;            }            if (uiData == DONE)            {                DoRespawnGameObject(GO_CHEST_SEVEN, HOUR);                DoUseDoorOrButton(GO_TOMB_EXIT);            }            m_auiEncounter[3] = uiData;            break;        case TYPE_LYCEUM:            if (uiData == DONE)            {//.........这里部分代码省略.........
开发者ID:krullgor,项目名称:mangos-wotlk,代码行数:101,


示例20: switch

void instance_karazhan::SetData(uint32 uiType, uint32 uiData){    switch(uiType)    {        case TYPE_ATTUMEN:            m_auiEncounter[uiType] = uiData;            if (uiData == FAIL)            {                // Respawn Midnight on Fail                if (Creature* pMidnight = GetSingleCreatureFromStorage(NPC_MIDNIGHT))                {                    if (!pMidnight->isAlive())                    {                        pMidnight->Respawn();                        pMidnight->GetMotionMaster()->MoveTargetedHome();                    }                }            }            break;        case TYPE_MOROES:        case TYPE_MAIDEN:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_OPERA:            // Don't store the same data twice            if (uiData == m_auiEncounter[uiType])                break;            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                m_uiOzDeathCount = 0;            if (uiData == DONE)            {                DoUseDoorOrButton(GO_STAGE_DOOR_LEFT);                DoUseDoorOrButton(GO_STAGE_DOOR_RIGHT);                DoToggleGameObjectFlags(GO_SIDE_ENTRANCE_DOOR, GO_FLAG_LOCKED, false);            }            // use curtain only for event start or fail            else                DoUseDoorOrButton(GO_STAGE_CURTAIN);            break;        case TYPE_CURATOR:        case TYPE_TERESTIAN:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_ARAN:            if (uiData == FAIL || uiData == DONE)                DoToggleGameObjectFlags(GO_PRIVATE_LIBRARY_DOOR, GO_FLAG_LOCKED, false);            if (uiData == IN_PROGRESS)                DoToggleGameObjectFlags(GO_PRIVATE_LIBRARY_DOOR, GO_FLAG_LOCKED, true);            m_auiEncounter[uiType] = uiData;            break;        case TYPE_NETHERSPITE:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_MASSIVE_DOOR);            break;        case TYPE_CHESS:            if (uiData == DONE)            {                DoUseDoorOrButton(GO_GAMESMANS_HALL_EXIT_DOOR);                DoRespawnGameObject(GO_DUST_COVERED_CHEST, DAY);            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_MALCHEZZAR:            DoUseDoorOrButton(GO_NETHERSPACE_DOOR);            m_auiEncounter[uiType] = uiData;            break;        case TYPE_NIGHTBANE:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_MASTERS_TERRACE_DOOR_1);            DoUseDoorOrButton(GO_MASTERS_TERRACE_DOOR_2);            break;        // Store the event type for the Opera        case TYPE_OPERA_PERFORMANCE:            m_uiOperaEvent = uiData;            break;    }    // Also save the opera performance, once it's set    if (uiData == DONE || uiType == TYPE_OPERA_PERFORMANCE)    {        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_auiEncounter[10] << " " << m_uiOperaEvent;        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:ErYayo,项目名称:scripts,代码行数:95,


示例21: switch

void instance_halls_of_stone::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_TRIBUNAL:            m_auiEncounter[uiType] = uiData;            switch (uiData)            {                case IN_PROGRESS:                    SortFaces();                    break;                case DONE:                    // Cast achiev check spell - Note: it's not clear who casts this spell, but for the moment we'll use Abedneum                    if (Creature* pEye = instance->GetCreature(m_aFaces[1].m_leftEyeGuid))                        pEye->CastSpell(pEye, SPELL_ACHIEVEMENT_CHECK, true);                    // Spawn the loot                    DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_TRIBUNAL_CHEST : GO_TRIBUNAL_CHEST_H, 30 * MINUTE);                    DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_TRIBUNAL_CHEST : GO_TRIBUNAL_CHEST_H, GO_FLAG_NO_INTERACT, false);                    // Door workaround because of the missing Bran event                    DoUseDoorOrButton(GO_DOOR_SJONNIR);                    break;                case FAIL:                    for (uint8 i = 0; i < MAX_FACES; ++i)                    {                        // Shut down the faces                        if (m_aFaces[i].m_bIsActive)                            DoUseDoorOrButton(m_aFaces[i].m_goFaceGuid);                        m_aFaces[i].m_bIsActive = false;                        m_aFaces[i].m_uiTimer = 1000;                    }                    break;                case SPECIAL:                    for (uint8 i = 0; i < MAX_FACES; ++i)                    {                        m_aFaces[i].m_bIsActive = false;                        m_aFaces[i].m_uiTimer = 1000;                        // TODO - Check which stay red and how long (also find out how they get red..)                        // Cleanup when finished                        if (Creature* pEye = instance->GetCreature(m_aFaces[i].m_leftEyeGuid))                            pEye->CastSpell(pEye, SPELL_KILL_TRIBUNAL_ADD, true);                        if (Creature* pEye = instance->GetCreature(m_aFaces[i].m_rightEyeGuid))                            pEye->CastSpell(pEye, SPELL_KILL_TRIBUNAL_ADD, true);                    }                    break;            }            break;        case TYPE_MAIDEN:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                DoStartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEV_START_MAIDEN_ID);            break;        case TYPE_KRYSTALLUS:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_SJONNIR:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_DOOR_SJONNIR);            if (uiData == IN_PROGRESS)                m_uiIronSludgeKilled = 0;            break;    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:AtVirus,项目名称:server,代码行数:76,


示例22: switch

void instance_nexus::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_TELESTRA:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                SetSpecialAchievementCriteria(TYPE_ACHIEV_SPLIT_PERSONALITY, true);            if (uiData == DONE)                DoToggleGameObjectFlags(GO_CONTAINMENT_SPHERE_TELESTRA, GO_FLAG_NO_INTERACT, false);            break;        case TYPE_ANOMALUS:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                SetSpecialAchievementCriteria(TYPE_ACHIEV_CHAOS_THEORY, true);            if (uiData == DONE)                DoToggleGameObjectFlags(GO_CONTAINMENT_SPHERE_ANOMALUS, GO_FLAG_NO_INTERACT, false);            break;        case TYPE_ORMOROK:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)                DoToggleGameObjectFlags(GO_CONTAINMENT_SPHERE_ORMOROK, GO_FLAG_NO_INTERACT, false);            break;        case TYPE_KERISTRASZA:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                m_sIntenseColdFailPlayers.clear();            break;        case TYPE_INTENSE_COLD_FAILED:            // Insert the players who fail the achiev and haven't been already inserted in the set            if (m_sIntenseColdFailPlayers.find(uiData) == m_sIntenseColdFailPlayers.end())                m_sIntenseColdFailPlayers.insert(uiData);            break;        default:            script_error_log("Instance Nexus: ERROR SetData = %u for type %u does not exist/not implemented.", uiType, uiData);            return;    }    if (m_auiEncounter[TYPE_TELESTRA] == SPECIAL && m_auiEncounter[TYPE_ANOMALUS] == SPECIAL && m_auiEncounter[TYPE_ORMOROK] == SPECIAL)    {        // release Keristrasza from her prison here        m_auiEncounter[TYPE_KERISTRASZA] = SPECIAL;        Creature* pCreature = GetSingleCreatureFromStorage(NPC_KERISTRASZA);        if (pCreature && pCreature->isAlive())        {            pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PASSIVE | UNIT_FLAG_OOC_NOT_ATTACKABLE);            pCreature->RemoveAurasDueToSpell(SPELL_FROZEN_PRISON);        }    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:AwkwardDev,项目名称:mangos-d3,代码行数:64,


示例23: switch

void instance_naxxramas::SetData(uint32 uiType, uint32 uiData){    switch(uiType)    {        case TYPE_ANUB_REKHAN:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_ARAC_ANUB_DOOR);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_ARAC_ANUB_GATE);                DoStartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEV_START_MAEXXNA_ID);            }            break;        case TYPE_FAERLINA:            DoUseDoorOrButton(GO_ARAC_FAER_WEB);            if (uiData == IN_PROGRESS)                SetSpecialAchievementCriteria(TYPE_ACHIEV_KNOCK_YOU_OUT, true);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_ARAC_FAER_DOOR);                DoUseDoorOrButton(GO_ARAC_MAEX_OUTER_DOOR);            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_MAEXXNA:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_ARAC_MAEX_INNER_DOOR, uiData);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_ARAC_EYE_RAMP);                DoUseDoorOrButton(GO_ARAC_EYE_BOSS);                DoRespawnGameObject(GO_ARAC_PORTAL, 30*MINUTE);                DoToggleGameObjectFlags(GO_ARAC_PORTAL, GO_FLAG_NO_INTERACT, false);                m_uiTauntTimer = 5000;            }            break;        case TYPE_NOTH:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_PLAG_NOTH_ENTRY_DOOR);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_PLAG_NOTH_EXIT_DOOR);                DoUseDoorOrButton(GO_PLAG_HEIG_ENTRY_DOOR);            }            break;        case TYPE_HEIGAN:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_PLAG_HEIG_ENTRY_DOOR);            if (uiData == IN_PROGRESS)                SetSpecialAchievementCriteria(TYPE_ACHIEV_SAFETY_DANCE, true);            if (uiData == DONE)                DoUseDoorOrButton(GO_PLAG_HEIG_EXIT_DOOR);            break;        case TYPE_LOATHEB:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_PLAG_LOAT_DOOR);            if (uiData == IN_PROGRESS)                SetSpecialAchievementCriteria(TYPE_ACHIEV_SPORE_LOSER, true);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_PLAG_EYE_RAMP);                DoUseDoorOrButton(GO_PLAG_EYE_BOSS);                DoRespawnGameObject(GO_PLAG_PORTAL, 30*MINUTE);                DoToggleGameObjectFlags(GO_PLAG_PORTAL, GO_FLAG_NO_INTERACT, false);                m_uiTauntTimer = 5000;            }            break;        case TYPE_RAZUVIOUS:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_GOTHIK:            switch(uiData)            {                case IN_PROGRESS:                    DoUseDoorOrButton(GO_MILI_GOTH_ENTRY_GATE);                    DoUseDoorOrButton(GO_MILI_GOTH_COMBAT_GATE);                    break;                case SPECIAL:                    DoUseDoorOrButton(GO_MILI_GOTH_COMBAT_GATE);                    break;                case FAIL:                    if (m_auiEncounter[uiType] == IN_PROGRESS)                        DoUseDoorOrButton(GO_MILI_GOTH_COMBAT_GATE);                    DoUseDoorOrButton(GO_MILI_GOTH_ENTRY_GATE);                    break;                case DONE:                    DoUseDoorOrButton(GO_MILI_GOTH_ENTRY_GATE);                    DoUseDoorOrButton(GO_MILI_GOTH_EXIT_GATE);                    DoUseDoorOrButton(GO_MILI_HORSEMEN_DOOR);                    m_dialogueHelper.StartNextDialogueText(NPC_THANE);                    break;            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_FOUR_HORSEMEN:            // Skip if already set            if (m_auiEncounter[uiType] == uiData)                return;//.........这里部分代码省略.........
开发者ID:AngelX,项目名称:scriptdev2,代码行数:101,


示例24: switch

void instance_naxxramas::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_ANUB_REKHAN:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_ARAC_ANUB_DOOR);            if (uiData == DONE)                DoUseDoorOrButton(GO_ARAC_ANUB_GATE);            break;        case TYPE_FAERLINA:            DoUseDoorOrButton(GO_ARAC_FAER_WEB);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_ARAC_FAER_DOOR);                DoUseDoorOrButton(GO_ARAC_MAEX_OUTER_DOOR);            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_MAEXXNA:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_ARAC_MAEX_INNER_DOOR, uiData);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_ARAC_EYE_RAMP);                DoUseDoorOrButton(GO_ARAC_EYE_BOSS);                DoRespawnGameObject(GO_ARAC_PORTAL, 30 * MINUTE);                DoToggleGameObjectFlags(GO_ARAC_PORTAL, GO_FLAG_NO_INTERACT, false);                m_uiTauntTimer = 5000;            }            break;        case TYPE_NOTH:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_PLAG_NOTH_ENTRY_DOOR);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_PLAG_NOTH_EXIT_DOOR);                DoUseDoorOrButton(GO_PLAG_HEIG_ENTRY_DOOR);            }            break;        case TYPE_HEIGAN:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_PLAG_HEIG_ENTRY_DOOR);            if (uiData == DONE)                DoUseDoorOrButton(GO_PLAG_HEIG_EXIT_HALLWAY);            break;        case TYPE_LOATHEB:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_PLAG_LOAT_DOOR);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_PLAG_EYE_RAMP);                DoUseDoorOrButton(GO_PLAG_EYE_BOSS);                DoRespawnGameObject(GO_PLAG_PORTAL, 30 * MINUTE);                DoToggleGameObjectFlags(GO_PLAG_PORTAL, GO_FLAG_NO_INTERACT, false);                m_uiTauntTimer = 5000;            }            break;        case TYPE_RAZUVIOUS:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_GOTHIK:            switch (uiData)            {                case IN_PROGRESS:                    DoUseDoorOrButton(GO_MILI_GOTH_ENTRY_GATE);                    DoUseDoorOrButton(GO_MILI_GOTH_COMBAT_GATE);                    break;                case SPECIAL:                    DoUseDoorOrButton(GO_MILI_GOTH_COMBAT_GATE);                    break;                case FAIL:                    if (m_auiEncounter[uiType] == IN_PROGRESS)                        DoUseDoorOrButton(GO_MILI_GOTH_COMBAT_GATE);                    DoUseDoorOrButton(GO_MILI_GOTH_ENTRY_GATE);                    break;                case DONE:                    DoUseDoorOrButton(GO_MILI_GOTH_ENTRY_GATE);                    DoUseDoorOrButton(GO_MILI_GOTH_EXIT_GATE);                    DoUseDoorOrButton(GO_MILI_HORSEMEN_DOOR);                    m_dialogueHelper.StartNextDialogueText(NPC_THANE);                    break;            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_FOUR_HORSEMEN:            // Skip if already set            if (m_auiEncounter[uiType] == uiData)                return;            if (uiData == SPECIAL)            {                ++m_uiHorseMenKilled;                if (m_uiHorseMenKilled == 4)                    SetData(TYPE_FOUR_HORSEMEN, DONE);                // Don't store special data                break;//.........这里部分代码省略.........
开发者ID:krullgor,项目名称:mangos-tbc,代码行数:101,


示例25: switch

void instance_icecrown_citadel::SetData(uint32 uiType, uint32 uiData){    switch(uiType)    {        case TYPE_MARROWGAR:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_MARROWGAR_DOOR);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_ICEWALL_1);                DoUseDoorOrButton(GO_ICEWALL_2);                // Note: this door use may not be correct. In theory the door should be already opened                DoUseDoorOrButton(GO_ORATORY_DOOR);            }            break;         case TYPE_LADY_DEATHWHISPER:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_ORATORY_DOOR);            // ToDo: set the elevateor in motion when TYPE_LADY_DEATHWHISPER == DONE            break;         case TYPE_GUNSHIP_BATTLE:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)                DoRespawnGameObject(m_uiTeam == ALLIANCE ? GO_GUNSHIP_ARMORY_A : GO_GUNSHIP_ARMORY_H, 60*MINUTE);            break;         case TYPE_DEATHBRINGER_SAURFANG:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                DoUseDoorOrButton(GO_SAURFANG_DOOR);                DoRespawnGameObject(GO_SAURFANG_CACHE, 60*MINUTE);                // Note: these doors may not be correct. In theory the doors should be already opened                DoUseDoorOrButton(GO_SCIENTIST_DOOR);                DoUseDoorOrButton(GO_CRIMSON_HALL_DOOR);                DoUseDoorOrButton(GO_GREEN_DRAGON_ENTRANCE);            }            break;         case TYPE_FESTERGUT:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_ORANGE_PLAGUE);            if (uiData == DONE)                DoToggleGameObjectFlags(GO_ORANGE_VALVE, GO_FLAG_NO_INTERACT, false);            break;         case TYPE_ROTFACE:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_GREEN_PLAGUE);            if (uiData == DONE)                DoToggleGameObjectFlags(GO_GREEN_VALVE, GO_FLAG_NO_INTERACT, false);            break;         case TYPE_PROFESSOR_PUTRICIDE:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_SCIENTIST_DOOR);            break;         case TYPE_BLOOD_PRINCE_COUNCIL:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_CRIMSON_HALL_DOOR);            if (uiData == DONE)            {                DoUseDoorOrButton(GO_COUNCIL_DOOR_1);                DoUseDoorOrButton(GO_COUNCIL_DOOR_2);            }            break;         case TYPE_QUEEN_LANATHEL:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_BLOODPRINCE_DOOR);            if (uiData == DONE)                DoUseDoorOrButton(GO_ICECROWN_GRATE);            break;         case TYPE_VALITHRIA:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_GREEN_DRAGON_ENTRANCE);            // Side doors            DoUseDoorOrButton(GO_VALITHRIA_DOOR_1);            DoUseDoorOrButton(GO_VALITHRIA_DOOR_2);            // Some doors are used only in 25 man mode            if (instance->GetDifficulty() == RAID_DIFFICULTY_25MAN_NORMAL || instance->GetDifficulty() == RAID_DIFFICULTY_25MAN_HEROIC)            {                DoUseDoorOrButton(GO_VALITHRIA_DOOR_3);                DoUseDoorOrButton(GO_VALITHRIA_DOOR_4);            }            if (uiData == DONE)            {                DoUseDoorOrButton(GO_GREEN_DRAGON_EXIT);                DoUseDoorOrButton(GO_SINDRAGOSA_ENTRANCE);                DoRespawnGameObject(GO_DREAMWALKER_CACHE, 60*MINUTE);            }            break;         case TYPE_SINDRAGOSA:            m_auiEncounter[uiType] = uiData;            DoUseDoorOrButton(GO_SINDRAGOSA_ENTRANCE);            break;         case TYPE_LICH_KING:            m_auiEncounter[uiType] = uiData;            break;        default:            error_log("SD2: Instance Icecrown Citadel: ERROR SetData = %u for type %u does not exist/not implemented.", uiType, uiData);            return;    }//.........这里部分代码省略.........
开发者ID:ErYayo,项目名称:scripts,代码行数:101,


示例26: switch

void instance_halls_of_stone::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_TRIBUNAL:            m_auiEncounter[uiType] = uiData;            switch (uiData)            {                case IN_PROGRESS:                    SortFaces();                    break;                case DONE:                    DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_TRIBUNAL_CHEST : GO_TRIBUNAL_CHEST_H, GO_FLAG_NO_INTERACT, false);                    // Door workaround because of the missing Bran event                    DoUseDoorOrButton(GO_DOOR_SJONNIR);                    break;                case FAIL:                    for (uint8 i = 0; i < MAX_FACES; ++i)                    {                        // Shut down the faces                        if (m_aFaces[i].m_bIsActive)                            DoUseDoorOrButton(m_aFaces[i].m_goFaceGuid);                        m_aFaces[i].m_bIsActive = false;                        m_aFaces[i].m_uiTimer = 1000;                    }                    break;                case SPECIAL:                    for (uint8 i = 0; i < MAX_FACES; ++i)                    {                        m_aFaces[i].m_bIsActive = false;                        m_aFaces[i].m_uiTimer = 1000;                        // TODO - Kill NPCs                        // TODO - Check which stay red and how long (also find out how they get red..)                    }                    break;            }            break;        case TYPE_MAIDEN:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                DoStartTimedAchievement(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, ACHIEV_START_MAIDEN_ID);            if (uiData == DONE)                DoUseDoorOrButton(GO_DOOR_TRIBUNAL_2);            break;        case TYPE_KRYSTALLUS:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_SJONNIR:            m_auiEncounter[uiType] = uiData;            if (uiData == IN_PROGRESS)                m_uiOozesKilled = 0;            DoUseDoorOrButton(GO_DOOR_SJONNIR);            break;        case TYPE_GOOD_GRIEF:            m_bGoodGriefFailed = (uiData == FAIL);        case TYPE_BRANN:            m_bBrannFailed = (uiData == FAIL);            break;    }    if (uiData == DONE)    {        OUT_SAVE_INST_DATA;        std::ostringstream saveStream;        saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3];        m_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:Agustinls,项目名称:scriptdev2,代码行数:73,


示例27: switch

void instance_culling_of_stratholme::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_GRAIN_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == SPECIAL)                DoUpdateWorldState(WORLD_STATE_CRATES, 1);            else if (uiData == IN_PROGRESS)            {                // safety check                if (m_uiGrainCrateCount >= MAX_GRAIN_CRATES)                    return;                ++m_uiGrainCrateCount;                DoUpdateWorldState(WORLD_STATE_CRATES_COUNT, m_uiGrainCrateCount);                if (m_uiGrainCrateCount == MAX_GRAIN_CRATES)                {                    m_uiRemoveCrateStateTimer = 20000;                    SetData(TYPE_GRAIN_EVENT, DONE);                }            }            break;        case TYPE_ARTHAS_INTRO_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                m_uiScourgeWaveCount = 0;                m_uiScourgeWaveTimer = 1000;                DoUpdateZombieResidents();                SetData(TYPE_MEATHOOK_EVENT, IN_PROGRESS);            }            break;        case TYPE_MEATHOOK_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                m_uiScourgeWaveTimer = 20000;                SetData(TYPE_SALRAMM_EVENT, IN_PROGRESS);            }            break;        case TYPE_SALRAMM_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)                m_uiScourgeWaveTimer = 5000;            break;        case TYPE_ARTHAS_TOWNHALL_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                // despawn arthas and spawn him in the next point                if (Creature* pArthas = GetSingleCreatureFromStorage(NPC_ARTHAS))                    pArthas->ForcedDespawn();                if (Player* pPlayer = GetPlayerInMap())                    DoSpawnArthasIfNeeded(pPlayer);            }            break;        case TYPE_EPOCH_EVENT:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_ARTHAS_ESCORT_EVENT:            // use fail in order to respawn Arthas            if (uiData == FAIL)            {                m_uiArthasRespawnTimer = 10000;                // despawn the bosses if Arthas dies in order to avoid exploits                if (Creature* pEpoch = GetSingleCreatureFromStorage(NPC_LORD_EPOCH, true))                    pEpoch->ForcedDespawn();                if (Creature* pMalganis = GetSingleCreatureFromStorage(NPC_MALGANIS, true))                    pMalganis->ForcedDespawn();            }            else                m_auiEncounter[uiType] = uiData;            break;        case TYPE_MALGANIS_EVENT:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)            {                DoUseDoorOrButton(GO_CITY_ENTRANCE_GATE);                DoToggleGameObjectFlags(instance->IsRegularDifficulty() ? GO_DARK_RUNED_CHEST : GO_DARK_RUNED_CHEST_H, GO_FLAG_NO_INTERACT, false);                DoRespawnGameObject(instance->IsRegularDifficulty() ? GO_DARK_RUNED_CHEST : GO_DARK_RUNED_CHEST_H, 30 * MINUTE);                if (Player* pPlayer = GetPlayerInMap())                    DoSpawnChromieIfNeeded(pPlayer);            }            break;        case TYPE_INFINITE_CORRUPTER_TIME:            m_auiEncounter[uiType] = uiData;            if (!uiData)            {                DoUpdateWorldState(WORLD_STATE_TIME, 0);    // Remove Timer                DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, 0);            }            else                DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, uiData / (MINUTE * IN_MILLISECONDS));            break;//.........这里部分代码省略.........
开发者ID:AwkwardDev,项目名称:mangos-d3,代码行数:101,


示例28: switch

void instance_halls_of_reflection::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_FROSTMOURNE_INTRO:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_FALRIC:            if (uiData == DONE)                m_uiEventTimer = 60000;            else if (uiData == FAIL)                DoCleanupFrostmourneEvent();            else if (uiData == SPECIAL)            {                DoUseDoorOrButton(GO_ICECROWN_DOOR_ENTRANCE);                m_uiEventTimer = 40000;                m_uiEventStage = 0;            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_MARWYN:            if (uiData == DONE)            {                DoUseDoorOrButton(GO_IMPENETRABLE_DOOR);                DoUseDoorOrButton(GO_ICECROWN_DOOR_ENTRANCE);                DoUpdateWorldState(WORLD_STATE_SPIRIT_WAVES, 0);                // spawn next mini boss                if (Player* pPlayer = GetPlayerInMap())                    pPlayer->SummonCreature(NPC_FROSTSWORN_GENERAL, afGeneralSpawnLoc[0], afGeneralSpawnLoc[1], afGeneralSpawnLoc[2], afGeneralSpawnLoc[3], TEMPSUMMON_DEAD_DESPAWN, 0, true);            }            else if (uiData == FAIL)                DoCleanupFrostmourneEvent();            else if (uiData == SPECIAL)            {                DoUseDoorOrButton(GO_ICECROWN_DOOR_ENTRANCE);                m_uiEventTimer = 60000;                m_uiEventStage = 5;            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_LICH_KING:            if (uiData == DONE)            {                uint32 uiChestEntry = m_uiTeam == ALLIANCE ? (instance->IsRegularDifficulty() ? GO_CAPTAIN_CHEST_ALLIANCE : GO_CAPTAIN_CHEST_ALLIANCE_H) :                        (instance->IsRegularDifficulty() ? GO_CAPTAIN_CHEST_HORDE : GO_CAPTAIN_CHEST_HORDE_H);                DoToggleGameObjectFlags(uiChestEntry, GO_FLAG_NO_INTERACT, false);            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_FROSTWORN_GENERAL:            if (uiData == DONE)            {                // spawn creatures for last encounter                if (Player* pPlayer = GetPlayerInMap())                {                    // Spawn npc for the last encounter                    for (uint8 i = 0; i < countof(aEventKingLocations); ++i)                    {                        pPlayer->SummonCreature(m_uiTeam == HORDE ? aEventKingLocations[i].uiEntryHorde : aEventKingLocations[i].uiEntryAlliance,                            aEventKingLocations[i].fX, aEventKingLocations[i].fY, aEventKingLocations[i].fZ, aEventKingLocations[i].fO, TEMPSUMMON_DEAD_DESPAWN, 0, true);                    }                }            }            m_auiEncounter[uiType] = uiData;            break;        case TYPE_QUEL_DELAR:            m_auiEncounter[uiType] = uiData;            break;        default:            return;    }    if (uiData == DONE || uiData == FAIL)    {        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_strInstData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:AwkwardDev,项目名称:mangos-d3,代码行数:89,



注:本文中的DoToggleGameObjectFlags函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ DoTraceLevelMessage函数代码示例
C++ DoTest函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。