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

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

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

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

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

示例1: EnterCombat

 void EnterCombat(Unit* /*who*/) override {     _EnterCombat();     Talk(SAY_AGGRO);     balconyCount = 0;     EnterPhaseGround(); }
开发者ID:Aravu,项目名称:Talador-Project,代码行数:7,


示例2: DamageTaken

 void DamageTaken(Unit* pKiller, uint32 &damage) {     if (((me->GetHealth()*100)/me->GetMaxHealth()) < 50 && WasUnder == false)     {         WasUnder = true;         EnterPhaseGround();     } }
开发者ID:Exodius,项目名称:Atlantiss,代码行数:8,


示例3: EnterToBattle

        void EnterToBattle(Unit* /*who*/)        {            _EnterToBattle();            DoSendQuantumText(RAND(SAY_AGGRO_1, SAY_AGGRO_2, SAY_AGGRO_3), me);            balconyCount = 0;            EnterPhaseGround();        }
开发者ID:boom8866,项目名称:new,代码行数:8,


示例4: EnterCombat

		void EnterCombat(Unit * /*who*/) {			_EnterCombat();			me->CastSpell(me, SPELL_FROST_AURA, true);			events.ScheduleEvent(EVENT_BERSERK, 15 * 60000);			EnterPhaseGround();			CheckPlayersFrostResist();		}
开发者ID:dsstest,项目名称:ArkCORE,代码行数:10,


示例5: EnterCombat

            void EnterCombat(Unit* /*who*/) override            {                _EnterCombat();                me->CastSpell(me, SPELL_FROST_AURA, true);                events.ScheduleEvent(EVENT_BERSERK, 15 * MINUTE * IN_MILLISECONDS);                EnterPhaseGround();                CheckPlayersFrostResist();            }
开发者ID:AllThing,项目名称:TrinityCore,代码行数:11,


示例6: EnterCombat

		void EnterCombat(Unit* /*who*/) override		{			_EnterCombat();			me->CastSpell(me, SPELL_FROST_AURA, true);			DoCast(me, SPELL_CHECK_RESISTS);			events.ScheduleEvent(EVENT_CHECK_RESISTS, 30 * IN_MILLISECONDS);			events.ScheduleEvent(EVENT_BERSERK, 15 * MINUTE * IN_MILLISECONDS);			EnterPhaseGround();		}
开发者ID:FixCore,项目名称:335source,代码行数:11,


示例7: EnterCombat

            void EnterCombat(Unit* /*who*/) override            {                _EnterCombat();                me->CastSpell(me, SPELL_FROST_AURA, true);                events.SetPhase(PHASE_GROUND);                events.ScheduleEvent(EVENT_CHECK_RESISTS, Seconds(0));                events.ScheduleEvent(EVENT_BERSERK, Minutes(15));                EnterPhaseGround(true);            }
开发者ID:Declipe,项目名称:ElunaTrinityWotlk,代码行数:11,


