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

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

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

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

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

示例1: SetData

	void SetData(uint32 uiType, uint32 uiData)	{		switch(uiType)		{		case DATA_BALTHARUS_EVENT:			m_auiEncounter[0] = uiData;			if(uiData == DONE)				m_uiBossCounter++;			if(m_uiBossCounter == 3)			{				Creature *pCreature = instance->GetCreature(GetData64(DATA_HALION));				pCreature->SetReactState(REACT_AGGRESSIVE);				pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);				pCreature->SetVisibility(VISIBILITY_ON);			}					break;		case DATA_ZARITHRIAN_EVENT:			m_auiEncounter[1] = uiData;			if(uiData == DONE)				m_uiBossCounter++;			if(m_uiBossCounter == 3)			{				Creature *pCreature = instance->GetCreature(GetData64(DATA_HALION));				pCreature->SetReactState(REACT_AGGRESSIVE);				pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);				pCreature->SetVisibility(VISIBILITY_ON);			}			break;		case DATA_RAGEFIRE_EVENT:			m_auiEncounter[2] = uiData;			if(uiData == DONE)				m_uiBossCounter++;			if(m_uiBossCounter == 3)			{				Creature *pCreature = instance->GetCreature(GetData64(DATA_HALION));				pCreature->SetReactState(REACT_AGGRESSIVE);				pCreature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);				pCreature->SetVisibility(VISIBILITY_ON);			}			break;		case DATA_HALION_EVENT:			m_auiEncounter[3] = uiData;			if(uiData == DONE)			{				switch(instance->GetDifficulty())				{				case RAID_DIFFICULTY_10MAN_NORMAL:					DoCompleteAchievement(4817);				case RAID_DIFFICULTY_10MAN_HEROIC:					DoCompleteAchievement(4818);				case RAID_DIFFICULTY_25MAN_NORMAL:					DoCompleteAchievement(4815);				case RAID_DIFFICULTY_25MAN_HEROIC:					DoCompleteAchievement(4816);				}			}		case DATA_XERESTRASZA_EVENT:			m_uiXerestrasza = uiData;		}	}
开发者ID:VenT,项目名称:wow,代码行数:60,


示例2: Update

	void Update(uint32 uiDiff)	{		if (m_uiLane1Timer < uiDiff)		{			if(Creature* pTrigger = instance->GetCreature(GetData64(DATA_LANE1)))				if (Creature* pTemp = pTrigger->SummonCreature(NPC_POISEN, 3183.495779f, -3143.447998f, 294.062897f, 3.981270f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 9000))					pTemp->MonsterMove(3165.249023f, -3166.019043f, 294.063446f, 9000);			m_uiLane1Timer = 4000;		}else m_uiLane1Timer -= uiDiff; 		if (m_uiLane2Timer < uiDiff)		{			if(Creature* pTrigger = instance->GetCreature(GetData64(DATA_LANE2)))				if (Creature* pTemp = pTrigger->SummonCreature(NPC_POISEN, 3174.359619f, -3137.360840f, 294.062897f, 4.044f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 9000))					pTemp->MonsterMove(3155.766113f, -3158.337158f, 294.062897f, 9000);			m_uiLane2Timer = 4000;		}else m_uiLane2Timer -= uiDiff; 		if (m_uiLane3Timer < uiDiff)		{			if(Creature* pTrigger = instance->GetCreature(GetData64(DATA_LANE3)))				if (Creature* pTemp = pTrigger->SummonCreature(NPC_POISEN, 3192.833740f, -3151.343506f, 294.003479f, 4.044f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 9000))					pTemp->MonsterMove(3173.857178f, -3173.015625f, 294.063354f, 9000);			m_uiLane3Timer = 4000;		}else m_uiLane3Timer -= uiDiff;	}
开发者ID:xXNembiXx,项目名称:scriptdev2_335,代码行数:26,


示例3: ShiftPhase

 void ShiftPhase() {     uiAscendantCouncilPhase++;     if (uiAscendantCouncilPhase == 2)     {         ChangeState(GetData64(DATA_FELUDIUS),false,false);         ChangeState(GetData64(DATA_IGNACIOUS),false,false);         ChangeState(GetData64(DATA_ARION),true,false);         ChangeState(GetData64(DATA_TERRASTRA),true,false);     }     else if (uiAscendantCouncilPhase == 3)     {     } }
开发者ID:ProjectStarGate,项目名称:StarGate-Plus-EMU,代码行数:14,


示例4: OnPlayerEnter

 void OnPlayerEnter(Player* /*player*/) {     if (!GetData64(DATA_HALION_CONTROLLER) && GetBossState(DATA_HALION) != DONE && GetBossState(DATA_GENERAL_ZARITHRIAN) == DONE)     {         instance->LoadGrid(HalionControllerSpawnPos.GetPositionX(), HalionControllerSpawnPos.GetPositionY());         if (Creature* halionController = instance->SummonCreature(NPC_HALION_CONTROLLER, HalionControllerSpawnPos))             halionController->AI()->DoAction(ACTION_INTRO_HALION);     } }
开发者ID:Archarean,项目名称:TrinityCore,代码行数:9,


示例5: MoveNPCIfAlive

		void MoveNPCIfAlive(uint32 entry, float x, float y, float z, float o) {			if (Creature* npc = instance->GetCreature(GetData64(entry))) {				if (npc->isAlive()) {					npc->AddUnitMovementFlag(MOVEMENTFLAG_WALKING);					npc->GetMotionMaster()->MovePoint(1, x, y, z);					npc->SetHomePosition(x, y, z, o);				}			}		}
开发者ID:tauri,项目名称:ArkCORE,代码行数:9,


示例6: initBlyCrewMember

 void initBlyCrewMember(uint32 entry, float x, float y, float z) {     if (Creature* crew = GetCreature(GetData64(entry)))     {         crew->SetReactState(REACT_AGGRESSIVE);         crew->SetWalk(true);         crew->SetHomePosition(x, y, z, 0);         crew->GetMotionMaster()->MovePoint(1, x, y, z);         crew->SetFaction(FACTION_FREED);     } }
开发者ID:Mystiko,项目名称:OregonCore,代码行数:11,


