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

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

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

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

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

示例1: ExecuteEvent

 void ExecuteEvent(uint32 eventId) override {     switch (eventId)     {         case EVENT_FLAMESTRIKE:             if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                 DoCast(target, SPELL_FLAMESTRIKE);             Talk(SAY_COUNCIL_SPECIAL);             events.Repeat(Seconds(40));             break;         case EVENT_BLIZZARD:             if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                 DoCast(target, SPELL_BLIZZARD);             events.Repeat(Seconds(15), Seconds(40));             break;         case EVENT_ARCANE_EXPLOSION_CHECK:             _canUseArcaneExplosion = true;             break;         case EVENT_ARCANE_EXPLOSION:             if (_canUseArcaneExplosion && SelectTarget(SELECT_TARGET_RANDOM, 0, 10.0f))             {                 DoCastSelf(SPELL_ARCANE_EXPLOSION);                 _canUseArcaneExplosion = false;                 events.ScheduleEvent(EVENT_ARCANE_EXPLOSION_CHECK, Seconds(5));             }             events.Repeat(Seconds(1));             break;         case EVENT_DAMPEN_MAGIC:             DoCastSelf(SPELL_DAMPEN_MAGIC);             break;         default:             break;     } }
开发者ID:martial69320,项目名称:cerberus,代码行数:34,


示例2: UpdateAI

    void UpdateAI(uint32 diff) override    {        if (!UpdateVictim())            return;        if (me->HasUnitState(UNIT_STATE_CASTING))            return;        events.Update(diff);        while (uint32 eventId = events.ExecuteEvent())        {            switch (eventId)            {                case EVENT_SOUL_DRAIN:                    DoCastSelf(SPELL_SOUL_DRAIN, { SPELLVALUE_MAX_TARGETS, 5 });                    events.Repeat(Seconds(30), Seconds(35));                    break;                case EVENT_FRENZY:                    Talk(SUFF_SAY_ENRAGE);                    DoCastSelf(SPELL_FRENZY);                    events.Repeat(Seconds(45), Seconds(50));                    break;                default:                    break;            }            if (me->HasUnitState(UNIT_STATE_CASTING))                return;        }        DoMeleeAttackIfReady();    }
开发者ID:lasyan3,项目名称:TrinityCore,代码行数:33,


示例3: Emerge

    void Emerge()    {        me->UpdateSpeed(MOVE_RUN);        uint32 submergeSpell = wasMobile ? SPELL_SUBMERGE : SPELL_SUBMERGE_2;        me->RemoveAurasDueToSpell(submergeSpell);        me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_0);        DoCastSelf(SPELL_EMERGE);        DoCastAOE(SPELL_HATE_TO_ZERO, true);        me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);        me->SetReactState(REACT_AGGRESSIVE);        if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))            AttackStart(target);        // if the worm was mobile before submerging, make him stationary now        if (wasMobile)        {            me->SetControlled(true, UNIT_STATE_ROOT);            me->SetDisplayId(modelStationary);            DoCastSelf(SPELL_GROUND_VISUAL_1, true);            events.SetPhase(PHASE_STATIONARY);        }        else        {            if (Unit* target = me->GetVictim())                me->GetMotionMaster()->MoveChase(target);            me->SetDisplayId(modelMobile);            events.SetPhase(PHASE_MOBILE);        }        wasMobile = !wasMobile;        ScheduleTasks();    }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:31,


示例4: Submerge

    void Submerge()    {        me->SetReactState(REACT_PASSIVE);        me->AttackStop();        if (wasMobile)        {            me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);            DoCastSelf(SPELL_SUBMERGE);            me->SetSpeedRate(MOVE_RUN, 8.0f);            DoCastSelf(SPELL_GROUND_VISUAL_0, true);            events.SetPhase(PHASE_SUBMERGED);            events.ScheduleEvent(EVENT_EMERGE, 5s, 0, PHASE_SUBMERGED);            me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);        }        else        {            me->HandleEmoteCommand(EMOTE_ONESHOT_SUBMERGE);            DoCastSelf(SPELL_SUBMERGE_2);            me->RemoveAurasDueToSpell(SPELL_GROUND_VISUAL_1);            me->SetSpeedRate(MOVE_RUN, 1.1111f);            DoCastSelf(SPELL_GROUND_VISUAL_0, true);            events.SetPhase(PHASE_SUBMERGED);            me->SetControlled(false, UNIT_STATE_ROOT);            events.ScheduleEvent(EVENT_EMERGE, 6s, 0, PHASE_SUBMERGED);            me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);        }        me->GetMotionMaster()->MovePoint(0, ToCCommonLoc[1].GetPositionX() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionY() + frand(-40.0f, 40.0f), ToCCommonLoc[1].GetPositionZ() + me->GetCollisionHeight());    }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:29,