示例8: EnterCombat

        void EnterCombat(Unit* /*who*/)        {            EnterPhaseGround();            applySound();            Talk(SAY_AGGRO);            m_uiPowerTimer = 1000;            if(me->GetMap()->IsHeroic())            {                me->SummonCreature(NPC_NEFARIAN_HELPER_HEROIC, 154.228f, -250.653f, 74.944f, 1.377f, TEMPSUMMON_MANUAL_DESPAWN);                events.ScheduleEvent(EVENT_AGGRO_NEF, 8000, PHASE_GROUND);            }            if (instance)            {                instance->SetBossState(DATA_ATRAMEDES, IN_PROGRESS);                instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me); // Add            }            _EnterCombat();        }
开发者ID:sunshitwowsucks,项目名称:ArkCORE-NG,代码行数:21,


示例9: UpdateAI

//.........这里部分代码省略.........						events.ScheduleEvent(EVENT_DRAIN, 24 * IN_MILLISECONDS, 0, PHASE_GROUND);						return;					case EVENT_BLIZZARD:					{						if (Creature* summon = DoSummon(NPC_BLIZZARD, me, 0.0f, urand(25, 30) * IN_MILLISECONDS, TEMPSUMMON_TIMED_DESPAWN))							summon->GetMotionMaster()->MoveRandom(40);						events.ScheduleEvent(EVENT_BLIZZARD, RAID_MODE(20, 7) * IN_MILLISECONDS, 0, PHASE_GROUND);						break;					}					case EVENT_FLIGHT:						if (HealthAbovePct(10))						{							_phase = PHASE_FLIGHT;							events.SetPhase(PHASE_FLIGHT);							me->SetReactState(REACT_PASSIVE);							me->AttackStop();							float x, y, z, o;							me->GetHomePosition(x, y, z, o);							me->GetMotionMaster()->MovePoint(1, x, y, z);							return;						}						break;					}				}				DoMeleeAttackIfReady();			}			else			{				if (uint32 eventId = events.ExecuteEvent())				{					switch (eventId)					{					case EVENT_CHECK_RESISTS:						DoCast(me, SPELL_CHECK_RESISTS);						events.ScheduleEvent(EVENT_CHECK_RESISTS, 30 * IN_MILLISECONDS);						return;					case EVENT_LIFTOFF:						Talk(EMOTE_AIR_PHASE);						me->SetDisableGravity(true);						me->SetHover(true);						events.ScheduleEvent(EVENT_ICEBOLT, 1500);						_iceboltCount = RAID_MODE(2, 3);						return;					case EVENT_ICEBOLT:					{						std::vector<Unit*> targets;						std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();						for (; i != me->getThreatManager().getThreatList().end(); ++i)							if ((*i)->getTarget()->GetTypeId() == TYPEID_PLAYER && !(*i)->getTarget()->HasAura(SPELL_ICEBOLT))								targets.push_back((*i)->getTarget());						if (targets.empty())							_iceboltCount = 0;						else						{							std::vector<Unit*>::const_iterator itr = targets.begin();							advance(itr, rand32() % targets.size());							_iceblocks.insert(std::make_pair((*itr)->GetGUID(), ObjectGuid::Empty));							DoCast(*itr, SPELL_ICEBOLT);							--_iceboltCount;						}						if (_iceboltCount)							events.ScheduleEvent(EVENT_ICEBOLT, 1 * IN_MILLISECONDS);						else							events.ScheduleEvent(EVENT_BREATH, 1 * IN_MILLISECONDS);						return;					}					case EVENT_BREATH:					{						Talk(EMOTE_BREATH);						DoCastAOE(SPELL_FROST_MISSILE);						events.ScheduleEvent(EVENT_EXPLOSION, 8 * IN_MILLISECONDS);						return;					}					case EVENT_EXPLOSION:						CastExplosion();						ClearIceBlock();						events.ScheduleEvent(EVENT_LAND, 3 * IN_MILLISECONDS);						return;					case EVENT_LAND:						me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);						Talk(EMOTE_GROUND_PHASE);						me->SetHover(false);						me->SetDisableGravity(false);						events.ScheduleEvent(EVENT_GROUND, 1500);						return;					case EVENT_GROUND:						EnterPhaseGround();						return;					case EVENT_BIRTH:						me->SetVisible(true);						me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);						me->SetReactState(REACT_AGGRESSIVE);						return;					}				}			}		}
开发者ID:FixCore,项目名称:335source,代码行数:101,


示例10: UpdateAI

//.........这里部分代码省略.........                            events.ScheduleEvent(EVENT_TAIL, 5000+rand()%10000, 0, PHASE_GROUND);                            return;                        case EVENT_DRAIN:                            DoCastAOE(SPELL_LIFE_DRAIN);                            events.ScheduleEvent(EVENT_DRAIN, 24000, 0, PHASE_GROUND);                            return;                        case EVENT_BLIZZARD:                        {                            //DoCastAOE(SPELL_SUMMON_BLIZZARD);                            if (Creature* summon = DoSummon(MOB_BLIZZARD, me, 0.0f, urand(25000, 30000), TEMPSUMMON_TIMED_DESPAWN))                                summon->GetMotionMaster()->MoveRandom(40);                            events.ScheduleEvent(EVENT_BLIZZARD, RAID_MODE(20000, 7000), 0, PHASE_GROUND);                            break;                        }                        case EVENT_FLIGHT:                            if (HealthAbovePct(10))                            {                                phase = PHASE_FLIGHT;                                events.SetPhase(PHASE_FLIGHT);                                me->SetReactState(REACT_PASSIVE);                                me->AttackStop();                                float x, y, z, o;                                me->GetHomePosition(x, y, z, o);                                me->GetMotionMaster()->MovePoint(1, x, y, z);                                return;                            }                            break;                    }                }                DoMeleeAttackIfReady();            }            else            {                if (uint32 eventId = events.ExecuteEvent())                {                    switch (eventId)                    {                        case EVENT_LIFTOFF:                            me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);                            me->SetLevitate(true);                            me->SendMovementFlagUpdate();                            events.ScheduleEvent(EVENT_ICEBOLT, 1500);                            iceboltCount = RAID_MODE(2, 3);                            return;                        case EVENT_ICEBOLT:                        {                            std::vector<Unit*> targets;                            std::list<HostileReference*>::const_iterator i = me->getThreatManager().getThreatList().begin();                            for (; i != me->getThreatManager().getThreatList().end(); ++i)                                if ((*i)->getTarget()->GetTypeId() == TYPEID_PLAYER && !(*i)->getTarget()->HasAura(SPELL_ICEBOLT))                                    targets.push_back((*i)->getTarget());                            if (targets.empty())                                iceboltCount = 0;                            else                            {                                std::vector<Unit*>::const_iterator itr = targets.begin();                                advance(itr, rand()%targets.size());                                iceblocks.insert(std::make_pair((*itr)->GetGUID(), 0));                                DoCast(*itr, SPELL_ICEBOLT);                                --iceboltCount;                            }                            if (iceboltCount)                                events.ScheduleEvent(EVENT_ICEBOLT, 1000);                            else                                events.ScheduleEvent(EVENT_BREATH, 1000);                            return;                        }                        case EVENT_BREATH:                        {                            DoScriptText(EMOTE_BREATH, me);                            DoCastAOE(SPELL_FROST_MISSILE);                            events.ScheduleEvent(EVENT_EXPLOSION, 8000);                            return;                        }                        case EVENT_EXPLOSION:                            CastExplosion();                            ClearIceBlock();                            events.ScheduleEvent(EVENT_LAND, 3000);                            return;                        case EVENT_LAND:                            me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);                            me->SetLevitate(false);                            me->SendMovementFlagUpdate();                            events.ScheduleEvent(EVENT_GROUND, 1500);                            return;                        case EVENT_GROUND:                            EnterPhaseGround();                            return;                        case EVENT_BIRTH:                            me->SetVisible(true);                            me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);                            me->SetReactState(REACT_AGGRESSIVE);                            return;                    }                }//if (uint32 eventId = events.ExecuteEvent())            }//if (phase == PHASE_GROUND)        }
开发者ID:Asandru,项目名称:Script-Land,代码行数:101,


示例11: UpdateAI

        void UpdateAI(const uint32 diff)        {            if (!UpdateVictim() || me->HasUnitState(UNIT_STATE_CASTING))                return;            if (Creature* Onyxia = me->FindNearestCreature(NPC_ONYXIA, 150.0f, true))                if (Onyxia && !Onyxia->isInCombat() && said == false)                {                    Talk(SAY_AVOID_WIPE);                    said = true;                }            if (phase == PHASE_GROUND && m_uiDistanceCheckTimer <= diff)            {                if (me->FindNearestCreature(NPC_ONYXIA, 50.0f, true) && onyxiaAlive && !me->HasAura(SPELL_CHILDREN_OF_DEATHWING_ONY))                    me->AddAura(SPELL_CHILDREN_OF_DEATHWING_ONY, me);                else if (!me->FindNearestCreature(NPC_ONYXIA, 50.0f, true) && onyxiaAlive)                    if(me->HasAura(SPELL_CHILDREN_OF_DEATHWING_ONY))                       me->RemoveAura(SPELL_CHILDREN_OF_DEATHWING_ONY);                m_uiDistanceCheckTimer = 5000;            }            else m_uiDistanceCheckTimer -= diff;            if (phase == PHASE_GROUND && m_uiOnyxiaCheckTimer <= diff && !secondPhase)            {                if (me->FindNearestCreature(NPC_ONYXIA, 150.0f, true))                    onyxiaAlive = true;                else                {                    onyxiaAlive = false;                    Talk(SAY_AIR_PHASE);                    if(me->HasAura(SPELL_CHILDREN_OF_DEATHWING_ONY))                       me->RemoveAura(SPELL_CHILDREN_OF_DEATHWING_ONY);                    events.ScheduleEvent(EVENT_LIFTOFF, 5000, PHASE_GROUND);                    secondPhase = true;                }                m_uiOnyxiaCheckTimer = 5000;            }            else m_uiOnyxiaCheckTimer -= diff;            if (phase == PHASE_FLIGHT && m_uiChromaticCheckTimer <= diff && !finalPhase)            {                if (!me->FindNearestCreature(NPC_CHROMATIC_PROTO, 150.0f, true))                    events.ScheduleEvent(EVENT_LAND, 2000, PHASE_FLIGHT);                finalPhase = true;                m_uiChromaticCheckTimer = 5000;            }            else m_uiChromaticCheckTimer -= diff;            events.Update(diff);            while (uint32 eventId = events.ExecuteEvent())            {                switch (eventId)                {                    case EVENT_ELECTROCUTE:                        if(electrocute == true)                        {                            DoCast(me, SPELL_ELECTROCUTE);                            electrocute = false;                        }                        break;                    case EVENT_INTRO:                        me->HandleEmote(EMOTE_ONESHOT_LIFTOFF);                        me->SetDisableGravity(true);                        me->SendMovementFlagUpdate();                        me->SetByteFlag(UNIT_FIELD_BYTES_1, 3, 0x02);                        me->GetMotionMaster()->MovePoint(1, -126.518f, -233.342f, 36.358f); // Position on top of raid.                        break;                    case EVENT_INTRO2:                        Talk(SAY_AGGRO);                        events.ScheduleEvent(EVENT_HAIL_OF_BONES, 100);                        break;                    case EVENT_HAIL_OF_BONES:                        DoCast(me, SPELL_HAIL_OF_BONES);                        break;                    case EVENT_MOVE:                        me->GetMotionMaster()->MovePoint(1, -100.123f, -221.522f, 7.156f); // Move down.                        events.ScheduleEvent(EVENT_LANDING, 8000);                                                break;                                case EVENT_LANDING:                        me->HandleEmote(EMOTE_ONESHOT_LAND);                        me->RemoveByteFlag(UNIT_FIELD_BYTES_1, 3, 0x02);                        me->SetDisableGravity(false);                        me->SendMovementFlagUpdate();                        EnterPhaseGround();                        me->GetMotionMaster()->MoveChase(me->GetVictim());                        me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);                        break;                    case EVENT_SHADOWFLAME_BREATH:                        Talk(SAY_SHADOWFLAME);//.........这里部分代码省略.........
开发者ID:Cryostorm,项目名称:WowSource434,代码行数:101,


示例12: EnterCombat

 void EnterCombat(Unit * /*who*/) {     EnterPhaseGround();     DoScriptText(SAY_AGGRO, me); }
开发者ID:ProjectStarGate,项目名称:StarGate-Plus-EMU,代码行数:5,


示例13: UpdateAI

        void UpdateAI(uint32 diff) override        {            if (!UpdateVictim())                return;            events.Update(diff);            if (me->HasUnitState(UNIT_STATE_CASTING))                return;            while (uint32 eventId = events.ExecuteEvent())            {                switch (eventId)                {                    case EVENT_CURSE:                    {                        DoCastAOE(SPELL_CURSE);                        events.ScheduleEvent(EVENT_CURSE, urand(50, 70) * IN_MILLISECONDS, 0, PHASE_GROUND);                        break;                    }                    case EVENT_WARRIOR:                        Talk(SAY_SUMMON);                        Talk(EMOTE_SUMMON);                                                CastSummon(RAID_MODE(2, 3), 0, 0);                        events.ScheduleEvent(EVENT_WARRIOR, 40 * IN_MILLISECONDS, 0, PHASE_GROUND);                        break;                    case EVENT_BLINK:                        DoCastAOE(SPELL_CRIPPLE, true);                        DoCastAOE(SPELL_BLINK);                        DoResetThreat();                        justBlinked = true;                        events.ScheduleEvent(EVENT_BLINK, 40000, 0, PHASE_GROUND);                        break;                    case EVENT_BALCONY:                        events.SetPhase(PHASE_BALCONY);                        me->SetReactState(REACT_PASSIVE);                        me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);                        me->AttackStop();                        me->StopMoving();                        me->RemoveAllAuras();                        events.ScheduleEvent(EVENT_BALCONY_TELEPORT, 3 * IN_MILLISECONDS, 0, PHASE_BALCONY);                        events.ScheduleEvent(EVENT_WAVE, urand(5 * IN_MILLISECONDS, 8 * IN_MILLISECONDS), 0, PHASE_BALCONY);                        uint8 secondsBalcony;                        switch (balconyCount)                        {                            case 0:                                secondsBalcony = 70;                                break;                            case 1:                                secondsBalcony = 97;                                break;                            case 2:                            default:                                secondsBalcony = 120;                                break;                        }                        events.ScheduleEvent(EVENT_GROUND, secondsBalcony * IN_MILLISECONDS, 0, PHASE_BALCONY);                        break;                    case EVENT_BALCONY_TELEPORT:                        Talk(EMOTE_TELEPORT_1);                        DoCastAOE(SPELL_TELEPORT);                        break;                    case EVENT_WAVE:                        Talk(EMOTE_SUMMON_WAVE);                        switch (balconyCount)                        {                            case 0:                                CastSummon(0, RAID_MODE(2, 4), 0);                                break;                            case 1:                                CastSummon(0, RAID_MODE(1, 2), RAID_MODE(1, 2));                                break;                            case 2:                                CastSummon(0, 0, RAID_MODE(2, 4));                                break;                            default:                                CastSummon(0, RAID_MODE(5, 10), RAID_MODE(5, 10));                                break;                        }                        events.ScheduleEvent(EVENT_WAVE, urand(30, 45) * IN_MILLISECONDS, 0, PHASE_BALCONY);                        break;                    case EVENT_GROUND:                        ++balconyCount;                                                DoCastAOE(SPELL_TELEPORT_BACK);                        Talk(EMOTE_TELEPORT_2);                        EnterPhaseGround();                        break;                    case EVENT_GROUND_ATTACKABLE:                        me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_NOT_SELECTABLE);                        me->SetReactState(REACT_AGGRESSIVE);                        break;                }            }//.........这里部分代码省略.........
开发者ID:doriangray2,项目名称:TrinityCore-devil,代码行数:101,


示例14: UpdateAI

            void UpdateAI(uint32 diff) override            {                events.Update(diff);                if (!events.IsInPhase(PHASE_BIRTH) && !UpdateVictim())                    return;                if (events.IsInPhase(PHASE_GROUND))                {                    while (uint32 eventId = events.ExecuteEvent())                    {                        switch (eventId)                        {                            case EVENT_CHECK_RESISTS:                                DoCast(me, SPELL_CHECK_RESISTS);                                events.Repeat(Seconds(30));                                return;                            case EVENT_GROUND:                                EnterPhaseGround(false);                                return;                            case EVENT_BERSERK:                                Talk(EMOTE_ENRAGE);                                DoCast(me, SPELL_BERSERK);                                return;                            case EVENT_CLEAVE:                                DoCastVictim(SPELL_CLEAVE);                                events.ScheduleEvent(EVENT_CLEAVE, randtime(Seconds(5), Seconds(15)), 0, PHASE_GROUND);                                return;                            case EVENT_TAIL:                                DoCastAOE(SPELL_TAIL_SWEEP);                                events.ScheduleEvent(EVENT_TAIL, randtime(Seconds(7), Seconds(10)), 0, PHASE_GROUND);                                return;                            case EVENT_DRAIN:                                if (events.IsInPhase(PHASE_FLIGHT))                                    _delayedDrain = true;                                else                                    CastDrain();                                return;                            case EVENT_BLIZZARD:                                DoCastAOE(SPELL_SUMMON_BLIZZARD);                                events.ScheduleEvent(EVENT_BLIZZARD, RAID_MODE(Seconds(20), Seconds(7)), 0, PHASE_GROUND);                                break;                            case EVENT_FLIGHT:                                if (HealthAbovePct(10))                                {                                    _delayedDrain = false;                                    events.SetPhase(PHASE_FLIGHT);                                    me->SetReactState(REACT_PASSIVE);                                    me->AttackStop();                                    float x, y, z, o;                                    me->GetHomePosition(x, y, z, o);                                    me->GetMotionMaster()->MovePoint(1, x, y, z);                                    return;                                }                                break;                        }                    }                    DoMeleeAttackIfReady();                }                else                {                    if (uint32 eventId = events.ExecuteEvent())                    {                        switch (eventId)                        {                            case EVENT_CHECK_RESISTS:                                DoCast(me, SPELL_CHECK_RESISTS);                                events.Repeat(Seconds(30));                                return;                            case EVENT_LIFTOFF:                            {                                Talk(EMOTE_AIR_PHASE);                                if (Creature* buffet = DoSummon(NPC_WING_BUFFET, me, 0.0f, 0, TEMPSUMMON_MANUAL_DESPAWN))                                    _buffet = buffet->GetGUID();                                me->HandleEmoteCommand(EMOTE_ONESHOT_LIFTOFF);                                me->SetHover(true);                                events.ScheduleEvent(EVENT_ICEBOLT, Seconds(7), 0, PHASE_FLIGHT);                                _iceboltTargets.clear();                                std::list<Unit*> targets;                                SelectTargetList(targets, RAID_MODE(2, 3), SELECT_TARGET_RANDOM, 200.0f, true);                                for (Unit* target : targets)                                    if (target)                                        _iceboltTargets.push_back(target->GetGUID());                                return;                            }                            case EVENT_ICEBOLT:                            {                                if (_iceboltTargets.empty())                                {                                    events.ScheduleEvent(EVENT_BREATH, Seconds(2), 0, PHASE_FLIGHT);                                    return;                                }                                ObjectGuid target = _iceboltTargets.back();                                if (Player* pTarget = ObjectAccessor::GetPlayer(*me, target))                                    if (pTarget->IsAlive())                                        DoCast(pTarget, SPELL_ICEBOLT);                                _iceboltTargets.pop_back();//.........这里部分代码省略.........
开发者ID:Declipe,项目名称:ElunaTrinityWotlk,代码行数:101,


示例15: UpdateAI

        void UpdateAI(uint32 diff) override        {            if (!UpdateVictim() || !CheckInRoom())                return;            events.Update(diff);            if (me->HasUnitState(UNIT_STATE_CASTING))                return;            while (uint32 eventId = events.ExecuteEvent())            {                switch (eventId)                {                    case EVENT_CURSE:                        DoCastAOE(SPELL_CURSE_PLAGUEBRINGER);                        events.ScheduleEvent(EVENT_CURSE, urand(50000, 60000));                        return;                    case EVENT_WARRIOR:                        Talk(SAY_SUMMON);                        SummonUndead(NPC_WARRIOR, RAID_MODE(2, 3));                        events.ScheduleEvent(EVENT_WARRIOR, 30000);                        return;                    case EVENT_BLINK:                        DoCastAOE(SPELL_CRIPPLE, true);                        DoCastAOE(SPELL_BLINK);                        DoResetThreat();                        events.ScheduleEvent(EVENT_BLINK, 40000);                        return;                    case EVENT_BALCONY:                        me->SetReactState(REACT_PASSIVE);                        me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                        me->AttackStop();                        me->RemoveAllAuras();                        me->NearTeleportTo(Teleport.GetPositionX(), Teleport.GetPositionY(), Teleport.GetPositionZ(), Teleport.GetOrientation());                        events.Reset();                        events.ScheduleEvent(EVENT_WAVE, urand(2000, 5000));                        waveCount = 0;                        return;                    case EVENT_WAVE:                        Talk(SAY_SUMMON);                        switch (balconyCount)                        {                            case 0:                                SummonUndead(NPC_CHAMPION, RAID_MODE(2, 4));                                break;                            case 1:                                SummonUndead(NPC_CHAMPION, RAID_MODE(1, 2));                                SummonUndead(NPC_GUARDIAN, RAID_MODE(1, 2));                                break;                            case 2:                                SummonUndead(NPC_GUARDIAN, RAID_MODE(2, 4));                                break;                            default:                                SummonUndead(NPC_CHAMPION, RAID_MODE(5, 10));                                SummonUndead(NPC_GUARDIAN, RAID_MODE(5, 10));                                break;                        }                        ++waveCount;                        events.ScheduleEvent(waveCount < 2 ? EVENT_WAVE : EVENT_GROUND, urand(30000, 45000));                        return;                    case EVENT_GROUND:                    {                        ++balconyCount;                        float x, y, z, o;                        me->GetHomePosition(x, y, z, o);                        me->NearTeleportTo(x, y, z, o);                        events.ScheduleEvent(EVENT_BALCONY, 110000);                        EnterPhaseGround();                        return;                    }                }            }            if (me->HasReactState(REACT_AGGRESSIVE))                DoMeleeAttackIfReady();        }
开发者ID:Aravu,项目名称:Talador-Project,代码行数:77,


示例16: EnterCombat

 void EnterCombat(Unit* /*Who*/) {     DoZoneInCombat();     EnterPhaseGround(); }
开发者ID:814077430,项目名称:ArkCORE,代码行数:5,


示例17: EnterCombat

 void EnterCombat(Unit * /*who*/) {     EnterPhaseGround();     me->MonsterYell(SAY_AGGRO, 0, 0); }
开发者ID:Snoop3r,项目名称:SkyFireEMU,代码行数:5,


示例18: UpdateAI

        void UpdateAI(const uint32 diff)        {            if (!UpdateVictim() || !CheckInRoom())                return;            _DoAggroPulse(diff);            events.Update(diff);            while (uint32 eventId = events.ExecuteEvent())            {                switch (eventId)                {                    case EVENT_CURSE:                        if(!me->IsNonMeleeSpellCasted(false))                        {                            DoCastAOE(SPELL_CURSE_PLAGUEBRINGER);                        events.ScheduleEvent(EVENT_CURSE, urand(50000, 60000));                        }                        return;                    case EVENT_WARRIOR:                        DoScriptText(SAY_SUMMON, me);                        SummonUndead(MOB_WARRIOR, RAID_MODE(2, 3));                        events.ScheduleEvent(EVENT_WARRIOR, 30000);                        return;                    case EVENT_BLINK:                        if(!me->IsNonMeleeSpellCasted(false))                        {                            DoCastAOE(SPELL_CRIPPLE, true);                            DoCastAOE(SPELL_BLINK);                            DoResetThreat();                            events.ScheduleEvent(EVENT_BLINK, 20000);                        }                        return;                    case EVENT_BALCONY:                        me->SetReactState(REACT_PASSIVE);                        me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                        me->AttackStop();                        me->RemoveAllAuras();                        me->NearTeleportTo(TELE_X, TELE_Y, TELE_Z, TELE_O);                        me->getThreatManager().resetAllAggro();                        events.Reset();                        events.ScheduleEvent(EVENT_WAVE, 10000);                        waveCount = 0;                        return;                    case EVENT_WAVE:                        DoScriptText(SAY_SUMMON, me);                        switch (balconyCount)                        {                            case 0: SummonUndead(MOB_CHAMPION, RAID_MODE(2, 4)); break;                            case 1: SummonUndead(MOB_CHAMPION, RAID_MODE(1, 2));                                    SummonUndead(MOB_GUARDIAN, RAID_MODE(1, 2)); break;                            case 2: SummonUndead(MOB_GUARDIAN, RAID_MODE(2, 4)); break;                            default:SummonUndead(MOB_CHAMPION, RAID_MODE(5, 10));                                    SummonUndead(MOB_GUARDIAN, RAID_MODE(5, 10));break;                        }                        ++waveCount;                        events.ScheduleEvent(waveCount < 2 ? EVENT_WAVE : EVENT_GROUND, 30000);                        return;                    case EVENT_GROUND:                    {                        ++balconyCount;                        float x, y, z, o;                        me->GetHomePosition(x, y, z, o);                        me->NearTeleportTo(x, y, z, o);                        events.ScheduleEvent(EVENT_BALCONY, 110000);                        EnterPhaseGround();                        return;                    }                }            }            if(balconyCount > 3)            {                if(!me->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE) && !me->HasAura(SPELL_BERSERK))                    DoCast(me,SPELL_BERSERK,true);            }            if (me->HasReactState(REACT_AGGRESSIVE))                DoMeleeAttackIfReady();        }
开发者ID:Firearm,项目名称:TrinityCore,代码行数:80,


示例19: UpdateAI

//.........这里部分代码省略.........                            return;                        case EVENT_SEARING_FLAMES:                            Talk(SAY_SEARING);                            DoCast(me, SPELL_SEARING_FLAMES);                                                   events.ScheduleEvent(EVENT_SEARING_FLAMES, 50000);                            break;                        case EVENT_LIFTOFF:                            Talk(SAY_AIR_PHASE);                            me->HandleEmote(EMOTE_ONESHOT_LIFTOFF);                            me->SetDisableGravity(true);                            events.ScheduleEvent(EVENT_FLIGHT, 1500);                            events.ScheduleEvent(EVENT_AIR, 2000);                            return;                                                    case EVENT_FLIGHT:                            me->SetReactState(REACT_PASSIVE);                            me->AttackStop();                            me->GetMotionMaster()->MovePoint(1, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() + 20.0f);                            return;                        case EVENT_AIR:                            EnterPhaseAir();                            return;                        case EVENT_FIEND:                            me->SummonCreature(NPC_OBNOXIOUS_FIEND, 93.767f, -224.105f, 74.911f, 6.26f, TEMPSUMMON_CORPSE_DESPAWN, 3000);                            if (Creature* nefarianHelperheroic = me->FindNearestCreature(NPC_NEFARIAN_HELPER_HEROIC, 150.0f, true))                                nefarianHelperheroic->AI()->Talk(27);                                                            events.ScheduleEvent(EVENT_FIEND, 38500);                            break;                    }                }                DoMeleeAttackIfReady();            }            else if (phase == PHASE_FLIGHT) // Air phase            {                std::list<Unit*> targets;                ThreatContainer::StorageType const &m_threatlist = me->getThreatManager().getThreatList();                // if has vertigo, remove all roaring flame npc's wait 8 sec then get player who rang gong.                if (me->HasAura(SPELL_VERTIGO))                    events.ScheduleEvent(EVENT_ROARING_FLAME_SUMMON, 8000, PHASE_FLIGHT);                if (uint32 eventId = events.ExecuteEvent())                {                    switch (eventId)                    {                        case EVENT_ROARING_FLAME_SUMMON:                            for (ThreatContainer::StorageType::const_iterator i = m_threatlist.begin(); i != m_threatlist.end(); ++i)                            {                                Unit* unit = Unit::GetUnit(*me, (*i)->getUnitGuid());                                if (unit && unit->HasAura(SPELL_NOISY)) // You rang? :)                                {                                    me->SummonCreature(NPC_ROARING_FLAME_TARGET, unit->GetPositionX(), unit->GetPositionY(), unit->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000);                                }                                else                                {                                                                     if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))                                        me->SummonCreature(NPC_ROARING_FLAME_TARGET, target->GetPositionX(), target->GetPositionY(), target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 30000);                                }                            }                                    events.ScheduleEvent(EVENT_ROARING_FLAME, 500);                            return;                        case EVENT_ROARING_FLAME:                            if (Unit* roaring = me->FindNearestCreature(NPC_ROARING_FLAME_TARGET, 100.0f))                                DoCast(roaring, SPELL_ROARING_FLAME_BREATH_DUMMY);                            return;                        case EVENT_SONAR_BOMB:                            SelectTargetList(targets, RAID_MODE(3, 6), SELECT_TARGET_RANDOM, 100.0f, true);                            if (!targets.empty())                                for (std::list<Unit*>::iterator itr = targets.begin(); itr != targets.end(); ++itr)                                    DoCast(*itr, SPELL_SONAR_BOMB);                                                 events.ScheduleEvent(EVENT_SONAR_BOMB, 18000);                            break;                        case EVENT_LAND:                            me->HandleEmote(EMOTE_ONESHOT_LAND);                            me->SetDisableGravity(false);                            events.ScheduleEvent(EVENT_RETURN, 1000);                            events.ScheduleEvent(EVENT_GROUND, 1500);                            return;                        case EVENT_RETURN:                            me->SetReactState(REACT_PASSIVE);                            me->AttackStop();                            me->GetMotionMaster()->MovePoint(1, me->GetPositionX(), me->GetPositionY(), me->GetPositionZ() - 20.0f);                            return;                                                    case EVENT_GROUND:                            EnterPhaseGround();                            return;                    }                }            }                    }
开发者ID:sunshitwowsucks,项目名称:ArkCORE-NG,代码行数:101,



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


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