示例7: OnPlayerEnter

            void OnPlayerEnter(Player* player)            {                if (instance->IsHeroic())                {                    player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 1);                    player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, GetData(TYPE_COUNTER));                }                else                    player->SendUpdateWorldState(UPDATE_STATE_UI_SHOW, 0);                // make sure Anub'arak isnt missing and floor is destroyed after a crash                if (GetBossState(BOSS_LICH_KING) == DONE && TrialCounter && GetBossState(BOSS_ANUBARAK) != DONE)                {                    Creature* anubArak = Unit::GetCreature(*player, GetData64(NPC_ANUBARAK));                    if (!anubArak)                        anubArak = player->SummonCreature(NPC_ANUBARAK, AnubarakLoc[0].GetPositionX(), AnubarakLoc[0].GetPositionY(), AnubarakLoc[0].GetPositionZ(), 3, TEMPSUMMON_CORPSE_TIMED_DESPAWN, DESPAWN_TIME);                    if (GameObject* floor = GameObject::GetGameObject(*player, GetData64(GO_ARGENT_COLISEUM_FLOOR)))                        floor->SetDestructibleState(GO_DESTRUCTIBLE_DAMAGED);                }            }
开发者ID:Deewad,项目名称:TrinityCore,代码行数:21,


示例8: MoveNPCIfAlive

 void MoveNPCIfAlive(uint32 entry, float x, float y, float z, float o) {     if (Creature* npc = instance->GetCreature(GetData64(entry)))     {         if (npc->isAlive())         {             npc->GetMotionMaster()->MovePoint(1, x, y, z, MOVE_PATHFINDING | MOVE_WALK_MODE);             npc->SetCombatStartPosition(x, y, z);             npc->SetHomePosition(x, y, z, npc->GetOrientation());         }     } }
开发者ID:Maduse,项目名称:server,代码行数:12,


示例9: MoveNPCIfAlive

 void MoveNPCIfAlive(uint32 entry, float x, float y, float z, float o) {    if (Creature* npc = instance->GetCreature(GetData64(entry)))    {        if (npc->IsAlive())        {             npc->SetWalk(true);             npc->GetMotionMaster()->MovePoint(1, x, y, z);             npc->SetHomePosition(x, y, z, o);        }     } }
开发者ID:Fose,项目名称:TrinityCore,代码行数:12,


示例10: 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,


示例11: OnCreatureCreate

 void OnCreatureCreate(Creature* creature, bool /*add*/) {     switch (creature->GetEntry())     {     case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;     case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;     case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;     case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;     case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break;     case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break;     case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break;     case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break;     case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;     case NPC_MAGMUS:         MagmusGUID = creature->GetGUID();         if (!creature->isAlive())             HandleGameObject(GetData64(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss         break;     } }
开发者ID:Maczuga,项目名称:SkyFire_one,代码行数:20,


示例12: Update

    void Update(uint32 diff)    {        if(GetData(EVENT_TERONGOREFIEND) == IN_PROGRESS)        {            if(sodList.size())            {                for(std::map<uint64,uint32>::iterator itr = sodList.begin(); itr != sodList.end(); itr++)                {                    if(itr->second <= diff)                    {                        if(Unit *teron = instance->GetCreature(GetData64(DATA_TERONGOREFIEND)))                            teron->CastSpell(teron, 40266, true);                        sodList.erase(itr);                    }                    else                        itr->second -= diff;                }            }        }    }
开发者ID:Blumfield,项目名称:ptc2,代码行数:21,


示例13: OnDestroy

 void OnDestroy(InstanceMap* pMap) {     if (Creature* weakSpot = instance->GetCreature(GetData64(NPC_WEAK_SPOT)))         weakSpot->_ExitVehicle(); }
开发者ID:CATACLYSMDEV,项目名称:JadeCore-5.4.8-18291--dev-,代码行数:5,


示例14: OnCreatureCreate

    void OnCreatureCreate(Creature* pCreature, bool add/*, uint32 data, ScriptedInstance* m_pInstance, Map *m_pMap*/)    {        std::stringstream ss;        ss << "pCreature->GetEntry()== " << pCreature->GetEntry();        outstring_log(ss.str().c_str());        outstring_log("OnCreatureCreate");        switch (pCreature->GetEntry())        {            case NPC_LEVIATHAN:                outstring_log("NPC_LEVIATHAN");                m_uiLeviathanGUID = pCreature->GetGUID();                break;            case NPC_LEVIATHAN_TRIGGER:                m_uiLeviathan_Trigger = pCreature->GetGUID();                break;            case NPC_IGNIS:                m_uiIgnisGUID = pCreature->GetGUID();                break;            case NPC_RAZORSCALE:                m_uiRazorscaleGUID = pCreature->GetGUID();                if (/*data == FAIL && */instance)                {                    if (Creature *commander = instance->GetCreature(GetData64(TYPE_COMMANDER)))                        commander->SetVisibility(VISIBILITY_ON);                }                break;            case NPC_XT002:                m_uiXT002GUID = pCreature->GetGUID();                break;            case NPC_STEELBREAKER:                m_uiSteelbreaker = pCreature->GetGUID();                break;            case NPC_MOLGEIM:                m_uiMolgeim = pCreature->GetGUID();                break;            case NPC_BRUNDIR:                m_uiBrundir = pCreature->GetGUID();                break;            case NPC_KOLOGARN:                m_uiKologarnGUID = pCreature->GetGUID();                break;            case NPC_KOLOGARN_LEFT_ARM:                m_uiKologarnLeftGUID = pCreature->GetGUID();                break;            case NPC_KOLOGARN_RIGHT_ARM:                m_uiKologarnRightGUID = pCreature->GetGUID();                break;            case NPC_AURIAYA:                m_uiAuriayaGUID = pCreature->GetGUID();                break;            case NPC_MIMIRON:                m_uiMimironGUID = pCreature->GetGUID();                break;            case NPC_HODIR:                m_uiHodirGUID = pCreature->GetGUID();                break;            case NPC_THORIM:                m_uiThorimGUID = pCreature->GetGUID();                break;            case NPC_FREYA:                m_uiFreyaGUID = pCreature->GetGUID();                break;            case NPC_VEZAX:                m_uiVezaxGUID = pCreature->GetGUID();                break;            case NPC_YOGGSARON:                m_uiYoggSaronGUID = pCreature->GetGUID();                break;            case NPC_ALGALON:                m_uiAlgalonGUID = pCreature->GetGUID();                break;            case NPC_COMMANDER:                m_uiExpCommander = pCreature->GetGUID();                break;            case NPC_IRON_CONSTRUCT:                {                    pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);                    pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                    pCreature->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);                    m_uiIronConstructGUIDs[m_auiConstrCount] = pCreature->GetGUID();                    m_auiConstrCount++;                    break;                }        }    }
开发者ID:Elevim,项目名称:RG-332,代码行数:86,


示例15: SetData

