当前位置: 首页>>代码示例>>C++>>正文


C++ SummonList类代码示例

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


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

示例1: SummonedCreatureDespawn

 void SummonedCreatureDespawn(Creature* summoned)
 {
     Summons.Despawn(summoned);
     ++KillCount;
 }
开发者ID:AwkwardDev,项目名称:HD-TCore,代码行数:5,代码来源:eversong_woods.cpp

示例2: JustDied

 void JustDied(Unit* /*Killer*/)
 {
     DoScriptText(SAY_DEAD, me);
     summons.DespawnAll();
 }
开发者ID:EvilSanta,项目名称:TrinityCore,代码行数:5,代码来源:boss_nexusprince_shaffar.cpp

示例3: JustSummoned

		void JustSummoned(Creature* pSummoned) {
			Summons.Summon(pSummoned);
		}
开发者ID:dsstest,项目名称:ArkCORE,代码行数:3,代码来源:boss_lord_jaraxxus.cpp

示例4: EnterEvadeMode

 void EnterEvadeMode()
 {
     summons.DespawnAll();
     ScriptedAI::EnterEvadeMode();
 }
开发者ID:EvilSanta,项目名称:TrinityCore,代码行数:5,代码来源:boss_nexusprince_shaffar.cpp

示例5: JustSummoned

 void JustSummoned(Creature* summon)
 {
     summons.Summon(summon);
 }
开发者ID:Adrya,项目名称:CrystalShard,代码行数:4,代码来源:boss_pathaleon_the_calculator.cpp

示例6: Reset

 void Reset()
 {
     summons.DespawnAll();
 }
开发者ID:SignFinder,项目名称:FaceCore,代码行数:4,代码来源:dalaran_squirrel.cpp

示例7: JustSummoned

 void JustSummoned(Creature* summoned) override
 {
     Summons.Summon(summoned);
     ++KillCount;
 }
开发者ID:AwkwardDev,项目名称:RE,代码行数:5,代码来源:zone_silverpine_forest.cpp

