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

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

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

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

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

示例1: KilledUnit

            void KilledUnit(Unit* victim) override            {                if (victim->GetTypeId() != TYPEID_PLAYER)                    return;                Unit* embraceTarget = GetEmbraceTarget();                if (events.IsInPhase(PHASE_SPECIAL) && embraceTarget && victim == embraceTarget)                {                    _embraceTargetGUID = 0;                    events.SetPhase(PHASE_NORMAL);                }                Talk(SAY_SLAY);            }
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:13,


示例2: DamageTaken

            void DamageTaken(Unit* /*doneBy*/, uint32& damage) override            {                Unit* embraceTarget = GetEmbraceTarget();                if (embraceTarget && embraceTarget->IsAlive())                {                    _embraceTakenDamage += damage;                    if (_embraceTakenDamage > DUNGEON_MODE<uint32>(DATA_EMBRACE_DMG, H_DATA_EMBRACE_DMG))                    {                        _embraceTargetGUID.Clear();                        me->CastStop();                    }                }            }
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:14,


示例3: KilledUnit

        void KilledUnit(Unit* victim)        {            if (victim == me)                return;            Unit* pEmbraceTarget = GetEmbraceTarget();            if (Phase == FEEDING && pEmbraceTarget && victim == pEmbraceTarget)            {                Phase = NORMAL;                uiPhaseTimer = 0;                uiEmbraceTarget = 0;            }            Talk(SAY_SLAY);        }
开发者ID:darkss,项目名称:TrinityCore,代码行数:14,


示例4: DamageTaken

            void DamageTaken(Unit* /*doneBy*/, uint32& damage) override            {                Unit* embraceTarget = GetEmbraceTarget();                if (events.IsInPhase(PHASE_SPECIAL) && embraceTarget && embraceTarget->IsAlive())                {                    _embraceTakenDamage += damage;                    if (_embraceTakenDamage > DUNGEON_MODE<uint32>(DATA_EMBRACE_DMG, H_DATA_EMBRACE_DMG))                    {                        _embraceTargetGUID = 0;                        events.SetPhase(PHASE_NORMAL);                        me->CastStop();                    }                }            }
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:15,


示例5: DamageTaken

        void DamageTaken(Unit* /*done_by*/, uint32 &damage)        {            Unit* pEmbraceTarget = GetEmbraceTarget();            if (Phase == FEEDING && pEmbraceTarget && pEmbraceTarget->isAlive())            {              uiEmbraceTakenDamage += damage;              if (uiEmbraceTakenDamage > (uint32) DUNGEON_MODE(DATA_EMBRACE_DMG, H_DATA_EMBRACE_DMG))              {                  Phase = NORMAL;                  uiPhaseTimer = 0;                  uiEmbraceTarget = 0;                  me->CastStop();              }            }        }
开发者ID:AwkwardDev,项目名称:Darkcore-Rebase,代码行数:16,


