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

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

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

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

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

示例1: OnCreatureCreate

 void OnCreatureCreate(Creature* creature) {     switch (creature->GetEntry())     {         case NPC_DRAKOS:             drakosGUID = creature->GetGUID();             break;         case NPC_VAROS:             varosGUID = creature->GetGUID();             if (GetBossState(DATA_DRAKOS_EVENT) == DONE)                creature->SetPhaseMask(1, true);             break;         case NPC_UROM:             uromGUID = creature->GetGUID();             if (GetBossState(DATA_VAROS_EVENT) == DONE)                 creature->SetPhaseMask(1, true);             break;         case NPC_EREGOS:             eregosGUID = creature->GetGUID();             if (GetBossState(DATA_UROM_EVENT) == DONE)                 creature->SetPhaseMask(1, true);             break;         case NPC_CENTRIFUGE_CONSTRUCT:             if (creature->isAlive())                 DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, ++centrifugueConstructCounter);             break;         case NPC_BELGARISTRASZ:             belgaristraszGUID = creature->GetGUID();             if (GetBossState(DATA_DRAKOS_EVENT) == DONE)                 creature->SetWalk(true),                 creature->GetMotionMaster()->MovePoint(0, 941.453f, 1044.1f, 359.967f),                 creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);             break;         case NPC_ETERNOS:             eternosGUID = creature->GetGUID();             if (GetBossState(DATA_DRAKOS_EVENT) == DONE)                 creature->SetWalk(true),                 creature->GetMotionMaster()->MovePoint(0, 943.202f, 1059.35f, 359.967f),                 creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);             break;         case NPC_VERDISA:             verdisaGUID = creature->GetGUID();             if (GetBossState(DATA_DRAKOS_EVENT) == DONE)                 creature->SetWalk(true),                 creature->GetMotionMaster()->MovePoint(0, 949.188f, 1032.91f, 359.967f),                 creature->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);             break;         case NPC_GREATER_WHELP:             if (GetBossState(DATA_UROM_EVENT) == DONE)                 creature->SetPhaseMask(1, true);                 gwhelpList.push_back(creature->GetGUID());             break;     } }
开发者ID:mryanlam,项目名称:Old-TrinityCore-Project-Script.me-,代码行数:54,


