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

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

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

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

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

示例1: EnterCombat

 void EnterCombat(Unit *who) {     DoScriptText(SAY_AGGRO, me);     DoZoneInCombat();     EnterPhase(PHASE_FIGHT);     instance->SetBossState(BOSS_HEIGAN, IN_PROGRESS); }
开发者ID:adan830,项目名称:QuaDCore,代码行数:7,


示例2: EnterCombat

 void EnterCombat(Unit* /*who*/) {     _EnterCombat();     DoScriptText(SAY_AGGRO, me);     EnterPhase(PHASE_FIGHT);     safetyDance = true; }
开发者ID:ALive-WoW,项目名称:RC2,代码行数:7,


示例3: EnterCombat

 void EnterCombat(Unit * /*who*/) {     _EnterCombat();     TeleportHeiganCheaters();     DoScriptText(SAY_AGGRO, me);     EnterPhase(PHASE_FIGHT); }
开发者ID:Jekls,项目名称:trinity,代码行数:7,


示例4: EnterCombat

 void EnterCombat(Unit* /*who*/) override {     _EnterCombat();     Talk(SAY_AGGRO);     EnterPhase(PHASE_FIGHT);     safetyDance = true; }
开发者ID:Rastrian,项目名称:DeathCore_3.3.5,代码行数:7,


示例5: Aggro

    void Aggro(Unit *who)    {        DoZoneInCombat();        m_creature->CastSpell(m_creature, AURA_SUNWELL_RADIANCE, true);        m_creature->CastSpell(m_creature, AURA_NOXIOUS_FUMES, true);        EnterPhase(PHASE_GROUND);    }
开发者ID:wk23,项目名称:tst,代码行数:8,


示例6: EnterCombat

 void EnterCombat(Unit* /*pWho*/) {     _EnterCombat();     TeleportHeiganCheaters();     DoScriptText(SAY_AGGRO, me);     EnterPhase(PHASE_FIGHT);     safetyDance = true; }
开发者ID:Darkelmo,项目名称:MythCore,代码行数:8,


示例7: EnterCombat

        void EnterCombat(Unit * /*who*/) {            if (pInstance)                pInstance->SetData(DATA_HALAZZIEVENT, IN_PROGRESS);            me->MonsterYell(YELL_AGGRO, LANG_UNIVERSAL, NULL);            DoPlaySoundToSet(me, SOUND_AGGRO);            EnterPhase(PHASE_LYNX);        }
开发者ID:Oracraft,项目名称:ArkCORE-4.3.4,代码行数:9,


示例8: EnterCombat

    void EnterCombat(Unit *who)    {        if(pInstance)            pInstance->SetData(DATA_HALAZZIEVENT, IN_PROGRESS);        DoScriptText(YELL_AGGRO, m_creature);        EnterPhase(PHASE_LYNX);    }
开发者ID:ekzobam,项目名称:HGCore,代码行数:9,


示例9: Aggro

    void Aggro(Unit* pWho)    {        DoScriptText(SAY_AGGRO, m_creature);        m_creature->SetInCombatWithZone();		EnterPhase(PHASE_LYNX);		if (pInstance)            pInstance->SetData(TYPE_HALAZZI, IN_PROGRESS);    }
开发者ID:RareSoul,项目名称:andeeria,代码行数:10,


示例10: EnterCombat

    void EnterCombat(Unit *who)    {        m_creature->setActive(true);        DoZoneInCombat();        m_creature->CastSpell(m_creature, AURA_SUNWELL_RADIANCE, true);        m_creature->CastSpell(m_creature, AURA_NOXIOUS_FUMES, true);        EnterPhase(PHASE_GROUND);        if(pInstance)            pInstance->SetData(DATA_FELMYST_EVENT, IN_PROGRESS);    }
开发者ID:adan830,项目名称:QuaDCore,代码行数:11,


示例11: EnterCombat

    void EnterCombat(Unit* /*who*/)    {        events.ScheduleEvent(EVENT_BERSERK, 600000);        DoZoneInCombat();        EnterPhase(PHASE_GROUND);        DoCast(me, AURA_SUNWELL_RADIANCE, true);        DoCast(me, AURA_NOXIOUS_FUMES, true);        if (pInstance)            pInstance->SetData(DATA_FELMYST_EVENT, IN_PROGRESS);    }
开发者ID:Adeer,项目名称:OregonCore,代码行数:11,