示例5: MovementInform

    void MovementInform(uint32 type, uint32 pointId) override    {        if (type != POINT_MOTION_TYPE && type != EFFECT_MOTION_TYPE && type != SPLINE_CHAIN_MOTION_TYPE)            return;        switch (pointId)        {            case POINT_INITIAL_MOVEMENT:                events.ScheduleEvent(EVENT_ENGAGE, 3s);                break;            case POINT_MIDDLE:                DoCastSelf(SPELL_MASSIVE_CRASH);                events.ScheduleEvent(EVENT_SELECT_CHARGE_TARGET, 4s);                break;            case POINT_ICEHOWL_CHARGE:                events.Reset();                events.SetPhase(PHASE_COMBAT);                RescheduleTasks();                me->SetReactState(REACT_AGGRESSIVE);                DoCastSelf(SPELL_TRAMPLE);                break;            default:                break;        }    }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:25,


示例6: ExecuteEvent

 void ExecuteEvent(uint32 eventId) override {     switch (eventId)     {         case EVENT_RANDOM_BEAM:             DoCastSelf(BeamTriggers[urand(0, 3)]);             events.Repeat(Seconds(30));             break;         case EVENT_PRISMATIC_SHIELD:             DoCastSelf(PrismaticAuras[urand(0, 5)]);             events.Repeat(Seconds(15));             break;         case EVENT_FATAL_ATTRACTION:             Talk(SAY_SPELL);             me->CastCustomSpell(SPELL_FATAL_ATTACTION_TELEPORT, SPELLVALUE_MAX_TARGETS, 3, me);             events.Repeat(Seconds(30));             break;         case EVENT_SILENCING_SHRIEK:             DoCastVictim(SPELL_SILENCING_SHRIEK);             events.Repeat(Seconds(18), Seconds(30));             break;         case EVENT_TAUNT:             Talk(SAY_TAUNT);             events.Repeat(Seconds(30), Seconds(40));             break;         case EVENT_BERSERK:             Talk(EMOTE_BERSERK, me);             DoCastSelf(SPELL_BERSERK);             break;         default:             break;     } }
开发者ID:090809,项目名称:TrinityCore,代码行数:33,


示例7: Reset

 void Reset() override {     me->m_Events.AddEventAtOffset([this]()     {         DoCastSelf(SPELL_SLIME_POOL_EFFECT, true);         DoCastSelf(SPELL_PACIFY_SELF, true);     }, 1s); }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:8,