示例2: SetData

            void SetData(uint32 type, uint32 data)            {                switch (type)                {                    case DATA_MEATHOOK_EVENT:                        _encounterState[0] = data;                        break;                    case DATA_SALRAMM_EVENT:                        _encounterState[1] = data;                        break;                    case DATA_EPOCH_EVENT:                        _encounterState[2] = data;                        break;                    case DATA_MAL_GANIS_EVENT:                        _encounterState[3] = data;                        switch (_encounterState[3])                        {                            case NOT_STARTED:                                HandleGameObject(_malGanisGate2GUID, true);                                break;                            case IN_PROGRESS:                                HandleGameObject(_malGanisGate2GUID, false);                                break;                            case DONE:                                HandleGameObject(_exitGateGUID, true);                                if (GameObject* go = instance->GetGameObject(_malGanisChestGUID))                                    go->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_INTERACT_COND);                                break;                        }                        break;                    case DATA_INFINITE_EVENT:                        _encounterState[4] = data;                        break;                    case DATA_CRATE_COUNT:                        _crateCount = data;                        if (_crateCount == 5)                        {                            if (Creature* bunny = instance->GetCreature(_genericBunnyGUID))                                bunny->CastSpell(bunny, SPELL_CRATES_CREDIT, true);                            // Summon Chromie and global whisper                            if (Creature* chromie = instance->SummonCreature(NPC_CHROMIE_2, ChromieSummonPos))                                if (!instance->GetPlayers().isEmpty())                                    if (Player* player = instance->GetPlayers().getFirst()->getSource())                                        sCreatureTextMgr->SendChat(chromie, SAY_CRATES_COMPLETED, player->GetGUID(), CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_MAP);                        }                        DoUpdateWorldState(WORLDSTATE_CRATES_REVEALED, _crateCount);                        break;                }                if (data == DONE)                    SaveToDB();            }
开发者ID:Exodius,项目名称:Atlantiss,代码行数:54,


示例3: OnCreatureDeath

        void OnCreatureDeath(Creature* creature)        {            if (creature->GetEntry() != NPC_CENTRIFUGE_CONSTRUCT)                return;             DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, --centrifugueConstructCounter);             if (!centrifugueConstructCounter)                if (Creature* varos = instance->GetCreature(varosGUID))                    varos->RemoveAllAuras();        }
开发者ID:Exodius,项目名称:TrilliumEMU,代码行数:11,


示例4: switch

void instance_mount_hyjal::SetData(uint32 uiType, uint32 uiData){    switch (uiType)    {        case TYPE_WINTERCHILL:        case TYPE_ANETHERON:        case TYPE_KAZROGAL:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_AZGALOR:            m_auiEncounter[uiType] = uiData;            if (uiData == DONE)                DoSpawnArchimonde();            break;        case TYPE_ARCHIMONDE:            m_auiEncounter[uiType] = uiData;            break;        case TYPE_TRASH_COUNT:            m_uiTrashCount = uiData;            DoUpdateWorldState(WORLD_STATE_ENEMYCOUNT, m_uiTrashCount);            break;        case TYPE_RETREAT:            if (uiData == SPECIAL)            {                if (!lAncientGemGuidList.empty())                {                    for (GuidList::const_iterator itr = lAncientGemGuidList.begin(); itr != lAncientGemGuidList.end(); ++itr)                    {                        // don't know how long it expected                        DoRespawnGameObject(*itr, DAY);                    }                }            }            break;    }    debug_log("SD2: Instance Hyjal: Instance data updated for event %u (Data=%u)", uiType, uiData);    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_strSaveData = saveStream.str();        SaveToDB();        OUT_SAVE_INST_DATA_COMPLETE;    }}
开发者ID:Naincapable,项目名称:scriptdev2,代码行数:54,


示例5: SetData

        void SetData(uint32 type,uint32 data)        {            switch(type)            {                case DATA_BAINE:                    uiEncounter[1] = data;                    break;                case DATA_JAINA:                    uiEncounter[2] = data;                    break;                case DATA_SYLVANA:                    uiEncounter[3] = data;                    break;                case DATA_TYRANDE:                    uiEncounter[4] = data;                    break;                                    case DATA_MUROZOND:                    uiEncounter[5] = data;                    break;                case DATA_JAINA_PICKED_STATE:                    switch (data)                    {                        case IN_PROGRESS:                            DoUpdateWorldState(WORLDSTATE_SHOW_FRAGMENTS, 1);                            break;                        case DONE:                            DoUpdateWorldState(WORLDSTATE_SHOW_FRAGMENTS, 0);                            break;                    }                    JainaPickedState = data;                    break;            }                     if (data == DONE)                SaveToDB();        }
开发者ID:AwkwardDev,项目名称:WoWSource434,代码行数:41,


示例6: SetData

 void SetData(uint32 type, uint32 data) {     switch (type)     {         case DATA_COLOSSUS:             ColossusData = data;             if (data == 2)             {                 if (Creature* Leviathan = instance->GetCreature(LeviathanGUID))                     Leviathan->AI()->DoAction(ACTION_MOVE_TO_CENTER_POSITION);                 if (GameObject* gameObject = instance->GetGameObject(LeviathanGateGUID))                     gameObject->SetGoState(GO_STATE_ACTIVE_ALTERNATIVE);                 SaveToDB();             }             break;         case DATA_HODIR_RARE_CACHE:             HodirRareCacheData = data;             if (!HodirRareCacheData)             {                 if (Creature* Hodir = instance->GetCreature(HodirGUID))                     if (GameObject* gameObject = instance->GetGameObject(HodirRareCacheGUID))                         Hodir->RemoveGameObject(gameObject, false);             }             break;         case DATA_UNBROKEN:             Unbroken = bool(data);             break;         case EVENT_DESPAWN_ALGALON:             DoUpdateWorldState(WORLD_STATE_ALGALON_TIMER_ENABLED, 1);             DoUpdateWorldState(WORLD_STATE_ALGALON_DESPAWN_TIMER, 60);             _algalonTimer = 60;             _events.ScheduleEvent(EVENT_DESPAWN_ALGALON, 3600000);             _events.ScheduleEvent(EVENT_UPDATE_ALGALON_TIMER, 60000);             break;         case DATA_ALGALON_SUMMON_STATE:             _algalonSummoned = true;             break;         default:             break;     } }
开发者ID:FirstCore,项目名称:GaryMoveOut_4.3.4,代码行数:41,


示例7: DoWipe

        // Wipe has been detected. Perform cleanup and reset.        void DoWipe()        {            if (GetData(DATA_MARWYN_EVENT) != DONE) {                SetData(DATA_WAVE_COUNT, FAIL);                uiWaveCount = 0;                events.Reset();                DoUpdateWorldState(WORLD_STATE_HOR, 1);                DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, uiWaveCount);                OpenDoor(uiFrontDoor);            // TODO            // in case of wipe, the event is normally restarted by jumping into the center of the room.            // As I can't find a trigger area there, just respawn Jaina/Sylvanas so the event may be restarted.            if (Creature* pFalric = instance->GetCreature(uiFalric))                pFalric->SetVisible(false);            if (Creature* pMarwyn = instance->GetCreature(uiMarwyn))                pMarwyn->SetVisible(false);            }        }
开发者ID:Josemurillo,项目名称:frokTinkel,代码行数:22,


示例8: switch

void instance_old_hillsbrad::OnCreatureEnterCombat(Creature* pCreature){    switch (pCreature->GetEntry())    {        case NPC_DRAKE:            SetData(TYPE_DRAKE, IN_PROGRESS);            DoUpdateWorldState(WORLD_STATE_OH, 0);            break;        case NPC_SKARLOC: SetData(TYPE_SKARLOC, IN_PROGRESS); break;        case NPC_EPOCH:   SetData(TYPE_EPOCH, IN_PROGRESS);   break;    }}
开发者ID:Donniedarkoz,项目名称:mangos-scriptdev2,代码行数:12,


示例9: DoWipe

        // Wipe has been detected. Perform cleanup and reset.        void DoWipe()        {            uiWaveCount = 0;            events.Reset();            DoUpdateWorldState(WORLD_STATE_HOR, 1);            DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, uiWaveCount);            HandleGameObject(uiFrontDoor, true);            // TODO            // in case of wipe, the event is normally restarted by jumping into the center of the room.            // As I can't find a trigger area there, just respawn Jaina/Sylvanas so the event may be restarted.            if (Creature* pJaina = instance->GetCreature(uiJainaPart1))                pJaina->Respawn();            if (Creature* pSylvanas = instance->GetCreature(uiSylvanasPart1))                pSylvanas->Respawn();            if (Creature* pFalric = instance->GetCreature(uiFalric))                pFalric->SetVisibility(VISIBILITY_OFF);            if (Creature* pMarwyn = instance->GetCreature(uiMarwyn))                pMarwyn->SetVisibility(VISIBILITY_OFF);        }
开发者ID:AdrElecTro,项目名称:CactusEMU,代码行数:22,


示例10: SetData

 void SetData(uint32 type, uint32 data) {     switch (type)     {         case DATA_ZULAMAN_STATE:         {             if (data == IN_PROGRESS)             {                 DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER_ENABLED, 1);                 DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER, 15);                 events.ScheduleEvent(EVENT_UPDATE_ZULAMAN_TIMER, 60000);                 SpeedRunTimer = 15;                 ZulAmanState = data;                 SaveToDB();             }             break;         }         default:             break;     } }
开发者ID:Drasgon,项目名称:WoD,代码行数:21,


示例11: SetBossState

        bool SetBossState(uint32 type, EncounterState state)        {            if (!InstanceScript::SetBossState(type, state))                return false;            switch (type)            {                case DATA_DRAKOS_EVENT:                    if (state == DONE)                    {                        DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);                        DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, centrifugueConstructCounter);                        OpenCageDoors();                    }                    break;                case DATA_VAROS_EVENT:                    if (state == DONE)                    {                        DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);                        if (Creature* urom = instance->GetCreature(uromGUID))                        {                            urom->RestoreFaction();                            urom->RemoveAllAuras();                            urom->AI()->DoCast(SPELL_EVOCATION);                        }                    }                    break;                case DATA_UROM_EVENT:                    if (state == DONE)                        if (Creature* eregos = instance->GetCreature(eregosGUID))                            eregos->RestoreFaction();                    break;                case DATA_EREGOS_EVENT:                    if (state == DONE)                        DoRespawnGameObject(eregosCacheGUID, 7*DAY);                    break;            }            return true;        }
开发者ID:Firearm,项目名称:TrinityCore,代码行数:40,


示例12: AddWave

    void AddWave()    {        DoUpdateWorldState(WORLD_STATE_VH, 1);        DoUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, uiWaveCount);        DoUpdateWorldState(WORLD_STATE_VH_PRISON_STATE, 100); // TODO        switch (uiWaveCount)        {            case 6:                if (uiFirstBoss == 0)                    uiFirstBoss = urand(1,6);                StartBossEncounter(uiFirstBoss);                break;            case 12:                if (uiSecondBoss == 0)                    do                     {                        uiSecondBoss = urand(1,6);                    } while (uiSecondBoss == uiFirstBoss);                StartBossEncounter(uiSecondBoss);                break;            case 18:            {                Creature *pSinclari = instance->GetCreature(uiSinclari);                if (pSinclari)                    pSinclari->SummonCreature(CREATURE_CYANIGOSA,PortalLocation[0],TEMPSUMMON_DEAD_DESPAWN);                break;            }            case 1:            {                if (GameObject* pMainDoor = instance->GetGameObject(uiMainDoor))                    pMainDoor->SetGoState(GO_STATE_READY);            }            default:                if (!bWiped)                    SpawnPortal();                bWiped = false;                break;        }    }
开发者ID:Ickybad,项目名称:diamondcore2,代码行数:40,


示例13: Load

            void Load(char const* str)            {                if (!str)                {                    OUT_LOAD_INST_DATA_FAIL;                    return;                }                OUT_LOAD_INST_DATA(str);                char dataHead1, dataHead2;                std::istringstream loadStream(str);                loadStream >> dataHead1 >> dataHead2;                if (dataHead1 == 'Z' && dataHead2 == 'A')                {                    for (uint8 i = 0; i < EncounterCount; ++i)                    {                        uint32 tmpState;                        loadStream >> tmpState;                        if (tmpState == IN_PROGRESS || tmpState > SPECIAL)                            tmpState = NOT_STARTED;                        SetBossState(i, EncounterState(tmpState));                    }                    loadStream >> ZulAmanState;                    loadStream >> SpeedRunTimer;                    loadStream >> ZulAmanBossCount;                    if (ZulAmanState == IN_PROGRESS && SpeedRunTimer && SpeedRunTimer <= 15)                    {                        events.ScheduleEvent(EVENT_UPDATE_ZULAMAN_TIMER, 60000);                        DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER_ENABLED, 1);                        DoUpdateWorldState(WORLD_STATE_ZULAMAN_TIMER, SpeedRunTimer);                    }                }                else
开发者ID:Drasgon,项目名称:WoD,代码行数:39,


示例14: DoWipe

        void DoWipe()        {            if (GetData(DATA_FALRIC_EVENT) == DONE && GetData(DATA_MARWYN_EVENT) != DONE)                WaveCnt = 5;            else                WaveCnt = 0;            events.Reset();            DoUpdateWorldState(WORLD_STATE_HOR, 0);            DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, WaveCnt);            OpenDoor(FrontDoorGUID);            if (Creature * Falric = instance->GetCreature(FalricGUID))                if (Falric->isAlive())                    Falric->AI()->EnterEvadeMode();            if (Creature * Marwyn = instance->GetCreature(MarwynGUID))                if (Marwyn->isAlive())                    Marwyn->AI()->EnterEvadeMode();        }