示例12: EnterCombat

            void EnterCombat(Unit * /*who*/)            {                if (pInstance)                    pInstance->SetData(DATA_ZULJINEVENT, IN_PROGRESS);                DoZoneInCombat();                me->MonsterYell(YELL_INTRO,LANG_UNIVERSAL,NULL);                DoPlaySoundToSet(me, SOUND_INTRO);                SpawnAdds();                EnterPhase(0);            }
开发者ID:InkVisible,项目名称:wow,代码行数:12,


示例13: JustEngagedWith

        void JustEngagedWith(Unit* /*who*/) override        {            events.ScheduleEvent(EVENT_BERSERK, 600000);            me->setActive(true);            DoZoneInCombat();            DoCast(me, AURA_SUNWELL_RADIANCE, true);            DoCast(me, AURA_NOXIOUS_FUMES, true);            EnterPhase(PHASE_GROUND);            instance->SetBossState(DATA_FELMYST, IN_PROGRESS);        }
开发者ID:m-uu,项目名称:ElunaTrinityWotlk,代码行数:12,


示例14: Reset

            void Reset() override            {                instance->SetData(DATA_HALAZZIEVENT, NOT_STARTED);                summons.DespawnAll();                Initialize();                DoCast(me, SPELL_DUAL_WIELD, true);                Phase = PHASE_NONE;                EnterPhase(PHASE_LYNX);            }
开发者ID:AwkwardDev,项目名称:TinyCore,代码行数:12,


示例15: EnterCombat

        void EnterCombat(Unit* /*who*/)        {            me->setActive(true);            DoZoneInCombat();            me->CastSpell(me, AURA_SUNWELL_RADIANCE, true);            me->CastSpell(me, AURA_NOXIOUS_FUMES, true);            me->RemoveUnitMovementFlag(MOVEMENTFLAG_DISABLE_GRAVITY + MOVEMENTFLAG_ONTRANSPORT);            me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);            EnterPhase(PHASE_GROUND);            if (pInstance)                pInstance->SetData(DATA_FELMYST_EVENT, IN_PROGRESS);        }
开发者ID:FirstCore,项目名称:Battle,代码行数:13,


示例16: Reset

        void Reset() {            if (pInstance)                pInstance->SetData(DATA_HALAZZIEVENT, NOT_STARTED);            TransformCount = 0;            BerserkTimer = 600000;            CheckTimer = 1000;            DoCast(me, SPELL_DUAL_WIELD, true);            Phase = PHASE_NONE;            EnterPhase(PHASE_LYNX);        }
开发者ID:Oracraft,项目名称:ArkCORE-4.3.4,代码行数:13,


示例17: Reset

            void Reset() override            {                instance->SetData(DATA_HALAZZIEVENT, NOT_STARTED);                summons.DespawnAll();                LynxGUID = 0;                TransformCount = 0;                BerserkTimer = 600000;                CheckTimer = 1000;                DoCast(me, SPELL_DUAL_WIELD, true);                Phase = PHASE_NONE;                EnterPhase(PHASE_LYNX);            }
开发者ID:125125,项目名称:TrinityCore,代码行数:15,