示例8: UpdateAI

        void UpdateAI(uint32 diff) override        {            if (!events.IsInPhase(PHASE_INTRO) && (!UpdateVictim() || !CheckInRoom()))                return;            events.Update(diff);            if (me->HasUnitState(UNIT_STATE_CASTING))                return;            while (uint32 eventId = events.ExecuteEvent())            {                switch (eventId)                {                    case EVENT_ANRAPHET_APPEAR:                        me->GetMotionMaster()->MoveSmoothPath(POINT_ANRAPHET_ACTIVATE, AnraphetPath, AnraphetPathSize);                        break;                    case EVENT_ANRAPHET_ACTIVATE:                        Talk(ANRAPHET_SAY_INTRO);                        events.ScheduleEvent(EVENT_ANRAPHET_DESTRUCTION, Seconds(10), 0, PHASE_INTRO); // Note: 10800 ms                        break;                    case EVENT_ANRAPHET_DESTRUCTION:                        DoCastAOE(SPELL_DESTRUCTION_PROTOCOL);                        events.ScheduleEvent(EVENT_ANRAPHET_READY, Seconds(6), 0, PHASE_INTRO); // Note: 6400 ms                        break;                    case EVENT_ANRAPHET_READY:                        me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                        events.SetPhase(PHASE_COMBAT);                        ScheduleCombatEvents();                        break;                    case EVENT_ANRAPHET_NEMESIS_STRIKE:                        DoCastVictim(SPELL_NEMESIS_STRIKE);                        events.ScheduleEvent(EVENT_ANRAPHET_NEMESIS_STRIKE, Seconds(21), 0, PHASE_COMBAT);                        break;                    case EVENT_ANRAPHET_ALPHA_BEAMS:                        DoCastSelf(SPELL_ALPHA_BEAMS);                        events.ScheduleEvent(EVENT_ANRAPHET_CRUMBLING_RUIN, Seconds(12), 0, PHASE_COMBAT);                        events.ScheduleEvent(EVENT_ANRAPHET_ALPHA_BEAMS, Seconds(40), Seconds(45), 0, PHASE_COMBAT);                        break;                    case EVENT_ANRAPHET_OMEGA_STANCE:                        DoCastSelf(SPELL_OMEGA_STANCE_SUMMON);                        DoCastSelf(SPELL_OMEGA_STANCE);                        Talk(ANRAPHET_SAY_OMEGA_STANCE);                        events.ScheduleEvent(EVENT_ANRAPHET_OMEGA_STANCE, Seconds(45), Seconds(50), 0, PHASE_COMBAT);                        events.ScheduleEvent(EVENT_ANRAPHET_CRUMBLING_RUIN, Seconds(13), 0, PHASE_COMBAT);                        break;                    case EVENT_ANRAPHET_CRUMBLING_RUIN:                        DoCastSelf(SPELL_CRUMBLING_RUIN);                        break;                }                if (me->HasUnitState(UNIT_STATE_CASTING))                    return;            }            if (UpdateVictim())                DoMeleeAttackIfReady();        }
开发者ID:Mihapro,项目名称:TrinityCore,代码行数:58,


示例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_FLIGHT:                        {                            me->SetCanFly(true);                            me->SetDisableGravity(true);                            me->SetByteFlag(UNIT_FIELD_BYTES_1, UNIT_BYTES_1_OFFSET_ANIM_TIER, UNIT_BYTE1_FLAG_ALWAYS_STAND | UNIT_BYTE1_FLAG_HOVER);                            me->SetReactState(REACT_PASSIVE);                            me->AttackStop();                            Position pos;                            pos.Relocate(me);                            pos.m_positionZ += 10.0f;                            me->GetMotionMaster()->MoveTakeoff(POINT_TAKEOFF, pos);                            events.CancelEventGroup(EVENT_GROUP_LAND_PHASE);                            break;                        }                        case EVENT_CONFLAGRATION:                            DoCastSelf(SPELL_CONFLAGRATION, true);                            break;                        case EVENT_ENRAGE:                            DoCastSelf(SPELL_ENRAGE);                            Talk(EMOTE_ENRAGED);                            events.Repeat(Seconds(24));                            break;                        case EVENT_FLAME_BREATH:                            DoCastVictim(SPELL_FLAME_BREATH);                            events.Repeat(Seconds(20), Seconds(30));                            break;                        case EVENT_AIR_MOVEMENT:                            me->GetMotionMaster()->MovePoint(POINT_FLIGHT, SavianaRagefireFlyOutPos);                            break;                        case EVENT_LAND_GROUND:                            me->GetMotionMaster()->MoveLand(POINT_LAND_GROUND, SavianaRagefireLandPos);                            break;                        default:                            break;                    }                    if (me->HasUnitState(UNIT_STATE_CASTING))                        return;                }                DoMeleeAttackIfReady();            }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:56,