开发者ID:ivansiwi,项目名称:TrinityCore,代码行数:22,


示例15: SetBossState

        bool SetBossState(uint32 type, EncounterState state)        {            if (!InstanceScript::SetBossState(type, state))                return false;            switch (type)            {                case DATA_DRAKOS_EVENT:                    if (state == DONE)                    {                        DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 1);                        DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, centrifugueConstructCounter);                        OpenCageDoors();                        FreeDragons();                        if (Creature* varos = instance->GetCreature(varosGUID))                            varos->SetPhaseMask(1, true);                    }                    break;                case DATA_VAROS_EVENT:                    if (state == DONE)                        DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_SHOW, 0);                        if (Creature* urom = instance->GetCreature(uromGUID))                            urom->SetPhaseMask(1, true);                    break;                case DATA_UROM_EVENT:                    if (state == DONE)                        if (Creature* eregos = instance->GetCreature(eregosGUID))                            eregos->SetPhaseMask(1, true);                            GreaterWhelps();                    break;                case DATA_EREGOS_EVENT:                    if (state == DONE)                        DoRespawnGameObject(eregosCacheGUID, 7*DAY);                    break;            }            return true;        }
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:38,


示例16: Update

    void Update(uint32 uiDiff)    {       if(m_auiEncounter[5] == IN_PROGRESS)       {         if(m_uiHeroicTimer < uiDiff)         {             m_auiEncounter[5] = FAIL;             DoUpdateWorldState(WORLD_STATE_COS_TIME_ON, 0);             if(Creature* Corruptor = instance->GetCreature(m_uiCorruptorGUID))               Corruptor->SetPhaseMask(0, true);         }else m_uiHeroicTimer -= uiDiff;         if(m_uiHeroicTimer < m_uiLastTimer - 60000)         {            m_uiLastTimer = m_uiHeroicTimer;            uint32 tMinutes = m_uiHeroicTimer / 60000;            DoUpdateWorldState(WORLD_STATE_COS_TIME_COUNT, tMinutes);         }       }        return;    }