示例6: UpdateAI

            void UpdateAI(uint32 diff) override            {                if (_initialCheckTimer)                {                    if (_initialCheckTimer <= diff)                    {                        CheckSpheres();                        _initialCheckTimer = 0;                    }                    else                        _initialCheckTimer -= diff;                }                if (me->HasAura(SPELL_VANISH))                {                    if (me->GetThreatManager().IsThreatListEmpty(true))                    {                        EnterEvadeMode(EVADE_REASON_NO_HOSTILES);                        return;                    }                }                else                {                    if (!UpdateVictim())                        return;                }                events.Update(diff);                if (me->HasUnitState(UNIT_STATE_CASTING))                    return;                while (uint32 eventId = events.ExecuteEvent())                {                    switch (eventId)                    {                        case EVENT_BLOODTHIRST:                            DoCast(me, SPELL_BLOODTHIRST);                            events.ScheduleEvent(EVENT_BLOODTHIRST, 10000);                            break;                        case EVENT_CONJURE_FLAME_SPHERES:                            // random target?                            if (Unit* victim = me->GetVictim())                            {                                _flameSphereTargetGUID = victim->GetGUID();                                DoCast(victim, SPELL_CONJURE_FLAME_SPHERE);                            }                            events.ScheduleEvent(EVENT_CONJURE_FLAME_SPHERES, 15000);                            break;                        case EVENT_VANISH:                        {                            if (me->GetThreatManager().GetThreatListSize() > 1)                            {                                if (Unit* embraceTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))                                    _embraceTargetGUID = embraceTarget->GetGUID();                                Talk(SAY_VANISH);                                DoCast(me, SPELL_VANISH);                                events.DelayEvents(500);                                events.ScheduleEvent(EVENT_START_FEEDING, 2000);                            }                            events.ScheduleEvent(EVENT_VANISH, urand(25000, 35000));                            break;                        }                        case EVENT_START_FEEDING:                            me->RemoveAurasDueToSpell(SPELL_VANISH);                            if (Unit* embraceTarget = GetEmbraceTarget())                            {                                DoCast(embraceTarget, SPELL_SHADOWSTEP);                                DoCast(embraceTarget, SPELL_EMBRACE_OF_THE_VAMPYR);                                Talk(SAY_FEED);                                events.ScheduleEvent(EVENT_DONE_FEEDING, 20000);                            }                            break;                        case EVENT_DONE_FEEDING:                            _embraceTargetGUID.Clear();                            break;                        default:                            break;                    }                    if (me->HasUnitState(UNIT_STATE_CASTING))                        return;                }                DoMeleeAttackIfReady();            }
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:86,


示例7: UpdateAI

        void UpdateAI(const uint32 diff)        {            if (!UpdateVictim())                return;            if (uiPhaseTimer <= diff)            {                switch (Phase)                {                    case CASTING_FLAME_SPHERES:                    {                        Creature* pSpheres[3];                        //DoCast(me, SPELL_FLAME_SPHERE_SUMMON_1);                        pSpheres[0] = DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILLISECONDS);                        Unit* pSphereTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);                        if (pSphereTarget && pSpheres[0])                        {                            float angle, x, y;                            angle = pSpheres[0]->GetAngle(pSphereTarget);                            x = pSpheres[0]->GetPositionX() + DATA_SPHERE_DISTANCE * cos(angle);                            y = pSpheres[0]->GetPositionY() + DATA_SPHERE_DISTANCE * sin(angle);                            pSpheres[0]->GetMotionMaster()->MovePoint(0, x, y, pSpheres[0]->GetPositionZ());                        }                        if (IsHeroic())                        {                            //DoCast(me, H_SPELL_FLAME_SPHERE_SUMMON_1);                            pSpheres[1] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILLISECONDS);                            //DoCast(me, H_SPELL_FLAME_SPHERE_SUMMON_2);                            pSpheres[2] = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10*IN_MILLISECONDS);                            if (pSphereTarget && pSpheres[1] && pSpheres[2])                            {                                float angle, x, y;                                angle = pSpheres[1]->GetAngle(pSphereTarget) + DATA_SPHERE_ANGLE_OFFSET;                                x = pSpheres[1]->GetPositionX() + DATA_SPHERE_DISTANCE/2 * cos(angle);                                y = pSpheres[1]->GetPositionY() + DATA_SPHERE_DISTANCE/2 * sin(angle);                                pSpheres[1]->GetMotionMaster()->MovePoint(0, x, y, pSpheres[1]->GetPositionZ());                                angle = pSpheres[2]->GetAngle(pSphereTarget) - DATA_SPHERE_ANGLE_OFFSET;                                x = pSpheres[2]->GetPositionX() + DATA_SPHERE_DISTANCE/2 * cos(angle);                                y = pSpheres[2]->GetPositionY() + DATA_SPHERE_DISTANCE/2 * sin(angle);                                pSpheres[2]->GetMotionMaster()->MovePoint(0, x, y, pSpheres[2]->GetPositionZ());                            }                        }                        Phase = NORMAL;                        uiPhaseTimer = 0;                        break;                    }                    case JUST_VANISHED:                        if (Unit* pEmbraceTarget = GetEmbraceTarget())                        {                            me->GetMotionMaster()->Clear();                            me->SetSpeed(MOVE_WALK, 2.0f, true);                            me->GetMotionMaster()->MoveChase(pEmbraceTarget);                        }                        Phase = VANISHED;                        uiPhaseTimer = 1300;                        break;                    case VANISHED:                        if (Unit* pEmbraceTarget = GetEmbraceTarget())                            DoCast(pEmbraceTarget, SPELL_EMBRACE_OF_THE_VAMPYR);                        me->GetMotionMaster()->Clear();                        me->SetSpeed(MOVE_WALK, 1.0f, true);                        me->GetMotionMaster()->MoveChase(me->getVictim());                        Phase = FEEDING;                        uiPhaseTimer = 20*IN_MILLISECONDS;                        break;                    case FEEDING:                        Phase = NORMAL;                        uiPhaseTimer = 0;                        uiEmbraceTarget = 0;                        break;                    case NORMAL:                        if (uiBloodthirstTimer <= diff)                        {                            DoCast(me, SPELL_BLOODTHIRST);                            uiBloodthirstTimer = 10*IN_MILLISECONDS;                        } else uiBloodthirstTimer -= diff;                        if (uiFlamesphereTimer <= diff)                        {                            DoCast(me, SPELL_CONJURE_FLAME_SPHERE);                            Phase = CASTING_FLAME_SPHERES;                            uiPhaseTimer = 3*IN_MILLISECONDS + diff;                            uiFlamesphereTimer = 15*IN_MILLISECONDS;                        } else uiFlamesphereTimer -= diff;                        if (uiVanishTimer <= diff)                        {                            //Count alive players                            Unit* target = NULL;                            std::list<HostileReference*> t_list = me->getThreatManager().getThreatList();                            std::vector<Unit*> target_list;                            for (std::list<HostileReference*>::const_iterator itr = t_list.begin(); itr!= t_list.end(); ++itr)                            {                                target = Unit::GetUnit(*me, (*itr)->getUnitGuid());                                // exclude pets & totems                                if (target && target->GetTypeId() == TYPEID_PLAYER && target->isAlive())                                    target_list.push_back(target);                                target = NULL;                            }//.........这里部分代码省略.........
开发者ID:AwkwardDev,项目名称:Darkcore-Rebase,代码行数:101,


示例8: 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)                    {                        if (events.IsInPhase(PHASE_NORMAL))                        {                            case EVENT_BLOODTHIRST:                                DoCast(me, SPELL_BLOODTHIRST);                                events.ScheduleEvent(EVENT_BLOODTHIRST, 10000);                                break;                            case EVENT_FLAME_SPHERE:                                DoCastVictim(SPELL_CONJURE_FLAME_SPHERE);                                events.SetPhase(PHASE_SPECIAL);                                events.ScheduleEvent(EVENT_CASTING_FLAME_SPHERES, 3000);                                events.ScheduleEvent(EVENT_FLAME_SPHERE, 15000);                                break;                            case EVENT_VANISH:                            {                                Map::PlayerList const& players = me->GetMap()->GetPlayers();                                uint32 targets = 0;                                for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)                                {                                    Player* player = i->GetSource();                                    if (player && player->IsAlive())                                        ++targets;                                }                                if (targets > 2)                                {                                    Talk(SAY_VANISH);                                    DoCast(me, SPELL_VANISH);                                    events.SetPhase(PHASE_SPECIAL);                                    events.ScheduleEvent(EVENT_JUST_VANISHED, 500);                                    if (Unit* embraceTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true))                                        _embraceTargetGUID = embraceTarget->GetGUID();                                }                                events.ScheduleEvent(EVENT_VANISH, urand(25000, 35000));                                break;                            }                        }                        case EVENT_CASTING_FLAME_SPHERES:                        {                            events.SetPhase(PHASE_NORMAL);                            Unit* sphereTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100, true);                            if (!sphereTarget)                                break;                            float angle, x, y;                            //DoCast(me, SPELL_FLAME_SPHERE_SUMMON_1);                            if (Creature* sphere = DoSpawnCreature(CREATURE_FLAME_SPHERE, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10 * IN_MILLISECONDS))                            {                                angle = sphere->GetAngle(sphereTarget);                                x = sphere->GetPositionX() + DATA_SPHERE_DISTANCE * std::cos(angle);                                y = sphere->GetPositionY() + DATA_SPHERE_DISTANCE * std::sin(angle);                                sphere->GetMotionMaster()->MovePoint(0, x, y, sphere->GetPositionZ());                            }                            if (IsHeroic())                            {                                //DoCast(me, H_SPELL_FLAME_SPHERE_SUMMON_1);                                if (Creature* sphere = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_1, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10 * IN_MILLISECONDS))                                {                                    angle = sphere->GetAngle(sphereTarget) + DATA_SPHERE_ANGLE_OFFSET;                                    x = sphere->GetPositionX() + DATA_SPHERE_DISTANCE/2 * std::cos(angle);                                    y = sphere->GetPositionY() + DATA_SPHERE_DISTANCE/2 * std::sin(angle);                                    sphere->GetMotionMaster()->MovePoint(0, x, y, sphere->GetPositionZ());                                }                                //DoCast(me, H_SPELL_FLAME_SPHERE_SUMMON_2);                                if (Creature* sphere = DoSpawnCreature(H_CREATURE_FLAME_SPHERE_2, 0, 0, 5, 0, TEMPSUMMON_TIMED_OR_CORPSE_DESPAWN, 10 * IN_MILLISECONDS))                                {                                    angle = sphere->GetAngle(sphereTarget) - DATA_SPHERE_ANGLE_OFFSET;                                    x = sphere->GetPositionX() + DATA_SPHERE_DISTANCE/2 * std::cos(angle);                                    y = sphere->GetPositionY() + DATA_SPHERE_DISTANCE/2 * std::sin(angle);                                    sphere->GetMotionMaster()->MovePoint(0, x, y, sphere->GetPositionZ());                                }                            }                            break;                        }                        case EVENT_JUST_VANISHED:                            if (Unit* embraceTarget = GetEmbraceTarget())                            {                                me->GetMotionMaster()->Clear();                                me->SetSpeed(MOVE_WALK, 2.0f, true);                                me->GetMotionMaster()->MoveChase(embraceTarget);                            }                            events.ScheduleEvent(EVENT_VANISHED, 1300);                            break;                        case EVENT_VANISHED://.........这里部分代码省略.........
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:101,


示例9: 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_BLOODTHIRST:                            DoCast(me, SPELL_BLOODTHIRST);                            events.ScheduleEvent(EVENT_BLOODTHIRST, 10000);                            break;                        case EVENT_CONJURE_FLAME_SPHERES:                            // random target?                            if (Unit* victim = me->GetVictim())                            {                                _flameSphereTargetGUID = victim->GetGUID();                                DoCast(victim, SPELL_CONJURE_FLAME_SPHERE);                            }                            events.ScheduleEvent(EVENT_CONJURE_FLAME_SPHERES, 15000);                            break;                        case EVENT_VANISH:                        {                            Map::PlayerList const& players = me->GetMap()->GetPlayers();                            uint32 targets = 0;                            for (Map::PlayerList::const_iterator i = players.begin(); i != players.end(); ++i)                            {                                Player* player = i->GetSource();                                if (player && player->IsAlive())                                    ++targets;                            }                            if (targets > 2)                            {                                Talk(SAY_VANISH);                                DoCast(me, SPELL_VANISH);                                me->SetInCombatState(true); // Prevents the boss from resetting                                events.DelayEvents(500);                                events.ScheduleEvent(EVENT_JUST_VANISHED, 500);                                if (Unit* embraceTarget = SelectTarget(SELECT_TARGET_RANDOM, 0, 100.0f, true))                                    _embraceTargetGUID = embraceTarget->GetGUID();                            }                            events.ScheduleEvent(EVENT_VANISH, urand(25000, 35000));                            break;                        }                        case EVENT_JUST_VANISHED:                            if (Unit* embraceTarget = GetEmbraceTarget())                            {                                me->GetMotionMaster()->Clear();                                me->SetSpeed(MOVE_WALK, 2.0f, true);                                me->GetMotionMaster()->MoveChase(embraceTarget);                            }                            events.ScheduleEvent(EVENT_VANISHED, 1300);                            break;                        case EVENT_VANISHED:                            if (Unit* embraceTarget = GetEmbraceTarget())                                DoCast(embraceTarget, SPELL_EMBRACE_OF_THE_VAMPYR);                            Talk(SAY_FEED);                            me->GetMotionMaster()->Clear();                            me->SetSpeed(MOVE_WALK, 1.0f, true);                            me->GetMotionMaster()->MoveChase(me->GetVictim());                            events.ScheduleEvent(EVENT_FEEDING, 20000);                            break;                        case EVENT_FEEDING:                            _embraceTargetGUID.Clear();                            break;                        default:                            break;                    }                }                DoMeleeAttackIfReady();            }
开发者ID:AwkwardDev,项目名称:RE,代码行数:79,



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


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