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


C++ instance_ulduar::GetKoloRubbleStalker方法代码示例

本文整理汇总了C++中instance_ulduar::GetKoloRubbleStalker方法的典型用法代码示例。如果您正苦于以下问题:C++ instance_ulduar::GetKoloRubbleStalker方法的具体用法?C++ instance_ulduar::GetKoloRubbleStalker怎么用?C++ instance_ulduar::GetKoloRubbleStalker使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在instance_ulduar的用法示例。


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

示例1: SummonedCreatureJustDied

    void SummonedCreatureJustDied(Creature* pSummoned) override
    {
        if (!m_creature->isAlive() || !m_creature->getVictim())
            return;

        if (pSummoned->GetEntry() == NPC_LEFT_ARM)
        {
            if (m_pInstance)
            {
                if (Creature* pStalker = m_creature->GetMap()->GetCreature(m_pInstance->GetKoloRubbleStalker(false)))
                {
                    pStalker->CastSpell(pStalker, m_bIsRegularMode ? SPELL_FALLING_RUBBLE : SPELL_FALLING_RUBBLE_H, TRIGGERED_OLD_TRIGGERED);
                    pStalker->CastSpell(pStalker, SPELL_SUMMON_RUBBLE, TRIGGERED_OLD_TRIGGERED);
                    pStalker->CastSpell(pStalker, SPELL_CANCEL_STONE_GRIP, TRIGGERED_OLD_TRIGGERED);
                }

                m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_OPEN_ARMS, false);
            }

            m_creature->RemoveAurasByCasterSpell(SPELL_RIDE_KOLOGARN_ARMS, pSummoned->GetObjectGuid());
            pSummoned->CastSpell(m_creature, m_bIsRegularMode ? SPELL_ARM_DEAD_DAMAGE_KOLOGARN : SPELL_ARM_DEAD_DAMAGE_KOLOGARN_H, TRIGGERED_OLD_TRIGGERED);
            DoScriptText(SAY_ARM_LOST_LEFT, m_creature);
            m_uiRespawnLeftTimer = 48000;

            // start disarmed achiev timer or set achiev crit as true if timer already started
            if (m_uiDisarmedTimer)
            {
                if (m_pInstance)
                    m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_DISARMED, true);
            }
            else
                m_uiDisarmedTimer = 12000;
        }
        else if (pSummoned->GetEntry() == NPC_RIGHT_ARM)
        {
            // spawn Rubble and cancel stone grip
            if (m_pInstance)
            {
                if (Creature* pStalker = m_creature->GetMap()->GetCreature(m_pInstance->GetKoloRubbleStalker(true)))
                {
                    pStalker->CastSpell(pStalker, m_bIsRegularMode ? SPELL_FALLING_RUBBLE : SPELL_FALLING_RUBBLE_H, TRIGGERED_OLD_TRIGGERED);
                    pStalker->CastSpell(pStalker, SPELL_SUMMON_RUBBLE, TRIGGERED_OLD_TRIGGERED);
                    pStalker->CastSpell(pStalker, SPELL_CANCEL_STONE_GRIP, TRIGGERED_OLD_TRIGGERED);
                }

                m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_OPEN_ARMS, false);
            }

            m_creature->RemoveAurasByCasterSpell(SPELL_RIDE_KOLOGARN_ARMS, pSummoned->GetObjectGuid());
            pSummoned->CastSpell(m_creature, m_bIsRegularMode ? SPELL_ARM_DEAD_DAMAGE_KOLOGARN : SPELL_ARM_DEAD_DAMAGE_KOLOGARN_H, TRIGGERED_OLD_TRIGGERED);
            DoScriptText(SAY_ARM_LOST_RIGHT, m_creature);
            m_uiRespawnRightTimer = 48000;

            // start disarmed achiev timer or set achiev crit as true if timer already started
            if (m_uiDisarmedTimer)
            {
                if (m_pInstance)
                    m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_DISARMED, true);
            }
            else
                m_uiDisarmedTimer = 12000;
        }
    }
开发者ID:Phatcat,项目名称:mangos-wotlk,代码行数:63,代码来源:boss_kologarn.cpp


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