示例8: UpdateAI

        void UpdateAI(const uint32 uiDiff)
        {
            if (!UpdateVictim())
                return;

            switch (m_uiStage)
            {
                case 0:
                    if (m_uiFreezeSlashTimer <= uiDiff)
                    {
                        DoCastVictim(SPELL_FREEZE_SLASH);
                        m_uiFreezeSlashTimer = 15*IN_MILLISECONDS;
                    } else m_uiFreezeSlashTimer -= uiDiff;

                    if (m_uiPenetratingColdTimer <= uiDiff)
                    {
                        me->CastCustomSpell(SPELL_PENETRATING_COLD, SPELLVALUE_MAX_TARGETS, RAID_MODE(2, 5));
                        m_uiPenetratingColdTimer = 20*IN_MILLISECONDS;
                    } else m_uiPenetratingColdTimer -= uiDiff;

                    if (m_uiSummonNerubianTimer <= uiDiff && (IsHeroic() || !m_bReachedPhase3))
                    {
                        me->CastCustomSpell(SPELL_SUMMON_BURROWER, SPELLVALUE_MAX_TARGETS, RAID_MODE(1, 2, 2, 4));
                        m_uiSummonNerubianTimer = 45*IN_MILLISECONDS;
                    } else m_uiSummonNerubianTimer -= uiDiff;

                    if (IsHeroic() && m_uiNerubianShadowStrikeTimer <= uiDiff)
                    {
                        Summons.DoAction(NPC_BURROWER, ACTION_SHADOW_STRIKE);
                        m_uiNerubianShadowStrikeTimer = 30*IN_MILLISECONDS;
                    } else m_uiNerubianShadowStrikeTimer -= uiDiff;

                    if (m_uiSubmergeTimer <= uiDiff && !m_bReachedPhase3 && !me->HasAura(SPELL_BERSERK))
                    {
                        m_uiStage = 1;
                        m_uiSubmergeTimer = 60*IN_MILLISECONDS;
                    } else m_uiSubmergeTimer -= uiDiff;
                    break;
                case 1:
                    DoCast(me, SPELL_SUBMERGE_ANUBARAK);
                    DoCast(me, SPELL_CLEAR_ALL_DEBUFFS);
                    me->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
                    DoScriptText(SAY_BURROWER, me);
                    m_uiScarabSummoned = 0;
                    m_uiSummonScarabTimer = 4*IN_MILLISECONDS;
                    m_uiStage = 2;
                    break;
                case 2:
                    if (m_uiPursuingSpikeTimer <= uiDiff)
                    {
                        DoCast(SPELL_SPIKE_CALL);
                        // Just to make sure it won't happen again in this phase
                        m_uiPursuingSpikeTimer = 90*IN_MILLISECONDS;
                    } else m_uiPursuingSpikeTimer -= uiDiff;

                    if (m_uiSummonScarabTimer <= uiDiff)
                    {
                        /* WORKAROUND
                         * - The correct implementation is more likely the comment below but it needs spell knowledge
                         */
                        std::list<uint64>::iterator i = m_vBurrowGUID.begin();
                        uint32 at = urand(0, m_vBurrowGUID.size()-1);
                        for (uint32 k = 0; k < at; k++)
                            ++i;
                        if (Creature *pBurrow = Unit::GetCreature(*me, *i))
                            pBurrow->CastSpell(pBurrow, 66340, false);
                        m_uiScarabSummoned++;
                        m_uiSummonScarabTimer = 4*IN_MILLISECONDS;
                        if (m_uiScarabSummoned == 4) m_uiSummonScarabTimer = RAID_MODE(4, 20)*IN_MILLISECONDS;

                        /*It seems that this spell have something more that needs to be taken into account
                        //Need more sniff info
                        DoCast(SPELL_SUMMON_BEATLES);
                        // Just to make sure it won't happen again in this phase
                        m_uiSummonScarabTimer = 90*IN_MILLISECONDS;*/
                    } else m_uiSummonScarabTimer -= uiDiff;

                    if (m_uiSubmergeTimer <= uiDiff)
                    {
                        m_uiStage = 3;
                        m_uiSubmergeTimer = 80*IN_MILLISECONDS;
                    } else m_uiSubmergeTimer -= uiDiff;
                    break;
                case 3:
                    m_uiStage = 0;
                    DoCast(SPELL_SPIKE_TELE);
                    Summons.DespawnEntry(NPC_SPIKE);
                    me->RemoveAurasDueToSpell(SPELL_SUBMERGE_ANUBARAK);
                    me->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_NOT_SELECTABLE);
                    DoCast(me, SPELL_EMERGE_ANUBARAK);
                    me->GetMotionMaster()->MoveChase(me->getVictim());
                    m_uiSummonNerubianTimer = 10*IN_MILLISECONDS;
                    m_uiNerubianShadowStrikeTimer = 30*IN_MILLISECONDS;
                    m_uiSummonScarabTimer = 2*IN_MILLISECONDS;
                    break;
            }

            if (!IsHeroic())
            {
                if (m_uiSummonFrostSphereTimer <= uiDiff)
//.........这里部分代码省略.........
开发者ID:1024wow,项目名称:TrinityCore,代码行数:101,代码来源:boss_anubarak_trial.cpp

示例9: JustDied

 void JustDied(Unit* killer)
 {
     summons.DespawnAll();
 }
开发者ID:Dolmero,项目名称:L4G_Core,代码行数:4,代码来源:boss_amnennar_the_coldbringer.cpp

示例10: UpdateAI

        void UpdateAI(const uint32 uiDiff)
        {
            if (!UpdateVictim())
                return;

            if (!bIsFrenzy && HealthBelowPct(25) && !bIsExploded)
            {
                Talk(SAY_ENRAGE);
                DoCast(me, SPELL_FRENZY, true);
                bIsFrenzy = true;
            }

            if (!bIsFrenzy)
            {
                if (uiBubbleCheckerTimer <= uiDiff)
                {
                    if (!bIsExploded)
                    {
                        if (!me->HasAura(SPELL_PROTECTIVE_BUBBLE, 0))
                        {
                            Talk(SAY_SHATTER);
                            DoCast(me, SPELL_WATER_BLAST);
                            DoCast(me, SPELL_DRAINED);
                            bIsExploded = true;
                            me->AttackStop();
                            me->SetVisible(false);
                            for (uint8 i = 0; i < 10; i++)
                            {
                                int tmp = urand(0, MAX_SPAWN_LOC-1);
                                me->SummonCreature(NPC_ICHOR_GLOBULE, SpawnLoc[tmp], TEMPSUMMON_CORPSE_DESPAWN);
                            }
                        }
                    }
                    else
                    {
                        bool bIsWaterElementsAlive = false;
                        if (!m_waterElements.empty())
                        {
                            for (std::list<uint64>::const_iterator itr = m_waterElements.begin(); itr != m_waterElements.end(); ++itr)
                                if (Creature* temp = Unit::GetCreature(*me, *itr))
                                    if (temp->isAlive())
                                    {
                                        bIsWaterElementsAlive = true;
                                        break;
                                    }
                        }

                        if (!bIsWaterElementsAlive)
                            DoExplodeCompleted();
                    }
                    uiBubbleCheckerTimer = 1000;
                }
                else uiBubbleCheckerTimer -= uiDiff;
            }

            if (!bIsExploded)
            {
                if (uiWaterBoltVolleyTimer <= uiDiff)
                {
                    DoCast(me, SPELL_WATER_BOLT_VOLLEY);
                    uiWaterBoltVolleyTimer = urand(10000, 15000);
                }
                else uiWaterBoltVolleyTimer -= uiDiff;

                DoMeleeAttackIfReady();
            }
        }
开发者ID:ForesterDev,项目名称:trinitycore-m4a,代码行数:67,代码来源:boss_ichoron.cpp

示例11: DespawnWaterElements

 void DespawnWaterElements()
 {
     m_waterElements.DespawnAll();
 }
开发者ID:ForesterDev,项目名称:trinitycore-m4a,代码行数:4,代码来源:boss_ichoron.cpp

示例12: JustSummoned

 void JustSummoned(Creature* summon) override
 {
     summons.Summon(summon);
     summon->AI()->AttackStart(me->GetVictim());
 }
开发者ID:Carbenium,项目名称:TrinityCore,代码行数:5,代码来源:boss_black_knight.cpp

示例13: Reset

 void Reset()
 {
     events.Reset();
     summons.DespawnAll();
 }
开发者ID:Exodius,项目名称:chuspi,代码行数:5,代码来源:bastion_of_twilight.cpp

示例14: SummonedCreatureDespawn

 void SummonedCreatureDespawn(Creature* summoned) override
 {
     Summons.Despawn(summoned);
     --KillCount;
 }
开发者ID:AwkwardDev,项目名称:RE,代码行数:5,代码来源:zone_silverpine_forest.cpp

示例15: Reset

 void Reset()
 {
     summons.DespawnAll();
     events.Reset();
     stage = 0;
 }
开发者ID:Arkania,项目名称:ArkCORE-NG,代码行数:6,代码来源:boss_drahga_shadowburner.cpp


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