开发者ID:Ankso,项目名称:scriptdev2,代码行数:23,


示例17: Update

        void Update(uint32 diff)        {                   if (tMinutes == 25)           {               m_auiEncounter[4] = FAIL;               if (Creature *pInfinite = instance->GetCreature(uiInfinite))               {                   pInfinite->DisappearAndDie();                   pInfinite->SetLootRecipient(NULL);               }               DoUpdateWorldState(WORLD_STATE_TIMER, 0);                        }           if (Minute <= diff)           {              LastTimer = EventTimer;              tMinutes++;              DoUpdateWorldState(WORLD_STATE_TIME_COUNTER, 25 - tMinutes);              Minute = 60000;           }           else Minute -= diff;           return;        }
开发者ID:ice74,项目名称:blizzwow,代码行数:23,


示例18: DoWipe1

		void DoWipe1()		{			if (!WaveNumber)				return;			DoUpdateWorldState(WORLD_STATE_HOR_COUNTER, 0);			DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, 0);			HandleGameObject(GO_FrontDoorGUID, true);			TrashCounter = NUM_OF_TRASH;			WaveNumber = 0;			NextWaveTimer = 0;			memset(&chosenComposition, 0, sizeof(chosenComposition));			for (uint8 i=0; i<NUM_OF_TRASH; ++i)				if (TrashActive[i])					if (Creature* c = instance->GetCreature(NPC_TrashGUID[i]))					{						c->DeleteThreatList();						c->CombatStop(true);						c->InterruptNonMeleeSpells(true);						c->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NOT_SELECTABLE);						c->Respawn(true);						c->UpdatePosition(c->GetHomePosition(), true);						c->StopMovingOnCurrentPos();					}			memset(&TrashActive, 0, sizeof(TrashActive));			if (Creature* falric = instance->GetCreature(NPC_FalricGUID))				falric->AI()->EnterEvadeMode();			if (Creature* marwyn = instance->GetCreature(NPC_MarwynGUID))				marwyn->AI()->EnterEvadeMode();			ResumeFirstEventTimer = 5000;			ResumeFirstEventStep = 2;			reqKillCount = 0;		}