//.........这里部分代码省略.........                                if (m_uiTrialCounter >= 50)                                    tributeChest = GO_TRIBUTE_CHEST_25H_99;                                else                                    if (m_uiTrialCounter >= 45)                                        tributeChest = GO_TRIBUTE_CHEST_25H_50;                                    else                                        if (m_uiTrialCounter >= 25)                                            tributeChest = GO_TRIBUTE_CHEST_25H_45;                                        else                                            tributeChest = GO_TRIBUTE_CHEST_25H_25;                            }                            if (tributeChest)                                if (Creature* pTirion =  instance->GetCreature(m_uiTirionGUID))                                    if (GameObject* pChest = pTirion->SummonGameObject(tributeChest, 805.62f, 134.87f, 142.16f, 3.27f, 0, 0, 0, 0, 90000000))                                        pChest->SetRespawnTime(pChest->GetRespawnDelay());                            break;                    }                    break;                case TYPE_COUNTER:   m_uiTrialCounter = uiData; uiData = DONE; break;                case TYPE_EVENT:     m_uiEvent = uiData; uiData = NOT_STARTED; break;                case TYPE_EVENT_TIMER:      m_uiEventTimer = uiData; uiData = NOT_STARTED; break;                case TYPE_NORTHREND_BEASTS:                    m_uiNorthrendBeasts = uiData;                    switch (uiData)                    {                        case GORMOK_DONE:                            m_uiEvent = 200;                            SetData(TYPE_NORTHREND_BEASTS, IN_PROGRESS);                            SetData(TYPE_BEASTS, IN_PROGRESS);                            break;                        case SNAKES_IN_PROGRESS: m_uiNotOneButTwoJormungarsTimer = 0; break;                        case SNAKES_SPECIAL: m_uiNotOneButTwoJormungarsTimer = 10*IN_MILLISECONDS; break;                        case SNAKES_DONE:                            if (m_uiNotOneButTwoJormungarsTimer > 0)                                DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_WORMS_KILLED_IN_10_SECONDS);                            m_uiEvent = 300;                            SetData(TYPE_NORTHREND_BEASTS, IN_PROGRESS);                            SetData(TYPE_BEASTS, IN_PROGRESS);                            break;                        case ICEHOWL_DONE:                            m_uiEvent = 400;                            SetData(TYPE_NORTHREND_BEASTS, DONE);                            SetData(TYPE_BEASTS, DONE);                            break;                        case FAIL:                            SetData(TYPE_BEASTS, FAIL);                            break;                    }                    break;                case DATA_HEALTH_TWIN_SHARED:     m_uiDataDamageTwin = uiData; uiData = NOT_STARTED; break;                //Achievements                case DATA_SNOBOLD_COUNT:                    if (uiData == INCREASE)                        ++m_uiSnoboldCount;                    else if (uiData == DECREASE)                        --m_uiSnoboldCount;                    break;                case DATA_MISTRESS_OF_PAIN_COUNT:                    if (uiData == INCREASE)                        ++m_uiMistressOfPainCount;                    else if (uiData == DECREASE)                        --m_uiMistressOfPainCount;                    break;                case DATA_TRIBUTE_TO_IMMORTALITY_ELEGIBLE:                    m_bTributeToImmortalityElegible = false;                    break;            }            if (IsEncounterInProgress())            {                CloseDoor(GetData64(GO_EAST_PORTCULLIS));                CloseDoor(GetData64(GO_WEB_DOOR));            } else {                OpenDoor(GetData64(GO_EAST_PORTCULLIS));                OpenDoor(GetData64(GO_WEB_DOOR));            }            if (uiType < MAX_ENCOUNTERS)            {                sLog->outBasic("[ToCr] m_auiEncounter[uiType %u] %u = uiData %u;", uiType, m_auiEncounter[uiType], uiData);                if (uiData == FAIL)                {                    if (IsRaidWiped())                    {                        --m_uiTrialCounter;                        m_bNeedSave = true;                        m_uiEvent = (uiType == TYPE_BEASTS? 666 : 0);                    }                    uiData = NOT_STARTED;                }                m_auiEncounter[uiType] = uiData;                if (uiData == DONE || m_bNeedSave == true)                {                    if (Unit* pAnnouncer = instance->GetCreature(GetData64(NPC_BARRENT)))                        pAnnouncer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);                    Save();                }            }        }
开发者ID:AwkwardDev,项目名称:CataOld,代码行数:101,


示例16: SetData

        void SetData(uint32 type, uint32 data)        {            switch(type)            {            case BOSS_GRAND_CHAMPIONS:                m_auiEncounter[0] = data;                if (data == SPECIAL)                {                    for (std::list<uint64>::const_iterator itr = VehicleList.begin(); itr != VehicleList.end(); ++itr)                        if (Creature* summon = instance->GetCreature(*itr))                            summon->RemoveFromWorld();                } else if (data == IN_PROGRESS)                {                    for (uint8 i=0; i<3; i++)                        if (Creature* boss = instance->GetCreature(grandChampionGUID[i]))                            AggroAllPlayers(boss);                } else if (data == DONE)                {                    DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_ACHIEVEMENT_CHAMPIONS);                    if (Creature* announcer =  instance->GetCreature(uiAnnouncerGUID))                    {                        announcer->GetMotionMaster()->MovePoint(0, 742.742f, 630.207f, 411.172f);                        announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);                        announcer->SummonGameObject(instance->IsHeroic()? GO_CHAMPIONS_LOOT_H : GO_CHAMPIONS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);                    }                }                break;            case BOSS_ARGENT_CHALLENGE_E:                m_auiEncounter[1] = data;                if (data == DONE)                {                    if (Creature* announcer = instance->GetCreature(uiAnnouncerGUID))                    {                        DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_ACHIEVEMENT_EADRIC);                        announcer->GetMotionMaster()->MovePoint(0, 742.742f, 630.207f, 411.172f);                        announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);                        announcer->SummonGameObject(instance->IsHeroic()? GO_EADRIC_LOOT_H : GO_EADRIC_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);                    }                }                break;            case BOSS_ARGENT_CHALLENGE_P:                m_auiEncounter[2] = data;                if (data == DONE)                {                    if (Creature* announcer = instance->GetCreature(uiAnnouncerGUID))                    {                        DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_ACHIEVEMENT_PALETRESS);                        DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_ACHIEVEMENT_MEMORIES);                        announcer->GetMotionMaster()->MovePoint(0, 742.742f, 630.207f, 411.172f);                        announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);                        announcer->SummonGameObject(instance->IsHeroic()? GO_PALETRESS_LOOT_H : GO_PALETRESS_LOOT, 746.59f, 618.49f, 411.09f, 1.42f, 0, 0, 0, 0, 90000000);                    }                }                break;            case BOSS_BLACK_KNIGHT:                m_auiEncounter[3] = data;                if (data == DONE)                    DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET, SPELL_ACHIEVEMENT_BLACK_KNIGHT);                break;            case DATA_GRAND_CHAMPION_ENTRY:                for (uint8 i=0; i<3; i++)                {                    if (grandChampionEntry[i] == 0)                    {                        grandChampionEntry[i] = data;                        return;                    }                }                break;            case DATA_MEMORY_ENTRY:                memoryEntry = data;                break;            case DATA_I_VE_HAD_WORSE:                achievementHadWorse = (bool)data;                break;            }            if (type != DATA_I_VE_HAD_WORSE)            {                if (data == DONE || data == FAIL)                    HandleGameObject(GetData64(DATA_PORTCULLIS), true);                else if (data == IN_PROGRESS)                    HandleGameObject(GetData64(DATA_PORTCULLIS), false);                if (data == DONE)                    SaveToDB();            }        }