示例18: EnterCombat

        void EnterCombat(Unit* /*who*/)        {            Talk(YELL_AGGRO);            if (instance)            {                instance->SetData(DATA_DAAKARAEVENT, IN_PROGRESS);                instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me); // Add            }            if (GameObject* door = me->FindNearestGameObject(186859, 80.0f))                door->SetGoState(GO_STATE_READY);            EnterPhase(PHASE_TROLL);            events.ScheduleEvent(EVENT_BERSERK, 10 * MINUTE * IN_MILLISECONDS);        }
开发者ID:AwkwardDev,项目名称:WoWSource434,代码行数:16,


示例19: Reset

    void Reset()    {        if(pInstance && pInstance->GetData(DATA_HALAZZIEVENT) != DONE)            pInstance->SetData(DATA_HALAZZIEVENT, NOT_STARTED);        TransformCount = 0;        BerserkTimer = 600000;        CheckTimer = 1000;        DoCast(m_creature, SPELL_DUAL_WIELD, true);        Phase = PHASE_NONE;        EnterPhase(PHASE_LYNX);        checkTimer2 = 3000;        Intro = false;    }
开发者ID:ekzobam,项目名称:HGCore,代码行数:17,


示例20: UpdateAI

        void UpdateAI(const uint32 diff)        {            if (!UpdateVictim() || !CheckInRoom())                return;            _DoAggroPulse(diff);            events.Update(diff);            while (uint32 eventId = events.ExecuteEvent())            {                switch(eventId)                {                    case EVENT_DISRUPT:                        DoCastAOE(SPELL_SPELL_DISRUPTION);                        events.ScheduleEvent(EVENT_DISRUPT, urand(5000, 10000));                        break;                    case EVENT_FEVER:                        DoCastAOE(SPELL_DECREPIT_FEVER);                        events.ScheduleEvent(EVENT_FEVER, urand(20000, 25000));                        break;                    case EVENT_PHASE:                        // TODO : Add missing texts for both phase switches                        EnterPhase(phase == PHASE_FIGHT ? PHASE_DANCE : PHASE_FIGHT);                        break;                    case EVENT_ERUPT:                        instance->SetData(DATA_HEIGAN_ERUPT, eruptSection);                        TeleportHeiganCheaters();                        if (eruptSection == 0)                            eruptDirection = true;                        else if (eruptSection == 3)                            eruptDirection = false;                        eruptDirection ? ++eruptSection : --eruptSection;                        events.ScheduleEvent(EVENT_ERUPT, phase == PHASE_FIGHT ? 10000 : 4000);                        break;                }            }            DoMeleeAttackIfReady();        }
开发者ID:St3ve,项目名称:TrinityCore,代码行数:42,


示例21: MovementInform

    void MovementInform(uint32 type, uint32 id)    {        if (type != POINT_MOTION_TYPE)            return;        switch (id)        {            case 1:                uiFlightCount++;                uiFlightTimer = 1;                break;            case 2:	                me->RemoveAurasDueToSpell(SPELL_FOG_BREATH);                fogactivated = false;                uiFlightCount++;                uiFlightTimer = 3000;                break;            case 3:                me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);                float x, y, z;                me->GetPosition(x, y, z);                me->UpdateGroundPositionZ(x, y, z);                me->Relocate(x, y, z);                me->SendMovementFlagUpdate();                EnterPhase(PHASE_GROUND);                if (Unit *target = SelectTarget(SELECT_TARGET_TOPAGGRO, 0))                {                    AttackStart(target);                    me->GetMotionMaster()->MoveChase(target);                }                else                    EnterEvadeMode();                break;        }    }
开发者ID:Adeer,项目名称:OregonCore,代码行数:40,


示例22: UpdateAI

    void UpdateAI(const uint32 diff)    {        if(!UpdateVictim())            return;        events.Update(diff);        while(uint32 eventId = events.ExecuteEvent())        {            switch(eventId)            {                case EVENT_DISRUPT:                    DoCastAOE(SPELL_SPELL_DISRUPTION);                    events.ScheduleEvent(EVENT_DISRUPT, 5000);                    return;                case EVENT_FEVER:                    DoCastAOE(SPELL_DECREPIT_FEVER);                    events.ScheduleEvent(EVENT_FEVER, 20000);                    return;                case EVENT_PHASE:                    EnterPhase(phase == PHASE_FIGHT ? PHASE_DANCE : PHASE_FIGHT);                    return;                case EVENT_ERUPT:                    instance->SetData(DATA_HEIGAN_ERUPT, eruptSection);                    if(eruptSection == 0)                        eruptDirection = true;                    else if(eruptSection == 3)                        eruptDirection = false;                    eruptDirection ? ++eruptSection : --eruptSection;                    events.ScheduleEvent(EVENT_ERUPT, phase == PHASE_FIGHT ? 10000 : 3000);                    break;            }        }        DoMeleeAttackIfReady();    }
开发者ID:adan830,项目名称:QuaDCore,代码行数:39,


示例23: HandleFlightSequence

//.........这里部分代码省略.........                }                events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000);                break;            }            case 3:            {                DespawnSummons(MOB_VAPOR_TRAIL);                //DoCast(me, SPELL_VAPOR_SELECT); need core support                Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);                if (!target)                    target = Unit::GetUnit(*me, instance ? instance->GetData64(DATA_PLAYER_GUID) : 0);                if (!target)                {                    EnterEvadeMode();                    return;                }                //target->CastSpell(target, SPELL_VAPOR_SUMMON, true); need core support                Creature* pVapor = me->SummonCreature(MOB_VAPOR, target->GetPositionX()-5+rand()%10, target->GetPositionY()-5+rand()%10, target->GetPositionZ(), 0, TEMPSUMMON_TIMED_DESPAWN, 9000);                if (pVapor)                {                    if (pVapor->AI())                        pVapor->AI()->AttackStart(target);                    me->InterruptNonMeleeSpells(false);                    DoCast(pVapor, SPELL_VAPOR_CHANNEL, false); // core bug                    pVapor->CastSpell(pVapor, SPELL_VAPOR_TRIGGER, true);                }                events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000);                break;            }            case 4:                DespawnSummons(MOB_VAPOR_TRAIL);                events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1);                break;            case 5:            {                Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true);                if (!target)                    target = Unit::GetUnit(*me, instance ? instance->GetData64(DATA_PLAYER_GUID) : 0);                if (!target)                {                    EnterEvadeMode();                    return;                }                breathX = target->GetPositionX();                breathY = target->GetPositionY();                float x, y, z;                target->GetContactPoint(me, x, y, z, 70);                me->GetMotionMaster()->MovePoint(0, x, y, z+10);                break;            }            case 6:                me->SetOrientation(me->GetAngle(breathX, breathY));                me->StopMoving();                //DoTextEmote("takes a deep breath.", NULL);                events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 10000);                break;            case 7:            {                DoCast(me, SPELL_FOG_BREATH, true);                float x, y, z;                me->GetPosition(x, y, z);                x = 2 * breathX - x;                y = 2 * breathY - y;                me->GetMotionMaster()->MovePoint(0, x, y, z);                events.ScheduleEvent(EVENT_SUMMON_FOG, 1);                break;            }            case 8:                me->CastStop(SPELL_FOG_BREATH);                me->RemoveAurasDueToSpell(SPELL_FOG_BREATH);                ++uiBreathCount;                events.ScheduleEvent(EVENT_FLIGHT_SEQUENCE, 1);                if (uiBreathCount < 3)                    uiFlightCount = 4;                break;            case 9:                if (Unit* target = SelectTarget(SELECT_TARGET_TOPAGGRO))                    DoStartMovement(target);                else                {                    EnterEvadeMode();                    return;                }                break;            case 10:                me->SetDisableGravity(false);                me->HandleEmoteCommand(EMOTE_ONESHOT_LAND);                EnterPhase(PHASE_GROUND);                AttackStart(SelectTarget(SELECT_TARGET_TOPAGGRO));                break;            }            ++uiFlightCount;        }
开发者ID:GlassFace,项目名称:Core,代码行数:101,


示例24: UpdateAI

        void UpdateAI(uint32 diff)        {            if (!UpdateVictim())            {                if (phase == PHASE_FLIGHT && !me->IsInEvadeMode())                    EnterEvadeMode();                return;            }            events.Update(diff);            if (me->IsNonMeleeSpellCasted(false))                return;            if (phase == PHASE_GROUND)            {                switch (events.ExecuteEvent())                {                    case EVENT_BERSERK:                        Talk(YELL_BERSERK);                        DoCast(me, SPELL_BERSERK, true);                        events.ScheduleEvent(EVENT_BERSERK, 10000);                        break;                    case EVENT_CLEAVE:                        DoCast(me->GetVictim(), SPELL_CLEAVE, false);                        events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000));                        break;                    case EVENT_CORROSION:                        DoCast(me->GetVictim(), SPELL_CORROSION, false);                        events.ScheduleEvent(EVENT_CORROSION, urand(20000, 30000));                        break;                    case EVENT_GAS_NOVA:                        DoCast(me, SPELL_GAS_NOVA, false);                        events.ScheduleEvent(EVENT_GAS_NOVA, urand(20000, 25000));                        break;                    case EVENT_ENCAPSULATE:                        if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 150, true))                            DoCast(target, SPELL_ENCAPSULATE_CHANNEL, false);                        events.ScheduleEvent(EVENT_ENCAPSULATE, urand(25000, 30000));                        break;                    case EVENT_FLIGHT:                        EnterPhase(PHASE_FLIGHT);                        break;                    default:                        DoMeleeAttackIfReady();                        break;                }            }            if (phase == PHASE_FLIGHT)            {                switch (events.ExecuteEvent())                {                    case EVENT_BERSERK:                        Talk(YELL_BERSERK);                        DoCast(me, SPELL_BERSERK, true);                        break;                    case EVENT_FLIGHT_SEQUENCE:                        HandleFlightSequence();                        break;                    case EVENT_SUMMON_FOG:                        {                            float x, y, z;                            me->GetPosition(x, y, z);                            me->UpdateGroundPositionZ(x, y, z);                            if (Creature* Fog = me->SummonCreature(MOB_VAPOR_TRAIL, x, y, z, 0, TEMPSUMMON_TIMED_DESPAWN, 10000))                            {                                Fog->RemoveAurasDueToSpell(SPELL_TRAIL_TRIGGER);                                Fog->CastSpell(Fog, SPELL_FOG_TRIGGER, true);                                me->CastSpell(Fog, SPELL_FOG_FORCE, true);                            }                        }                        events.ScheduleEvent(EVENT_SUMMON_FOG, 1000);                        break;                }            }        }