开发者ID:DSlayerMan,项目名称:Sunwell,代码行数:37,


示例19: AddWave

        void AddWave()        {            DoUpdateWorldState(WORLD_STATE_HOR, 1);            DoUpdateWorldState(WORLD_STATE_HOR_WAVE_COUNT, WaveCount);            switch (WaveCount)            {                case 1:                case 2:                case 3:                case 4:                    if (Creature* falric = instance->GetCreature(Falric))                        SpawnWave(falric);                    break;                case 5:                    if (GetData(DATA_FALRIC_EVENT) == DONE)                        events.ScheduleEvent(EVENT_NEXT_WAVE, 10000);                    else if (Creature* falric = instance->GetCreature(Falric))                        if (falric->AI())                            falric->AI()->DoAction(ACTION_ENTER_COMBAT);                    break;                case 6:                case 7:                case 8:                case 9:                    if (Creature* marwyn  = instance->GetCreature(Marwyn))                        SpawnWave(marwyn);                    break;                case 10:                    if (GetData(DATA_MARWYN_EVENT) != DONE) // wave should not have been started if DONE. Check anyway to avoid bug exploit!                        if (Creature* marwyn = instance->GetCreature(Marwyn))                            if (marwyn->AI())                                marwyn->AI()->DoAction(ACTION_ENTER_COMBAT);                    break;            }        }
开发者ID:AwkwardDev,项目名称:Darkcore-Rebase,代码行数:36,


示例20: Update

        void Update(uint32 diff)        {            if (GetData(DATA_INFINITE_EVENT) == SPECIAL || GetData(DATA_INFINITE_EVENT) == IN_PROGRESS)                if (uiCountdownMinute)                {                    if (uiCountdownTimer < diff)                    {                        --uiCountdownMinute;                        if (uiCountdownMinute)                        {                            DoUpdateWorldState(WORLDSTATE_NUMBER_INFINITE_SHOW, 1);                            DoUpdateWorldState(WORLDSTATE_NUMBER_INFINITE_TIMER, uiCountdownMinute);                        }                        else                        {                            DoUpdateWorldState(WORLDSTATE_NUMBER_INFINITE_SHOW, 0);                        }                        SaveToDB();                        uiCountdownTimer += 60000;                    }                    uiCountdownTimer -= diff;                }        }
开发者ID:darkman1983,项目名称:TrinityCore,代码行数:24,


示例21: OnUnitDeath

            void OnUnitDeath(Unit* unit) override            {                Creature* creature = unit->ToCreature();                if (!creature)                    return;                if (creature->GetEntry() == NPC_CENTRIFUGE_CONSTRUCT)                {                     DoUpdateWorldState(WORLD_STATE_CENTRIFUGE_CONSTRUCT_AMOUNT, --CentrifugueConstructCounter);                     if (!CentrifugueConstructCounter)                        if (Creature* varos = instance->GetCreature(VarosGUID))                            varos->RemoveAllAuras();                }            }
开发者ID:DSlayerMan,项目名称:DraenorCore,代码行数:15,


示例22: Update

        void Update(uint32 diff)        {            if (uiAlgalonCountdown > 0 && uiAlgalonCountdown < 61)            {                if (uiCountdownTimer < diff)                {                    uiAlgalonCountdown--;                    if (uiAlgalonCountdown)                    {                        DoUpdateWorldState(WORLDSTATE_ALGALON_SHOW, 1);                        DoUpdateWorldState(WORLDSTATE_ALGALON_TIME, uiAlgalonCountdown);                    }                    else                    {                        if (Creature* algalon = instance->GetCreature(uiAlgalonGUID))                            algalon->AI()->DoAction(1);                    }                    SaveToDB();                    uiCountdownTimer += 1*MINUTE*IN_MILLISECONDS;                }                uiCountdownTimer -= diff;            }        }
开发者ID:AtVirus,项目名称:Tenerby,代码行数:24,


示例23: DoUpdateWorldState

void instance_oculus::SetData64(uint32 uiData, uint64 uiGuid){    // If Varos already completed, just ignore    if (GetData(TYPE_VAROS) == DONE)        return;    // Note: this is handled in Acid. The purpose is check which Centrifuge Construct is alive, in case of server reset    // The function is triggered by eventAI on generic timer    if (uiData == DATA_CONSTRUCTS_EVENT)    {        m_sConstructsAliveGUIDSet.insert(ObjectGuid(uiGuid));        // Update world state in case of server reset        if (GetData(TYPE_DRAKOS) == DONE)            DoUpdateWorldState(WORLD_STATE_CONSTRUCTS_COUNT, m_sConstructsAliveGUIDSet.size());    }}
开发者ID:BThallid,项目名称:mangos,代码行数:17,


示例24: SetData

    void SetData(uint32 uiType, uint32 uiData)    {        switch(uiType)        {        case TYPE_DRAKOS:            m_auiEncounter[0] = uiData;            if(uiData == DONE)                m_bMakeCount = true;            break;        case TYPE_VAROS:            m_auiEncounter[1] = uiData;            break;        case TYPE_UROM:            m_auiEncounter[2] = uiData;            break;        case TYPE_EREGOS:            m_auiEncounter[3] = uiData;            if(uiData == DONE)            {                DoRespawnGameObject(m_uiEregosCacheGUID);                if(m_uiMakeCountTimer < 20*MINUTE && !instance->IsRegularDifficulty())                    DoCompleteAchievement(ACHIEV_MAKE_IT_COUNT);            }            break;        case TYPE_CENTRIFUGE_DEAD:            m_uiCentrifugeDead += uiData;            DoUpdateWorldState(UI_STATE_CONSTRUCT_COUNT, 10 - m_uiCentrifugeDead);            m_bNeedSave = true;            break;        }        if (uiData == DONE || m_bNeedSave)        {            OUT_SAVE_INST_DATA;            std::ostringstream saveStream;            saveStream << m_auiEncounter[0] << " " << m_auiEncounter[1] << " " << m_auiEncounter[2] << " " << m_auiEncounter[3] << " " << m_uiCentrifugeDead;            strInstData = saveStream.str();            SaveToDB();            OUT_SAVE_INST_DATA_COMPLETE;            m_bNeedSave = false;        }    }
开发者ID:GlassFace,项目名称:ScriptDev2_2010,代码行数:45,


示例25: SetData

void instance_culling_of_stratholme::Update(uint32 uiDiff){    // 25min Run - decrease time, update worldstate every ~20s    // as the time is always saved by m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME], there is no need for an extra timer    if (m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME])    {        if (m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME] <= uiDiff)            SetData(TYPE_INFINITE_CORRUPTER, FAIL);        else        {            m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME] -= uiDiff;            if (m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME]/IN_MILLISECONDS % 20 == 0)                SetData(TYPE_INFINITE_CORRUPTER_TIME, m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME]);        }        // This part is needed for a small "hurry up guys" note, TODO, verify 20min        if (m_auiEncounter[TYPE_INFINITE_CORRUPTER] == IN_PROGRESS && m_auiEncounter[TYPE_INFINITE_CORRUPTER_TIME] <= 24*MINUTE*IN_MILLISECONDS)            SetData(TYPE_INFINITE_CORRUPTER, SPECIAL);    }    // Small Timer, to remove Grain-Crate WorldState and Spawn Second Chromie    if (m_uiRemoveCrateStateTimer)    {        if (m_uiRemoveCrateStateTimer <= uiDiff)        {            DoUpdateWorldState(WORLD_STATE_CRATES, 0);            DoSpawnChromieIfNeeded();            m_uiRemoveCrateStateTimer = 0;        }        else            m_uiRemoveCrateStateTimer -= uiDiff;    }    // Respawn Arthas after some time    if (m_uiArthasRespawnTimer)    {        if (m_uiArthasRespawnTimer <= uiDiff)        {            DoSpawnArthasIfNeeded();            m_uiArthasRespawnTimer = 0;        }        else            m_uiArthasRespawnTimer -= uiDiff;    }}
开发者ID:Grandres,项目名称:ScriptDev2,代码行数:45,


示例26: OnPlayerEnter

        void OnPlayerEnter(Player * plr)        {            if (!plr || !plr->IsInWorld())                return;            Position pos = { 5304.132324f, 2001.124634f, 709.341431f, 3.895033f };            if (plr->HasAura(SPELL_QUELDELARS_ZWANG) && !GetData64(DATA_QUELDELAR_PLR))            {                SetData64(DATA_QUELDELAR_PLR, plr->GetGUID());                if (!instance->GetCreature(QuelDelarGUID))                    instance->SummonCreature(NPC_QUELDELAR_TRIGGER, pos);            }            if (WaveCnt)                DoUpdateWorldState(WORLD_STATE_HOR, 1);        }
开发者ID:ivansiwi,项目名称:TrinityCore,代码行数:18,


示例27: DoUpdateWorldState

void instance_violet_hold::Update(uint32 uiDiff){    if (!(m_auiEncounter[0] == IN_PROGRESS || m_auiEncounter[0] == SPECIAL))        return;    if (m_uiPortalTimer)    {        if (m_uiPortalTimer <= uiDiff)        {            DoUpdateWorldState(WORLD_STATE_PORTALS, ++m_uiWorldStatePortalCount);            SetPortalId();            SpawnPortal();            m_uiPortalTimer = 0;        }        else            m_uiPortalTimer -= uiDiff;    }}
开发者ID:leecher228,项目名称:scriptdev2,代码行数:18,


示例28: UpdateEventState

		void UpdateEventState()		{			if (_encounterState > COS_PROGRESS_NOT_STARTED)			{				// Summon Chromie and global whisper                instance->SummonCreature(NPC_CHROMIE_MIDDLE, EventPos[EVENT_POS_CHROMIE]);				instance->SummonCreature(NPC_HOURGLASS, EventPos[EVENT_POS_HOURGLASS]);				if (_encounterState == COS_PROGRESS_CRATES_FOUND ||					_encounterState == COS_PROGRESS_START_INTRO)				{					ChromieWhisper(0);					// hide crates count					DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, 0);					_showCrateTimer = 0;					_encounterState = COS_PROGRESS_CRATES_FOUND;				}			}		}
开发者ID:AlexHjelm,项目名称:sunwell,代码行数:20,


示例29: switch

void instance_oculus::OnCreatureDeath(Creature* pCreature){    switch (pCreature->GetEntry())    {        case NPC_DRAKOS: SetData(TYPE_DRAKOS, DONE); break;        case NPC_CENTRIFUGE_CONSTRUCT:            m_sConstructsAliveGUIDSet.erase(pCreature->GetObjectGuid());            DoUpdateWorldState(WORLD_STATE_CONSTRUCTS_COUNT, m_sConstructsAliveGUIDSet.size());            if (m_sConstructsAliveGUIDSet.empty())            {                if (Creature* pVaros = GetSingleCreatureFromStorage(NPC_VAROS))                {                    pVaros->ApplySpellImmune(0, IMMUNITY_DAMAGE, SPELL_SCHOOL_MASK_ALL, false);                    pVaros->InterruptNonMeleeSpells(false);                }            }            break;    }}
开发者ID:BThallid,项目名称:mangos,代码行数:20,


示例30: AddWave

            void AddWave()            {                DoUpdateWorldState(WORLD_STATE_VH_WAVE_COUNT, WaveCount);                switch (WaveCount)                {                    case 6:                        if (FirstBossId == 0)                            FirstBossId = urand(DATA_MORAGG, DATA_ZURAMAT);                        if (Creature* sinclari = GetCreature(DATA_SINCLARI))                        {                            sinclari->SummonCreature(NPC_TELEPORTATION_PORTAL_INTRO, PortalIntroPositions[3], TEMPSUMMON_TIMED_DESPAWN, 3000);                            sinclari->SummonCreature(NPC_SABOTEOUR, SaboteurSpawnLocation, TEMPSUMMON_DEAD_DESPAWN);                        }                        break;                    case 12:                        if (SecondBossId == 0)                            do                            {                                SecondBossId = urand(DATA_MORAGG, DATA_ZURAMAT);                            } while (SecondBossId == FirstBossId);                        if (Creature* sinclari = GetCreature(DATA_SINCLARI))                        {                            sinclari->SummonCreature(NPC_TELEPORTATION_PORTAL_INTRO, PortalIntroPositions[3], TEMPSUMMON_TIMED_DESPAWN, 3000);                            sinclari->SummonCreature(NPC_SABOTEOUR, SaboteurSpawnLocation, TEMPSUMMON_DEAD_DESPAWN);                        }                        break;                    case 18:                        if (Creature* sinclari = GetCreature(DATA_SINCLARI))                        {                            sinclari->SummonCreature(NPC_TELEPORTATION_PORTAL_INTRO, PortalIntroPositions[4], TEMPSUMMON_TIMED_DESPAWN, 6000);                            if (Creature* cyanigosa = sinclari->SummonCreature(NPC_CYANIGOSA, CyanigosaSpawnLocation, TEMPSUMMON_DEAD_DESPAWN))                                cyanigosa->CastSpell(cyanigosa, SPELL_CYANIGOSA_ARCANE_POWER_STATE, true);                            ScheduleCyanigosaIntro();                        }                        break;                    default:                        SpawnPortal();                        break;                }            }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:41,



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


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