开发者ID:Havenard,项目名称:tmpFaceCore,代码行数:88,


示例17: MovementInform

    void MovementInform(Creature* creature, uint32 uiType, uint32 uiPointId)    {        if (uiType != POINT_MOTION_TYPE)            return;        switch (uiPointId)        {        case 0:            switch (creature->GetEntry())            {            case NPC_RIFTWALKER:                if (Creature* riftTarget = GetCreature(riftTargets[0]))                {                    creature->CastSpell(riftTarget, SPELL_OPEN_PORTAL_KJ, false);                    riftTarget->GetMotionMaster()->MovePoint(0, aOutroLocations[9].m_fX, aOutroLocations[9].m_fY, aOutroLocations[9].m_fZ + 13.0f);                }                break;            case NPC_SOLDIER:                if (creature->GetGUID() == soldiersGuid[0] || creature->GetGUID() == soldiersGuid[10])                    creature->SetStandState(UNIT_STAND_STATE_KNEEL);                if (Creature* portal = GetCreature(portalGuid))                    creature->SetFacingTo(creature->GetAngle(aOutroLocations[5].m_fX, aOutroLocations[5].m_fY));                break;            }            break;        case 1:            switch (creature->GetEntry())            {            case NPC_RIFTWALKER:                if (Creature* riftTarget = GetCreature(riftTargets[1]))                {                    creature->CastSpell(riftTarget, SPELL_OPEN_PORTAL_KJ, false);                    riftTarget->GetMotionMaster()->MovePoint(0, aOutroLocations[10].m_fX, aOutroLocations[10].m_fY, aOutroLocations[10].m_fZ + 13.0f);                }                break;            case NPC_CORE_ENTROPIUS:                if (Creature* pVelen = GetCreature(prophetGuid))                    pVelen->InterruptNonMeleeSpells(false);                break;            case CREATURE_PROPHET:                creature->ForcedDespawn(1000);                // Note: portal should despawn only after all the soldiers have reached this point and "teleported" outside                if (Creature* pPortal = GetCreature(portalGuid))                    pPortal->ForcedDespawn(30000);                for (uint8 i = 0; i < 2; i++)                {                    if (Creature* rift = GetCreature(riftGuid[i]))                        rift->ForcedDespawn(1000);                }                if (Creature *controller = GetCreature(GetData64(DATA_KILJAEDEN_CONTROLLER)))                    controller->ForcedDespawn(300000);                break;            }            break;        case 2:            if (creature->GetEntry() == NPC_SOLDIER)                creature->ForcedDespawn(1000);            break;        case 10:            if (creature->GetEntry() == NPC_SOLDIER)                 creature->SetFacingTo(SoldierMiddle[0].m_fO);            break;        case 11:            if (creature->GetEntry() == NPC_SOLDIER)                creature->SetFacingTo(SoldierMiddle[1].m_fO);            break;        }    }
开发者ID:Adeer,项目名称:OregonCore,代码行数:73,


示例18: SetBossState

//.........这里部分代码省略.........                                EventStage = 6000;                                uint32 tributeChest = 0;                                if (instance->GetSpawnMode() == RAID_DIFFICULTY_10MAN_HEROIC)                                {                                    if (TrialCounter >= 50)                                        tributeChest = GO_TRIBUTE_CHEST_10H_99;                                    else                                    {                                        if (TrialCounter >= 45)                                            tributeChest = GO_TRIBUTE_CHEST_10H_50;                                        else                                        {                                            if (TrialCounter >= 25)                                                tributeChest = GO_TRIBUTE_CHEST_10H_45;                                            else                                                tributeChest = GO_TRIBUTE_CHEST_10H_25;                                        }                                    }                                }                                else if (instance->GetSpawnMode() == RAID_DIFFICULTY_25MAN_HEROIC)                                {                                    if (TrialCounter >= 50)                                        tributeChest = GO_TRIBUTE_CHEST_25H_99;                                    else                                    {                                        if (TrialCounter >= 45)                                            tributeChest = GO_TRIBUTE_CHEST_25H_50;                                        else                                        {                                            if (TrialCounter >= 25)                                                tributeChest = GO_TRIBUTE_CHEST_25H_45;                                            else                                                tributeChest = GO_TRIBUTE_CHEST_25H_25;                                        }                                    }                                }                                if (tributeChest)                                    if (Creature* tirion =  instance->GetCreature(TirionGUID))                                        if (GameObject* chest = tirion->SummonGameObject(tributeChest, 805.62f, 134.87f, 142.16f, 3.27f, 0, 0, 0, 0, WEEK))                                            chest->SetRespawnTime(chest->GetRespawnDelay());                                break;                            }                            default:                                break;                        }                        break;                    default:                        break;                }                if (IsEncounterInProgress())                {                    CloseDoor(GetData64(GO_EAST_PORTCULLIS));                    CloseDoor(GetData64(GO_WEB_DOOR));                }                else                {                    OpenDoor(GetData64(GO_EAST_PORTCULLIS));                    OpenDoor(GetData64(GO_WEB_DOOR));                }                if (type < MAX_ENCOUNTERS)                {                    TC_LOG_INFO(LOG_FILTER_TSCR, "[ToCr] BossState(type %u) %u = state %u;", type, GetBossState(type), state);                    if (state == FAIL)                    {                        if (instance->IsHeroic())                        {                            --TrialCounter;                            // decrease attempt counter at wipe                            Map::PlayerList const &PlayerList = instance->GetPlayers();                            for (Map::PlayerList::const_iterator itr = PlayerList.begin(); itr != PlayerList.end(); ++itr)                                if (Player* player = itr->getSource())                                    player->SendUpdateWorldState(UPDATE_STATE_UI_COUNT, TrialCounter);                            // if theres no more attemps allowed                            if (!TrialCounter)                            {                                if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT)))                                    announcer->ToCreature()->DespawnOrUnsummon();                                if (Creature* anubArak = instance->GetCreature(GetData64(NPC_ANUBARAK)))                                    anubArak->DespawnOrUnsummon();                            }                        }                        NeedSave = true;                        EventStage = (type == BOSS_BEASTS ? 666 : 0);                        state = NOT_STARTED;                    }                    if (state == DONE || NeedSave)                    {                        if (Unit* announcer = instance->GetCreature(GetData64(NPC_BARRENT)))                            announcer->SetFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_GOSSIP);                        Save();                    }                }                return true;            }
开发者ID:Deewad,项目名称:TrinityCore,代码行数:101,


示例19: SetData

    void SetData(uint32 idx, uint32 data)    {        if (idx == SCARAB_DEATH)        {            scarabsDeaths.push_back(time(NULL));            if (scarabsDeaths.size() >= 40)            {                for (int i=0; i<(int)scarabsDeaths.size(); ++i)                {                    time_t scarab1 = scarabsDeaths[i];                    uint32 count = 0;                    for (int j=0; j<(int)scarabsDeaths.size(); ++j)                    {                        if (i == j)                            continue;                        time_t scarab2 = scarabsDeaths[j];                        if ((scarab2 > scarab1 ? scarab2 - scarab1 : scarab1 - scarab2) <= 30)                            ++count;                        if (count >= 40)                        {                            if (instance->GetSpawnMode() == 0 || instance->GetSpawnMode() == 2)                                DoCompleteAchievement(3800);                            if (instance->GetSpawnMode() == 1 || instance->GetSpawnMode() == 3)                                DoCompleteAchievement(3816);                            break;                        }                    }                    if (count >= 40)                        break;                }            }            return;        }        if (idx == UPDATE_DEATHS_COUNT)        {            ++deathsCount;            return;        }        if (idx == TIME_ACIDMAW_DEAD || idx == TIME_DREADSCALE_DEAD)        {            if (idx == TIME_ACIDMAW_DEAD)                acidmawDead = time(NULL);            if (idx == TIME_DREADSCALE_DEAD)                dreadscaleDead = time(NULL);            if (acidmawDead && dreadscaleDead)            {                time_t interval = acidmawDead >= dreadscaleDead ? acidmawDead - dreadscaleDead : dreadscaleDead - acidmawDead;                if (interval <= 10)                {                    //Not One, But Two Jormungars                    uint32 achi = 0;                    if (instance->GetSpawnMode() == 0 || instance->GetSpawnMode() == 2) //10 man normal/hero                        achi = 3936;                    else if (instance->GetSpawnMode() == 1 || instance->GetSpawnMode() == 3) //25 man normal/hero                        achi = 3937;                    if (achi)                        DoCompleteAchievement(achi);                }            }        }        if (idx != RESET_TO_FIGHT)            return;        else        {            //prevent for '--attempts' for multiple function calls (ie in case of wipe during champions fight, when function is called 6-10 times)            if (GetBossState(data) != FAIL)            {                if (attempts)                    --attempts;            }            if (data == DATA_ANUBARAK)            {                scarabsDeaths.clear();                return;            }        }        for (int i=BOSS_GORMOK; i<=BOSS_DARK_TWIN; ++i)        {            if (Creature* boss = instance->GetCreature(GetData64(i)))                boss->DespawnOrUnsummon();        }        if (Creature* gadajacy = instance->GetCreature(GetData64(GADAJACY)))        {            if (!gadajacy->isAlive())                gadajacy->Respawn(true);//.........这里部分代码省略.........
开发者ID:Jekls,项目名称:trinity,代码行数:101,


示例20: Update

    void Update(uint32 diff)    {        // KilJaeden Outro        if (m_Outrotimer <= diff)        {            switch (GetData(DATA_OUTRO_KJ))            {                case POINT_KILJAEDEN_DIE:                    // While Kil'Jaeden die                    if (Creature* Anveena = GetCreature(GetData64(DATA_ANVEENA)))                        Anveena->ForcedDespawn(); //this should already be done but let's do it again in case phase was gm rushed                    m_Outrotimer = 15000;                    SetData(DATA_OUTRO_KJ, POINT_TELEPORT_KALECGOS);                    break;                case POINT_TELEPORT_KALECGOS:                    if (Creature* pKalec = GetCreature(GetData64(DATA_KALECGOS_KJ)))                    {                        pKalec->SetVisible(true);                        pKalec->CastSpell(pKalec, SPELL_KALEC_TELEPORT, true);                        pKalec->SendMovementFlagUpdate();                    }                    if (Creature* pKJ = GetCreature(GetData64(DATA_KILJAEDEN)))                        pKJ->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE); //allow loot                    m_Outrotimer = 2000;                    SetData(DATA_OUTRO_KJ, SAY_KALECGOS_GOODBYE);                    break;                case SAY_KALECGOS_GOODBYE:                    if (Creature* pKalec = GetCreature(GetData64(DATA_KALECGOS_KJ)))                        DoScriptText(-1580090, pKalec);                    m_Outrotimer = 15000;                    SetData(DATA_OUTRO_KJ, POINT_SUMMON_SHATTERED);                    break;                case POINT_SUMMON_SHATTERED:                    if (Creature *controller = GetCreature(GetData64(DATA_KILJAEDEN_CONTROLLER)))                    {                        if (Creature* portal = controller->SummonCreature(NPC_BOSS_PORTAL, aOutroLocations[0].m_fX, aOutroLocations[0].m_fY, aOutroLocations[0].m_fZ, aOutroLocations[0].m_fO, TEMPSUMMON_CORPSE_DESPAWN, 0))                            portalGuid = portal->GetGUID();                        for (uint8 i = 1; i < 3; i++)                        {                            if (TempSummon * riftWalker = controller->SummonCreature(NPC_RIFTWALKER, aOutroLocations[i].m_fX, aOutroLocations[i].m_fY, aOutroLocations[i].m_fZ, aOutroLocations[i].m_fO, TEMPSUMMON_CORPSE_DESPAWN, 0))                            {                                riftGuid[i - 1] = riftWalker->GetGUID();                                if (i == 1)                                    riftWalker->GetMotionMaster()->MovePoint(0, aOutroLocations[7].m_fX, aOutroLocations[7].m_fY, aOutroLocations[7].m_fZ);                                else                                    riftWalker->GetMotionMaster()->MovePoint(1, aOutroLocations[8].m_fX, aOutroLocations[8].m_fY, aOutroLocations[8].m_fZ);                                if (Creature * riftTarget = controller->SummonCreature(WORLD_TRIGGER, aOutroLocations[8 + i].m_fX, aOutroLocations[8 + i].m_fY, aOutroLocations[8 + i].m_fZ, 0.0f, TEMPSUMMON_CORPSE_DESPAWN, 0))                                {                                    riftTargets[i - 1] = riftTarget->GetGUID();                                    riftTarget->SetSpeed(MOVE_RUN, 0.5f);                                }                            }                        }                    }                    m_Outrotimer = 15000;                    SetData(DATA_OUTRO_KJ, POINT_SUMMON_PORTAL);                    break;                case POINT_SUMMON_PORTAL:                    if (Creature* portal = GetCreature(portalGuid))                    {                        portal->SetDisplayId(DISPLAYID_PORTAL_OPENING);                        for (uint8 i = 0; i < 2; i++)                        {                            if (Creature* riftTarget = GetCreature(riftTargets[i]))                                riftTarget->ForcedDespawn(1000);                        }                    }                    m_Outrotimer = 500;                    SetData(DATA_OUTRO_KJ, POINT_SUMMON_PORTAL_ENDOPENANIM);                    break;                case POINT_SUMMON_PORTAL_ENDOPENANIM:                    if (Creature* portal = GetCreature(portalGuid))                        portal->SetStandState(UNIT_STAND_STATE_SIT); //this smoothly stop the explosion effect and just let the smokes continues                    m_Outrotimer = 3500;                    SetData(DATA_OUTRO_KJ, POINT_SUMMON_SOLDIERS_RIGHT);                    break;                case POINT_SUMMON_SOLDIERS_RIGHT:                    for (uint8 i = 0; i < 2; i++)                    {                        if (Creature* rift = GetCreature(riftGuid[i]))                        {                            rift->RemoveAurasDueToSpell(SPELL_OPEN_PORTAL_KJ);                            rift->InterruptNonMeleeSpells(false);                        }                    }                    if (Creature *controller = GetCreature(GetData64(DATA_KILJAEDEN_CONTROLLER)))                    {                        for (uint8 i = 0; i < 10; i++)                        {                            if (TempSummon *soldier = controller->SummonCreature(NPC_SOLDIER, SoldierLocations[i].m_fX, SoldierLocations[i].m_fY, SoldierLocations[i].m_fZ, SoldierLocations[i].m_fO, TEMPSUMMON_CORPSE_DESPAWN, 0))//.........这里部分代码省略.........
开发者ID:Adeer,项目名称:OregonCore,代码行数:101,


示例21: switch

void instance_naxxramas::SetData(uint32 uiType, uint32 uiData){    switch(uiType)    {        case TYPE_ANUB_REKHAN:            m_auiEncounter[0] = uiData;            DoUseDoorOrButton(m_uiAnubDoorGUID);            if (uiData == DONE)                DoUseDoorOrButton(m_uiAnubGateGUID);            break;		case DATA_HEIGAN_ERUPT:            HeiganErupt(uiData);			break;		case TYPE_ENR_FAERLINA:			if(Creature* Faerlina = instance->GetCreature(GetData64(NPC_FAERLINA)))			{				Faerlina->RemoveAurasDueToSpell(54100);				Faerlina->RemoveAurasDueToSpell(28798);				Faerlina->CastSpell(Faerlina,28732,false);				break;			}        case TYPE_FAERLINA:            if (uiData == SPECIAL)                          // Used to inform about failed special achievement            {                return;            }            DoUseDoorOrButton(m_uiFaerWebGUID);            if (uiData == DONE)            {                DoUseDoorOrButton(m_uiFaerDoorGUID);                DoUseDoorOrButton(m_uiMaexOuterGUID);            }            if (uiData == FAIL)            {                for (std::list<uint64>::const_iterator itr = m_lFaerlinaAddGUIDs.begin(); itr != m_lFaerlinaAddGUIDs.end(); ++itr)                {                    Creature* pAdd = instance->GetCreature(*itr);                    if (pAdd && !pAdd->isAlive())                        pAdd->Respawn();                }            }            m_auiEncounter[1] = uiData;            break;        case TYPE_MAEXXNA:            m_auiEncounter[2] = uiData;            DoUseDoorOrButton(m_uiMaexInnerGUID, uiData);            if (uiData == DONE)            {                DoUseDoorOrButton(m_uiAracEyeRampGUID);                DoRespawnGameObject(m_uiAracPortalGUID, 30*MINUTE);                DoTaunt();            }            break;        case TYPE_NOTH:            m_auiEncounter[3] = uiData;            DoUseDoorOrButton(m_uiNothEntryDoorGUID);            if (uiData == DONE)            {                DoUseDoorOrButton(m_uiNothExitDoorGUID);                DoUseDoorOrButton(m_uiHeigEntryDoorGUID);            }            break;        case TYPE_HEIGAN:            m_auiEncounter[4] = uiData;            DoUseDoorOrButton(m_uiHeigEntryDoorGUID);            if (uiData == DONE)                DoUseDoorOrButton(m_uiHeigExitDoorGUID);            break;        case TYPE_LOATHEB:            m_auiEncounter[5] = uiData;            DoUseDoorOrButton(m_uiLoathebDoorGUID);            if (uiData == DONE)            {                DoUseDoorOrButton(m_uiPlagEyeRampGUID);                DoRespawnGameObject(m_uiPlagPortalGUID, 30*MINUTE);                DoTaunt();            }            break;        case TYPE_RAZUVIOUS:            m_auiEncounter[6] = uiData;            break;        case TYPE_GOTHIK:            switch(uiData)            {                case IN_PROGRESS:                    DoUseDoorOrButton(m_uiGothikEntryDoorGUID);                    DoUseDoorOrButton(m_uiGothCombatGateGUID);                    break;                case SPECIAL:                    DoUseDoorOrButton(m_uiGothCombatGateGUID);                    break;                case FAIL:                    if (m_auiEncounter[7] == IN_PROGRESS)                        DoUseDoorOrButton(m_uiGothCombatGateGUID);                    DoUseDoorOrButton(m_uiGothikEntryDoorGUID);                    break;                case DONE:                    DoUseDoorOrButton(m_uiGothikEntryDoorGUID);                    DoUseDoorOrButton(m_uiGothikExitDoorGUID);//.........这里部分代码省略.........
开发者ID:AwkwardDev,项目名称:MangosFX,代码行数:101,


示例22: SetData

//.........这里部分代码省略.........                HandleGameObject(portGauntletGUID, true);                debug_log("TSCR: Instance Stratholme: Slaugther event will continue in 5 minutes.");            }            if (data == DONE)            {                SlaugtherSquare_Timer = 10000;                debug_log("TSCR: Instance Stratholme: Skeletons died, slaughter event will continue");            }            if (data == FAIL)            {                HandleGameObject(portGauntletGUID, true);                data = SPECIAL;            }            Encounter[4] = data;            break;        case TYPE_BARON:            if (data == IN_PROGRESS)            {                if (GetData(TYPE_BARON_RUN) == IN_PROGRESS)                {                    if (Unit *t = Unit::GetUnit(*player, ysidaTriggerGUID))                        t->SummonCreature(C_YSIDA,t->GetPositionX(),t->GetPositionY(),t->GetPositionZ(),t->GetOrientation(),TEMPSUMMON_TIMED_DESPAWN,1800000);                    if (Group *pGroup = player->GetGroup())                    {                        for(GroupReference *itr = pGroup->GetFirstMember(); itr != NULL; itr = itr->next())                        {                            Player* pGroupie = itr->getSource();                            if (!pGroupie)                                continue;                            if (pGroupie->HasAura(SPELL_BARON_ULTIMATUM,0))                                pGroupie->RemoveAurasDueToSpell(SPELL_BARON_ULTIMATUM);                                                        if (pGroupie->GetQuestStatus(QUEST_DEAD_MAN_PLEA) == QUEST_STATUS_INCOMPLETE)                            {                                pGroupie->CastedCreatureOrGO(C_YSIDA, ysidaGUID,0);                                pGroupie->AreaExploredOrEventHappens(QUEST_DEAD_MAN_PLEA);                            }                        }                    } else if (player->HasAura(SPELL_BARON_ULTIMATUM,0))                        player->RemoveAurasDueToSpell(SPELL_BARON_ULTIMATUM);                    if (Unit *temp = Unit::GetUnit(*player,GetData64(DATA_BARON)))                    {                        player->CastedCreatureOrGO(C_YSIDA, ysidaGUID,0);                        player->AreaExploredOrEventHappens(QUEST_DEAD_MAN_PLEA);                    }                    SetData(TYPE_BARON_RUN,DONE);                }            }            if (data == DONE)            {                HandleGameObject(portGauntletGUID, true);            }            if (Encounter[5] != DONE)                Encounter[5] = data;            break;        case TYPE_SH_AELMAR:            IsSilverHandDead[0] = (data) ? true : false;            break;        case TYPE_SH_CATHELA:            IsSilverHandDead[1] = (data) ? true : false;            break;        case TYPE_SH_GREGOR:            IsSilverHandDead[2] = (data) ? true : false;            break;        case TYPE_SH_NEMAS:            IsSilverHandDead[3] = (data) ? true : false;            break;        case TYPE_SH_VICAR:            IsSilverHandDead[4] = (data) ? true : false;            break;        case TYPE_GAUNTLET_MOB:            if (data != 1)                break;            if (GetData(TYPE_NERUB) != DONE && std::none_of(acolyte2GUID.begin(),acolyte2GUID.end(),[this](uint64 guid)-> bool {Creature *c = GetCreature(guid) ; return c ? c->isAlive():false;}))            {                Creature *c = GetCreature(CrystalsGUID[1]);                if(c && c->isAlive())                    c->Kill(c,false);                SetData(TYPE_NERUB,DONE);            }            if (GetData(TYPE_BARONESS) != DONE && std::none_of(acolyte1GUID.begin(),acolyte1GUID.end(),[this](uint64 guid)-> bool {Creature *c = GetCreature(guid) ; return c ? c->isAlive():false;}))            {                Creature *c = GetCreature(CrystalsGUID[0]);                if(c && c->isAlive())                    c->Kill(c,false);                SetData(TYPE_BARONESS,DONE);            }            if (GetData(TYPE_PALLID) != DONE && std::none_of(acolyte3GUID.begin(),acolyte3GUID.end(),[this](uint64 guid)-> bool {Creature *c = GetCreature(guid) ; return c ? c->isAlive():false;}))            {                Creature *c = GetCreature(CrystalsGUID[2]);                if(c && c->isAlive())                    c->Kill(c,false);                SetData(TYPE_PALLID,DONE);            }        }    }
开发者ID:ekzobam,项目名称:HGCore,代码行数:101,


示例23: OnPlayerEnter

        void OnPlayerEnter(Player* plr)        {            instance->LoadGrid(LeaderIntroPos.GetPositionX(), LeaderIntroPos.GetPositionY());            if (Creature* c = instance->GetCreature(GetData64(DATA_LEADER_FIRST_GUID)))	    	c->AI()->SetData(DATA_START_INTRO, 0);        }
开发者ID:boom8866,项目名称:azerothcore-wotlk,代码行数:6,


示例24: SetData

//.........这里部分代码省略.........                        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_ZONE);							DoUpdateWorldState(WORLDSTATE_SHOW_CRATES, 0);							if(Creature* crier = instance->GetCreature(_lordaeronCrierGUID))								crier->YellToZone(-1595053, LANG_UNIVERSAL, 0);						}                        break;                    case DATA_TRANSFORM_CITIZENS:                        switch(data)                        {                            case SPECIAL: // Respawn Zombies                                while(!_zombiesList.empty())                                {                                    Creature* summon = instance->GetCreature(*_zombiesList.begin());                                    if(!summon)                                        _zombiesList.erase(_zombiesList.begin());                                    else                                    {                                        _zombiesList.erase(_zombiesList.begin());                                        if(TempSummon* summ = summon->ToTempSummon())                                        {                                            summon->DestroyForNearbyPlayers();                                            summ->UnSummon();                                        }                                        else                                            summon->DisappearAndDie();                                    }                                }                            case IN_PROGRESS: // Transform Citizens                                for(std::list<uint64>::iterator itr = _citizensList.begin(); itr != _citizensList.end(); ++itr)                                    if(Creature* citizen = instance->GetCreature((*itr)))                                    {                                        if(Creature* arthas = instance->GetCreature(GetData64(DATA_ARTHAS)))                                            if(Creature* risenZombie = arthas->SummonCreature(NPC_ZOMBIE, citizen->GetPositionX(), citizen->GetPositionY(), citizen->GetPositionZ(), citizen->GetOrientation())) //, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 5000))											{                                                _zombiesList.push_back(risenZombie->GetGUID());												risenZombie->SetRespawnTime(60);												risenZombie->GetMotionMaster()->MoveRandom(10.0f);											}                                        citizen->SetPhaseMask(2, true);                                    }                                break;                        }                        break;                    case DATA_ZOMBIEFEST:                        if(!instance->IsHeroic() || GetData(DATA_ZOMBIEFEST) == DONE)                            break;                        switch(data)                        {                            case DONE:                                //DoCompleteAchievement(ACHIEVEMENT_ZOMBIEFEST);                                _zombieFest = data;                                break;                            case IN_PROGRESS:                                _zombieFest = data;                                break;                            case FAIL:                                _killedZombieCount = 0;                                _zombieTimer = 60000;                                _zombieFest = data;                               DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_CREATURE, ACHIEVEMENT_ZOMBIEFEST);                                break;                            case SPECIAL:                                _killedZombieCount++;								DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, 27737, 1);                                if(_killedZombieCount == 1)								{                                    SetData(DATA_ZOMBIEFEST, IN_PROGRESS);									DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_CREATURE, ACHIEVEMENT_ZOMBIEFEST);								}                                else if(_killedZombieCount >= 100 && GetData(DATA_ZOMBIEFEST) == IN_PROGRESS)                                    SetData(DATA_ZOMBIEFEST, DONE);                                //else                                //{                                    //if(_killedZombieCount%10 == 0);                                //}                                break;                        }                        break;                    case DATA_ARTHAS_STEP:                        _artasStepUi = data;                        return;                    case DATA_SKIP:                        _skipUi = data;                }                if (data == DONE)                    SaveToDB();            }
开发者ID:mryanlam,项目名称:Old-TrinityCore-Project-Script.me-,代码行数:101,


示例25: SetData

    void SetData(uint32 uiType, uint32 uiData)    {        switch(uiType)        {        case TYPE_STAGE:    m_auiEncounter[0] = uiData; break;        case TYPE_BEASTS:   m_auiEncounter[1] = uiData; break;        case TYPE_JARAXXUS: m_auiEncounter[2] = uiData; break;        case TYPE_CRUSADERS:if (uiData == FAIL && (m_auiEncounter[3] == FAIL || m_auiEncounter[3] == NOT_STARTED))                            m_auiEncounter[3] = NOT_STARTED;                            else                                m_auiEncounter[3] = uiData;                            if (uiData == DONE)                             {                               if (GameObject* pChest = GetSingleGameObjectFromStorage(m_uiCrusadersCache))                                   if (pChest && !pChest->isSpawned())                                         pChest->SetRespawnTime(7*DAY);                            };                            break;        case TYPE_CRUSADERS_COUNT:  if (uiData == 0) --m_auiCrusadersCount;                                         else m_auiCrusadersCount = uiData;                                    break;        case TYPE_VALKIRIES: if (m_auiEncounter[4] == SPECIAL && uiData == SPECIAL) uiData = DONE;                             m_auiEncounter[4] = uiData; break;        case TYPE_LICH_KING: m_auiEncounter[5] = uiData; break;        case TYPE_ANUBARAK:  m_auiEncounter[6] = uiData;                             if (uiData == DONE) {                            if (Difficulty == RAID_DIFFICULTY_10MAN_HEROIC)                            {                                if ( m_auiEncounter[7] >= 25) m_uiTributeChest1 = GO_TRIBUTE_CHEST_10H_25;                                if ( m_auiEncounter[7] >= 45) m_uiTributeChest2 = GO_TRIBUTE_CHEST_10H_45;                                if ( m_auiEncounter[7] >= 49) m_uiTributeChest3 = GO_TRIBUTE_CHEST_10H_50;                                m_uiTributeChest4 = GO_TRIBUTE_CHEST_10H_99;                            }                            if (Difficulty == RAID_DIFFICULTY_25MAN_HEROIC){                                if ( m_auiEncounter[7] >= 25) m_uiTributeChest1 = GO_TRIBUTE_CHEST_25H_25;                                if ( m_auiEncounter[7] >= 45) m_uiTributeChest2 = GO_TRIBUTE_CHEST_25H_45;                                if ( m_auiEncounter[7] >= 49) m_uiTributeChest3 = GO_TRIBUTE_CHEST_25H_50;                                m_uiTributeChest4 = GO_TRIBUTE_CHEST_25H_99;                            }                            // Attention! It is (may be) not off-like, but  spawning all Tribute Chests is real                            // reward for clearing TOC instance                            if (m_uiTributeChest1)                              if (GameObject* pChest1 = GetSingleGameObjectFromStorage(m_uiTributeChest1))                                if (pChest1 && !pChest1->isSpawned()) pChest1->SetRespawnTime(7*DAY);                            if (m_uiTributeChest2)                              if (GameObject* pChest2 = GetSingleGameObjectFromStorage(m_uiTributeChest2))                                if (pChest2 && !pChest2->isSpawned()) pChest2->SetRespawnTime(7*DAY);                            if (m_uiTributeChest3)                              if (GameObject* pChest3 = GetSingleGameObjectFromStorage(m_uiTributeChest3))                                if (pChest3 && !pChest3->isSpawned()) pChest3->SetRespawnTime(7*DAY);                            if (m_uiTributeChest4)                              if (GameObject* pChest4 = GetSingleGameObjectFromStorage(m_uiTributeChest4))                                if (pChest4 && !pChest4->isSpawned()) pChest4->SetRespawnTime(7*DAY);                            };        break;        case TYPE_COUNTER:   m_auiEncounter[7] = uiData; uiData = DONE; break;        case TYPE_EVENT:     m_auiEncounter[8] = uiData; uiData = NOT_STARTED; break;        case TYPE_EVENT_TIMER:      m_auiEventTimer = uiData; uiData = NOT_STARTED; break;        case TYPE_NORTHREND_BEASTS: m_auiNorthrendBeasts = uiData; break;        case DATA_HEALTH_FJOLA:     m_uiDataDamageFjola = uiData; uiData = NOT_STARTED; break;        case DATA_HEALTH_EYDIS:     m_uiDataDamageEydis = uiData; uiData = NOT_STARTED; break;        case DATA_CASTING_VALKYRS:  m_uiValkyrsCasting = uiData; uiData = NOT_STARTED; break;        }        if (IsEncounterInProgress())         {            DoCloseDoor(GetData64(GO_WEST_PORTCULLIS));            DoCloseDoor(GetData64(GO_NORTH_PORTCULLIS));//            DoCloseDoor(GetData64(GO_SOUTH_PORTCULLIS));        }        else        {            DoOpenDoor(GetData64(GO_WEST_PORTCULLIS));            DoOpenDoor(GetData64(GO_NORTH_PORTCULLIS));//            DoOpenDoor(GetData64(GO_SOUTH_PORTCULLIS));        };        if (uiData == FAIL && uiType != TYPE_STAGE                           && uiType != TYPE_EVENT                           && uiType != TYPE_COUNTER                           && uiType != TYPE_EVENT_TIMER)        { if (IsRaidWiped()) { --m_auiEncounter[7];                               needsave = true;                             }                               uiData = NOT_STARTED;        }        if ((uiData == DONE && uiType != TYPE_STAGE                           && uiType != TYPE_EVENT                           && uiType != TYPE_EVENT_TIMER)                           || needsave == true)        {            OUT_SAVE_INST_DATA;            std::ostringstream saveStream;            for(uint8 i = 0; i < MAX_ENCOUNTERS; ++i)                saveStream << m_auiEncounter[i] << " ";            m_strInstData = saveStream.str();//.........这里部分代码省略.........
开发者ID:Iov,项目名称:scriptdev2,代码行数:101,



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


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