开发者ID:GlassFace,项目名称:Core,代码行数:77,


示例25: UpdateAI

    void UpdateAI(const uint32 diff)    {        if (!UpdateVictim())        {            if (events.IsInPhase(PHASE_FLIGHT) && !me->IsInEvadeMode())                EnterEvadeMode();            return;        }        if (me->IsNonMeleeSpellCast(false))            return;        events.Update(diff);        switch (events.ExecuteEvent())        {            case EVENT_BERSERK:                if (!me->HasAura(SPELL_BERSERK))                {                    DoScriptText(YELL_BERSERK, me);                    DoCast(me, SPELL_BERSERK, true);                }                events.ScheduleEvent(EVENT_BERSERK, 10000);                break;            case EVENT_CLEAVE:                DoCastVictim( SPELL_CLEAVE, false);                events.ScheduleEvent(EVENT_CLEAVE, urand(5000, 10000), 0, PHASE_GROUND);                break;            case EVENT_CORROSION:                DoCastVictim( SPELL_CORROSION, false);                events.ScheduleEvent(EVENT_CORROSION, urand(20000, 30000), 0, PHASE_GROUND);                break;            case EVENT_GAS_NOVA:                DoCast(me, SPELL_GAS_NOVA, false);                events.ScheduleEvent(EVENT_GAS_NOVA, urand(21000, 26000), 0, PHASE_GROUND);                break;            case EVENT_ENCAPSULATE:                if (Unit* encapsTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 150.0f, true))                    DoCast(encapsTarget, SPELL_ENCAPSULATE_CHANNEL, false);                if (Unit* tank = SelectTarget(SELECT_TARGET_TOPAGGRO, 0, 150.0f, true))                    me->SetTarget(tank->GetGUID());                events.ScheduleEvent(EVENT_ENCAPSULATE, 33000, 0, PHASE_GROUND);                break;            case EVENT_DEMONIC_VAPOR:                DoCast(me, SPELL_VAPOR_SELECT, true);                demonicCount++;                if (demonicCount < 2)                    events.ScheduleEvent(EVENT_DEMONIC_VAPOR, 11000, 0, PHASE_FLIGHT);                else                    events.CancelEvent(EVENT_DEMONIC_VAPOR);                break;            case EVENT_FLIGHT:                EnterPhase(PHASE_FLIGHT);                break;            case EVENT_FOG_CORRUPTION:                if (!fogactivated)                {                    events.CancelEvent(EVENT_FOG_CORRUPTION);                    break;                }                if (pInstance)                {                    switch (chosenLane)                    {                        case 0:                            pInstance->SetData((direction ? DATA_ACTIVATE_SOUTH_TO_LEFT : DATA_ACTIVATE_SOUTH_TO_RIGHT), (uint32) me->GetPositionY());                            break;                        case 1:                            pInstance->SetData((direction ? DATA_ACTIVATE_CENTER_TO_LEFT : DATA_ACTIVATE_CENTER_TO_RIGHT), (uint32) me->GetPositionY());                            break;                        case 2:                            pInstance->SetData((direction ? DATA_ACTIVATE_NORTH_TO_LEFT : DATA_ACTIVATE_NORTH_TO_RIGHT), (uint32) me->GetPositionY());                            break;                    }                }                events.ScheduleEvent(EVENT_FOG_CORRUPTION, 50, 0, PHASE_FLIGHT);                break;            default:                if (events.IsInPhase(PHASE_GROUND))                    DoMeleeAttackIfReady();                else if (events.IsInPhase(PHASE_FLIGHT))                {                    if (uiFlightTimer)                    {                        if (uiFlightTimer <= diff)                        {                            uiFlightTimer = 0;                            HandleFlightSequence();                        }                        else                            uiFlightTimer -= diff;                    }                }                break;//.........这里部分代码省略.........
开发者ID:Adeer,项目名称:OregonCore,代码行数:101,


示例26: EnterCombat

 void EnterCombat(Unit* /*who*/) override {     instance->SetData(DATA_HALAZZIEVENT, IN_PROGRESS);     Talk(SAY_AGGRO);     EnterPhase(PHASE_LYNX); }
开发者ID:125125,项目名称:TrinityCore,代码行数:6,


示例27: SpellHit

 void SpellHit(Unit*, const SpellInfo* spell) override {     if (spell->Id == SPELL_TRANSFORM_SPLIT2)         EnterPhase(PHASE_HUMAN); }
开发者ID:125125,项目名称:TrinityCore,代码行数:5,


示例28: UpdateAI

             void UpdateAI(const uint32 diff)            {                if (!UpdateVictim())                    return;                if (BerserkTimer <= diff)                {                    me->MonsterYell(YELL_BERSERK, LANG_UNIVERSAL, NULL);                    DoPlaySoundToSet(me, SOUND_BERSERK);                    DoCast(me, SPELL_BERSERK, true);                    BerserkTimer = 60000;                } else BerserkTimer -= diff;                if (Phase == PHASE_LYNX || Phase == PHASE_ENRAGE)                {                    if (SaberlashTimer <= diff)                    {                        // A tank with more than 490 defense skills should receive no critical hit                        //DoCast(me, 41296, true);                        DoCast(me->getVictim(), SPELL_SABER_LASH, true);                        //me->RemoveAurasDueToSpell(41296);                        SaberlashTimer = 30000;                    } else SaberlashTimer -= diff;                    if (FrenzyTimer <= diff)                    {                        DoCast(me, SPELL_FRENZY);                        FrenzyTimer = urand(10000, 15000);                    } else FrenzyTimer -= diff;                    if (Phase == PHASE_LYNX)                    {                        if (CheckTimer <= diff)                        {                            if (HealthBelowPct(25 * (3 - TransformCount)))                                EnterPhase(PHASE_SPLIT);                            CheckTimer = 1000;                        } else CheckTimer -= diff;                    }                }                if (Phase == PHASE_HUMAN || Phase == PHASE_ENRAGE)                {                    if (TotemTimer <= diff)                    {                        DoCast(me, SPELL_SUMMON_TOTEM);                        TotemTimer = 20000;                    } else TotemTimer -= diff;                    if (ShockTimer <= diff)                    {                        if (Unit *pTarget = SelectUnit(SELECT_TARGET_RANDOM, 0))                        {                            if (pTarget->IsNonMeleeSpellCasted(false))                                DoCast(pTarget, SPELL_EARTHSHOCK);                            else                                DoCast(pTarget, SPELL_FLAMESHOCK);                            ShockTimer = 10000 + rand()%5000;                        }                    } else ShockTimer -= diff;                    if (Phase == PHASE_HUMAN)                    {                        if (CheckTimer <= diff)                        {                            if (!HealthAbovePct(20) /*HealthBelowPct(10)*/)                                EnterPhase(PHASE_MERGE);                            else                            {                                Unit *Lynx = Unit::GetUnit(*me, LynxGUID);                                if (Lynx && !Lynx->HealthAbovePct(20) /*Lynx->HealthBelowPct(10)*/)                                    EnterPhase(PHASE_MERGE);                            }                            CheckTimer = 1000;                        } else CheckTimer -= diff;                    }                }                if (Phase == PHASE_MERGE)                {                    if (CheckTimer <= diff)                    {                        Unit *Lynx = Unit::GetUnit(*me, LynxGUID);                        if (Lynx)                        {                            Lynx->GetMotionMaster()->MoveFollow(me, 0, 0);                            me->GetMotionMaster()->MoveFollow(Lynx, 0, 0);                            if (me->IsWithinDistInMap(Lynx, 6.0f))                            {                                if (TransformCount < 3)                                    EnterPhase(PHASE_LYNX);                                else                                    EnterPhase(PHASE_ENRAGE);                            }                        }                        CheckTimer = 1000;                    } else CheckTimer -= diff;                }                DoMeleeAttackIfReady();//.........这里部分代码省略.........
开发者ID:ProjectStarGate,项目名称:StarGateEmu-Projekt,代码行数:101,


示例29: SpellHit

 void SpellHit(Unit*, const SpellEntry *spell) {     if (spell->Id == SPELL_TRANSFORM_SPLIT2)         EnterPhase(PHASE_HUMAN); }
开发者ID:ProjectStarGate,项目名称:StarGateEmu-Projekt,代码行数:5,



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


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