示例10: 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_SEARING_LIGHT:                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                                DoCast(target, SPELL_SEARING_LIGHT);                            events.ScheduleEvent(EVENT_SEARING_LIGHT, TIMER_SEARING_LIGHT);                            break;                        case EVENT_GRAVITY_BOMB:                            if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                                DoCast(target, SPELL_GRAVITY_BOMB);                            events.ScheduleEvent(EVENT_GRAVITY_BOMB, TIMER_GRAVITY_BOMB);                            break;                        case EVENT_TYMPANIC_TANTRUM:                            Talk(SAY_TYMPANIC_TANTRUM);                            Talk(EMOTE_TYMPANIC_TANTRUM);                            DoCast(SPELL_TYMPANIC_TANTRUM);                            events.ScheduleEvent(EVENT_TYMPANIC_TANTRUM, urand(TIMER_TYMPANIC_TANTRUM_MIN, TIMER_TYMPANIC_TANTRUM_MAX));                            break;                        case EVENT_DISPOSE_HEART:                            SetPhaseOne();                            break;                        case EVENT_ENRAGE:                            Talk(SAY_BERSERK);                            DoCastSelf(SPELL_ENRAGE);                            break;                        case EVENT_ENTER_HARD_MODE:                            me->SetFullHealth();                            DoCastSelf(SPELL_HEARTBREAK, true);                            me->AddLootMode(LOOT_MODE_HARD_MODE_1);                            _hardMode = true;                            SetPhaseOne();                            break;                    }                    if (me->HasUnitState(UNIT_STATE_CASTING))                        return;                }                if (_phase == 1)                    DoMeleeAttackIfReady();            }
开发者ID:Delicate90,项目名称:TrinityCore,代码行数:55,


示例11: UpdateAI

    void UpdateAI(uint32 diff) override    {        if (!events.IsInPhase(PHASE_INTRO) && !UpdateVictim())            return;        events.Update(diff);        if (me->HasUnitState(UNIT_STATE_CASTING))            return;        while (uint32 eventId = events.ExecuteEvent())        {            switch (eventId)            {                case EVENT_ENRAGE:                    DoCast(SPELL_BERSERK);                    break;                case EVENT_INCINERATE:                    if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0))                        DoCast(target, SPELL_INCINERATE);                    Talk(SAY_INCINERATE);                    events.Repeat(Seconds(12), Seconds(20));                    break;                case EVENT_SUMMON_DOOM_BLOSSOM:                    DoCastSelf(SPELL_SUMMON_DOOM_BLOSSOM, true);                    Talk(SAY_BLOSSOM);                    events.Repeat(Seconds(30), Seconds(40));                    break;                case EVENT_SHADOW_DEATH:                    if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 100.0f, true, true, -SPELL_SPIRITUAL_VENGEANCE))                        DoCast(target, SPELL_SHADOW_OF_DEATH);                    events.Repeat(Seconds(30), Seconds(35));                    break;                case EVENT_CRUSHING_SHADOWS:                    DoCastSelf(SPELL_CRUSHING_SHADOWS, { SPELLVALUE_MAX_TARGETS, 5 });                    Talk(SAY_CRUSHING);                    events.Repeat(Seconds(18), Seconds(30));                    break;                case EVENT_FINISH_INTRO:                    me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_NON_ATTACKABLE);                    me->SetReactState(REACT_AGGRESSIVE);                    break;                default:                    break;            }            if (me->HasUnitState(UNIT_STATE_CASTING))                return;        }        DoMeleeAttackIfReady();    }
开发者ID:lasyan3,项目名称:TrinityCore,代码行数:52,


示例12: IsSummonedBy

            void IsSummonedBy(Unit* summoner) override            {                _summonerGUID = summoner->GetGUID();                _scheduler.Schedule(Milliseconds(3650), [this](TaskContext /*context*/)                {                    DoCastSelf(SPELL_ICICLE_FALL_TRIGGER, true);                    DoCastSelf(SPELL_ICICLE_FALL_VISUAL);                    if (Unit* caster = ObjectAccessor::GetUnit(*me, _summonerGUID))                        caster->RemoveDynObject(SPELL_ICICLE_SUMMON);                });            }
开发者ID:kemlg,项目名称:trinitycore-conciens,代码行数:13,


示例13: DoAction

 void DoAction(int32 action) override {     if (action == ACTION_ENRAGE)     {         DoCastSelf(SPELL_FROTHING_RAGE, true);         Talk(EMOTE_TRAMPLE_ENRAGE);     }     else if (action == ACTION_TRAMPLE_FAIL)     {         DoCastSelf(SPELL_STAGGERED_DAZE, true);         Talk(EMOTE_TRAMPLE_FAIL);         events.DelayEvents(15s);     } }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:14,


示例14: ExposeHeart

            void ExposeHeart()            {                Talk(SAY_HEART_OPENED);                Talk(EMOTE_HEART_OPENED);                DoCastSelf(SPELL_SUBMERGE);  // Will make creature untargetable                me->AttackStop();                me->SetReactState(REACT_PASSIVE);                Unit* heart = me->GetVehicleKit() ? me->GetVehicleKit()->GetPassenger(HEART_VEHICLE_SEAT_NORMAL) : nullptr;                if (heart)                {                    heart->CastSpell(heart, SPELL_HEART_OVERLOAD);                    heart->CastSpell(me, SPELL_HEART_LIGHTNING_TETHER);                    heart->CastSpell(heart, SPELL_HEART_HEAL_TO_FULL, true);                    heart->CastSpell(me, SPELL_RIDE_VEHICLE_EXPOSED, true);                    heart->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);                    heart->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_UNK_29);               }                events.CancelEvent(EVENT_SEARING_LIGHT);                events.CancelEvent(EVENT_GRAVITY_BOMB);                events.CancelEvent(EVENT_TYMPANIC_TANTRUM);                // Start "end of phase 2 timer"                events.ScheduleEvent(EVENT_DISPOSE_HEART, TIMER_HEART_PHASE);                // Phase 2 has officially started                _phase = 2;                _heartExposed++;            }
开发者ID:Delicate90,项目名称:TrinityCore,代码行数:31,


示例15: DoAction

 void DoAction(int32 action) override {     switch (action)     {         case ACTION_PET_DIED:             if (!_petCount) // underflow check - something has gone horribly wrong             {                 EnterEvadeMode(EVADE_REASON_OTHER);                 return;             }             if (!--_petCount) // last pet died, emerge             {                 me->RemoveAurasDueToSpell(SPELL_SUBMERGE);                 me->RemoveAurasDueToSpell(SPELL_IMPALE_AURA);                 me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);                 DoCastSelf(SPELL_EMERGE);                 events.SetPhase(PHASE_EMERGE);                 events.ScheduleEvent(EVENT_POUND, randtime(Seconds(13), Seconds(18)), 0, PHASE_EMERGE);                 events.ScheduleEvent(EVENT_LEECHING_SWARM, randtime(Seconds(3), Seconds(7)), 0, PHASE_EMERGE);                 events.ScheduleEvent(EVENT_CARRION_BEETLES, randtime(Seconds(10), Seconds(15)), 0, PHASE_EMERGE);             }             break;         case ACTION_PET_EVADE:             EnterEvadeMode(EVADE_REASON_OTHER);             break;     } }
开发者ID:Declipe,项目名称:ElunaTrinityWotlk,代码行数:27,


示例16: ScheduleEvents

 void ScheduleEvents() override {     events.ScheduleEvent(EVENT_FLAMESTRIKE, Seconds(8));     events.ScheduleEvent(EVENT_BLIZZARD, Seconds(25));     events.ScheduleEvent(EVENT_ARCANE_EXPLOSION, Seconds(5));     DoCastSelf(SPELL_DAMPEN_MAGIC); }
开发者ID:martial69320,项目名称:cerberus,代码行数:7,


示例17: Reset

 void Reset() override {     _Reset();     _inCombat = false;     me->SummonCreatureGroup(SUMMON_COUNCIL_GROUP);     DoCastSelf(SPELL_EMPYREAL_BALANCE, true); }
开发者ID:martial69320,项目名称:cerberus,代码行数:7,


示例18: Reset

 void Reset() override {     _scheduler.Schedule(Seconds(1), [this](TaskContext consumption)     {         DoCastSelf(SPELL_CONSUMPTION);         consumption.Repeat();     }); }
开发者ID:Delicate90,项目名称:TrinityCore,代码行数:8,


示例19: SummonedCreatureDies

            void SummonedCreatureDies(Creature* summon, Unit* /*killer*/) override            {                if (summon->GetEntry() == NPC_APOTHECARY_FRYE || summon->GetEntry() == NPC_APOTHECARY_BAXTER)                    _deadCount++;                if (me->HasAura(SPELL_PERMANENT_FEIGN_DEATH) && _deadCount == 2)                    DoCastSelf(SPELL_QUIET_SUICIDE, true);            }
开发者ID:kemlg,项目名称:trinitycore-conciens,代码行数:8,


示例20: JustEngagedWith

    void JustEngagedWith(Unit* /*who*/) override    {        DoZoneInCombat();        DoCastSelf(SPELL_FROZEN_MALLET_2);        _events.ScheduleEvent(EVENT_FROST_BLAST, 5000);    }
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:8,


示例21: IsSummonedBy

    void IsSummonedBy(Unit* /*summoner*/) override    {        DoCastSelf(SPELL_FROZEN_ORB_AURA, true);        DoCastSelf(SPELL_FROZEN_ORB_DMG, true);        DoCastSelf(SPELL_RANDOM_AGGRO, true);        if (Creature* toravon = me->GetInstanceScript()->GetCreature(DATA_TORAVON))        {            if (toravon->IsInCombat())            {                toravon->AI()->JustSummoned(me);                DoZoneInCombat();            }            else                me->DespawnOrUnsummon();        }    }
开发者ID:Refuge89,项目名称:TrinityCore,代码行数:17,


示例22: ExecuteEvent

 void ExecuteEvent(uint32 eventId) override {     switch (eventId)     {         case EVENT_ENGAGE:             instance->DoCloseDoorOrButton(instance->GetGuidData(DATA_MAIN_GATE));             me->SetImmuneToPC(false);             events.SetPhase(PHASE_COMBAT);             me->SetReactState(REACT_AGGRESSIVE);             DoZoneInCombat();             break;         case EVENT_MASSIVE_CRASH:             me->SetReactState(REACT_PASSIVE);             me->AttackStop();             events.SetPhase(PHASE_CHARGE);             me->GetMotionMaster()->MoveJump(ToCCommonLoc[1], 20.0f, 20.0f, POINT_MIDDLE);             break;         case EVENT_SELECT_CHARGE_TARGET:             if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))             {                 DoCast(target, SPELL_FURIOUS_CHARGE_SUMMON, true);                 me->SetTarget(target->GetGUID());                 Talk(EMOTE_TRAMPLE_ROAR, target);                 events.ScheduleEvent(EVENT_ICEHOWL_ROAR, 1s);             }             break;         case EVENT_ICEHOWL_ROAR:             if (Creature* stalker = instance->GetCreature(DATA_FURIOUS_CHARGE))                 DoCast(stalker, SPELL_ROAR);             events.ScheduleEvent(EVENT_JUMP_BACK, 3s, 0, PHASE_CHARGE);             break;         case EVENT_JUMP_BACK:             if (Creature* stalker = instance->GetCreature(DATA_FURIOUS_CHARGE))                 DoCast(stalker, SPELL_JUMP_BACK);             events.ScheduleEvent(EVENT_TRAMPLE, 2s, 0, PHASE_CHARGE);             break;         case EVENT_TRAMPLE:             if (Creature* stalker = instance->GetCreature(DATA_FURIOUS_CHARGE))                 me->GetMotionMaster()->MoveCharge(stalker->GetPositionX(), stalker->GetPositionY(), stalker->GetPositionZ(), 42.0f, POINT_ICEHOWL_CHARGE);             me->SetTarget(ObjectGuid::Empty);             break;         case EVENT_FEROCIOUS_BUTT:             DoCastVictim(SPELL_FEROCIOUS_BUTT);             events.Repeat(20s);             break;         case EVENT_ARCTIC_BREATH:             if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 0, 0.0f, true))                 DoCast(target, SPELL_ARCTIC_BREATH);             events.Repeat(24s);             break;         case EVENT_WHIRL:             DoCastSelf(SPELL_WHIRL);             events.Repeat(16s);             break;         default:             break;     } }
开发者ID:ElunaLuaEngine,项目名称:ElunaTrinityWotlk,代码行数:58,


示例23: EnterCombat

 void EnterCombat(Unit* /*who*/) override {     DoCastSelf(SPELL_STATIC_CHARGED);     _scheduler.Schedule(Seconds(12), [this](TaskContext spellShock)     {         DoCastVictim(SPELL_SHOCK);         spellShock.Repeat();     }); }
开发者ID:Delicate90,项目名称:TrinityCore,代码行数:9,


示例24: DamageTaken

 void DamageTaken(Unit* /*attacker*/, uint32& damage) override {     if (me->HealthBelowPctDamaged(30, damage) && !_hasEnraged)     {         _hasEnraged = true;         Talk(SAY_ENRAGE);         DoCastSelf(SPELL_ENRAGE);     } }
开发者ID:090809,项目名称:TrinityCore,代码行数:9,



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


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