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

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

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

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

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

示例1: OnApply

 void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) {     if (Unit* caster = GetCaster())     {         int32 damage;         switch (GetStackAmount())         {             case 1:                 damage = 0;                 break;             case 2:                 damage = 500;                 break;             case 3:                 damage = 1000;                 break;             case 4:                 damage = 1500;                 break;             case 5:                 damage = 4000;                 break;             case 6:                 damage = 12000;                 break;             default:                 damage = 20000 + 1000 * (GetStackAmount() - 7);                 break;         }         if (damage)             caster->CastCustomSpell(SPELL_MARK_DAMAGE, SPELLVALUE_BASE_POINT0, damage, GetTarget());     } }
开发者ID:AllThing,项目名称:TrinityCore,代码行数:33,


示例2: ExtraEffect

 void ExtraEffect(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) {     GetTarget()->CastSpell(GetTarget(), SPELL_INOCULATED, true);     if (InstanceScript* instance = GetTarget()->GetInstanceScript())         if (Creature* festergut = ObjectAccessor::GetCreature(*GetTarget(), instance->GetData64(DATA_FESTERGUT)))             festergut->AI()->SetData(DATA_INOCULATED_STACK, GetStackAmount()); }
开发者ID:Carbinfibre,项目名称:Script-Land,代码行数:7,


示例3: OnUpdate

		void OnUpdate(uint32 diff, AuraEffectPtr aurEff)		{			if (GetCaster())			{				if (GetCaster()->HasAura(EYE_OF_THE_EMPRESS))				{					if (GetStackAmount() >= 5)					{						GetCaster()->RemoveAura(EYE_OF_THE_EMPRESS);						// transform						GetCaster()->AddAura(TRANSFORM_AURA, GetCaster());						if (Creature* boss = GetCaster()->FindNearestCreature(62837, 100.0f, true))						{							if (boss_empress_shekzeer::boss_empress_shekzeerAI* linkAI = CAST_AI(boss_empress_shekzeer::boss_empress_shekzeerAI, boss->GetAI()))							{								if (!linkAI->SayCharmed)								{									linkAI->SayCharmed = true;								}							}						}					}				}			}		}
开发者ID:Exodius,项目名称:JadeCore548,代码行数:26,


示例4: AfterRemove

            void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)            {                // Final heal only on duration end                if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)                    return;                // final heal                int32 stack = GetStackAmount();                int32 healAmount = aurEff->GetAmount();                if (Unit* caster = GetCaster())                {                    healAmount = caster->SpellHealingBonusDone(GetTarget(), GetSpellInfo(), healAmount, HEAL, aurEff->GetSpellEffectInfo(), stack);                    healAmount = GetTarget()->SpellHealingBonusTaken(caster, GetSpellInfo(), healAmount, HEAL, aurEff->GetSpellEffectInfo(), stack);                    GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());                    // restore mana                    std::vector<SpellInfo::CostData> costs = GetSpellInfo()->CalcPowerCost(caster, GetSpellInfo()->GetSchoolMask());                    auto m = std::find_if(costs.begin(), costs.end(), [](SpellInfo::CostData const& cost) { return cost.Power == POWER_MANA; });                    if (m != costs.end())                    {                        int32 returnMana = m->Amount * stack / 2;                        caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, NULL, NULL, true, NULL, aurEff, GetCasterGUID());                    }                    return;                }                GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());            }
开发者ID:beyourself,项目名称:DeathCore_6.x,代码行数:29,


示例5: OnApply

 void OnApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) {     if (GetStackAmount() == 5)     {         GetTarget()->CastSpell(GetTarget(), SPELL_HUNTER_FIRE, true, NULL, aurEff);         GetTarget()->RemoveAura(GetId());     } }
开发者ID:Abrek,项目名称:My-WoDCore-6.x.x,代码行数:8,


示例6: HandlePeriodic

 void HandlePeriodic(AuraEffect const* aurEff) {     PreventDefaultAction();     if (GetStackAmount() >= 5)     {         SetDuration(0);         GetUnitOwner()->CastSpell(GetUnitOwner(), SPELL_SNAKE_WRAP, true);     } }
开发者ID:boom8866,项目名称:azerothcore-wotlk,代码行数:9,


示例7: HandleRemove

 void HandleRemove(AuraEffect const* aurEff, AuraEffectHandleModes mode) {     PreventDefaultAction();     Aura* aura = aurEff->GetBase();     if (aura->GetStackAmount() == 1)         aura->Remove(AURA_REMOVE_BY_DEFAULT);     else         aura->SetStackAmount(GetStackAmount() - 1); }
开发者ID:update88,项目名称:loa,代码行数:9,


示例8: HandleAfterEffectApply

				void HandleAfterEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)				 {				Unit* target = GetTarget();				if (target->GetTypeId() == TYPEID_PLAYER)					 if (GetStackAmount() == GetSpellInfo()->StackAmount)					 {					Remove();					target->CastSpell(target, SPELL_WORGENS_CALL, true);					}				}
开发者ID:ter884,项目名称:TER-Server,代码行数:10,


示例9: HandlePeriodicTick

 void HandlePeriodicTick(AuraEffect const* /*aurEff*/) {     if (GetStackAmount() < 2)         return;     Unit* caster = GetCaster();     /// @todo the caster should be boss but not the player     if (!caster || !caster->GetAI())         return;     caster->GetAI()->SetGUID(GetTarget()->GetGUID(), DATA_INTENSE_COLD); }
开发者ID:Carbenium,项目名称:TrinityCore,代码行数:10,


示例10: HandleEffectApply

 void HandleEffectApply(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/) {     if (Unit* caster = GetCaster())     {         int32 mana = int32(aurEff->GetAmount() * std::pow(2.0f, GetStackAmount())); // mana restore - bp * 2^stackamount         int32 damage = mana * 2;         caster->CastCustomSpell(GetTarget(), SPELL_SARONITE_VAPORS_ENERGIZE, &mana, NULL, NULL, true);         caster->CastCustomSpell(GetTarget(), SPELL_SARONITE_VAPORS_DAMAGE, &damage, NULL, NULL, true);     } }
开发者ID:blitztech,项目名称:TrinityCore,代码行数:10,


示例11: OnStackChange

 void OnStackChange(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) {     if (GetStackAmount() == 15)     {         Unit* target = GetTarget(); // store target because aura gets removed         target->CastSpell(target, SPELL_EXPLOSIVE_BARRAGE_DAMAGE, false);         target->RemoveAurasDueToSpell(SPELL_HASTY_GROW);         target->RemoveAurasDueToSpell(SPELL_AUTO_GROW);         target->RemoveAurasDueToSpell(SPELL_EXPLODING_ORB);         if (Creature* creature = target->ToCreature())             creature->DespawnOrUnsummon();     } }
开发者ID:heros,项目名称:LasCore,代码行数:13,


示例12: HandleEffectPeriodic

        void HandleEffectPeriodic(AuraEffect const* /*aurEff*/)        {            Unit* caster = GetCaster();            if (!caster)                return;            int32 damage = int32(200 * std::pow(2.0f, GetStackAmount()));            CastSpellExtraArgs args(TRIGGERED_FULL_MASK);            args.AddSpellBP0(damage);            caster->CastSpell(caster, SPELL_BITING_COLD_DAMAGE, args);            if (caster->isMoving())                caster->RemoveAuraFromStack(SPELL_BITING_COLD_TRIGGERED);        }
开发者ID:lasyan3,项目名称:TrinityCore,代码行数:14,


示例13: OnApply

            void OnApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)            {                Unit* target = GetTarget();                if (GetStackAmount() == 101)                {                    target->RemoveAura(SPELL_RAM_LEVEL_NEUTRAL);                    target->RemoveAura(SPELL_RAM_TROT);                    target->RemoveAura(SPELL_RAM_CANTER);                    target->RemoveAura(SPELL_RAM_GALLOP);                    target->RemoveAura(SPELL_GIDDYUP);                    target->CastSpell(target, SPELL_EXHAUSTED_RAM, true);                }            }
开发者ID:Brokentrojan,项目名称:ngen,代码行数:15,


示例14: HandleEffectApply

            void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)            {                Player* player = GetTarget()->ToPlayer();                if (!player)                    return;                if ((player->HasAura(SPELL_TORCH_TOSSING_TRAINING) && GetStackAmount() == 8) || (player->HasAura(SPELL_TORCH_TOSSING_PRACTICE) && GetStackAmount() == 20))                {                    if (player->GetTeam() == ALLIANCE)                        player->CastSpell(player, SPELL_TORCH_TOSSING_TRAINING_SUCCESS_ALLIANCE, true);                    else if (player->GetTeam() == HORDE)                        player->CastSpell(player, SPELL_TORCH_TOSSING_TRAINING_SUCCESS_HORDE, true);                    Remove();                }            }
开发者ID:AwkwardDev,项目名称:RE,代码行数:15,


示例15: OnStackChange

 void OnStackChange(AuraEffect const* /*aurEff*/, AuraApplication const* aurApp, AuraEffectHandleModes /*mode*/) {     Unit* target = aurApp->GetTarget();     if (!target)         return;     switch (GetStackAmount())     {         case 1:             target->CastSpell(target, SPELL_SHADOWMOURNE_VISUAL_LOW, true);             break;         case 6:             target->RemoveAurasDueToSpell(SPELL_SHADOWMOURNE_VISUAL_LOW);             target->CastSpell(target, SPELL_SHADOWMOURNE_VISUAL_HIGH, true);             break;         case 10:             target->RemoveAurasDueToSpell(SPELL_SHADOWMOURNE_VISUAL_HIGH);             target->CastSpell(target, SPELL_SHADOWMOURNE_CHAOS_BANE_BUFF, true);             break;     } }
开发者ID:Bootz,项目名称:S6.RO.WoW,代码行数:20,


示例16: OnChange

            void OnChange(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)            {                Unit* target = GetTarget();                if (!target->HasAura(SPELL_RENTAL_RACING_RAM))                {                    target->RemoveAura(GetId());                    return;                }                if (target->HasAura(SPELL_EXHAUSTED_RAM))                    return;                switch (GetStackAmount())                {                    case 1: // green                        target->RemoveAura(SPELL_RAM_LEVEL_NEUTRAL);                        target->RemoveAura(SPELL_RAM_CANTER);                        target->CastSpell(target, SPELL_RAM_TROT, true);                        break;                    case 6: // yellow                        target->RemoveAura(SPELL_RAM_TROT);                        target->RemoveAura(SPELL_RAM_GALLOP);                        target->CastSpell(target, SPELL_RAM_CANTER, true);                        break;                    case 11: // red                        target->RemoveAura(SPELL_RAM_CANTER);                        target->CastSpell(target, SPELL_RAM_GALLOP, true);                        break;                    default:                        break;                }                if (GetTargetApplication()->GetRemoveMode() == AURA_REMOVE_BY_DEFAULT)                {                    target->RemoveAura(SPELL_RAM_TROT);                    target->CastSpell(target, SPELL_RAM_LEVEL_NEUTRAL, true);                }            }
开发者ID:Brokentrojan,项目名称:ngen,代码行数:38,


示例17: AfterRemove

            void AfterRemove(AuraEffect const* aurEff, AuraEffectHandleModes /*mode*/)            {                // Final heal only on duration end                if (GetTargetApplication()->GetRemoveMode() != AURA_REMOVE_BY_EXPIRE)                    return;                // final heal                int32 stack = GetStackAmount();                int32 healAmount = aurEff->GetAmount();                if (Unit* caster = GetCaster())                {                    healAmount = caster->SpellHealingBonusDone(GetTarget(), GetSpellInfo(), healAmount, HEAL, stack);                    healAmount = GetTarget()->SpellHealingBonusTaken(caster, GetSpellInfo(), healAmount, HEAL, stack);                    GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());                    // restore mana                    int32 returnMana = CalculatePct(caster->GetCreateMana(), GetSpellInfo()->ManaCostPercentage) * stack / 2;                    caster->CastCustomSpell(caster, SPELL_DRUID_LIFEBLOOM_ENERGIZE, &returnMana, NULL, NULL, true, NULL, aurEff, GetCasterGUID());                    return;                }                GetTarget()->CastCustomSpell(GetTarget(), SPELL_DRUID_LIFEBLOOM_FINAL_HEAL, &healAmount, NULL, NULL, true, NULL, aurEff, GetCasterGUID());            }
开发者ID:Hlkz2,项目名称:ACoreOld,代码行数:24,


示例18: HandleEffectApply

		void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)		{			if (GetStackAmount() == GetSpellInfo()->StackAmount)				GetTarget()->CastSpell(GetTarget(), 93683, true);		}
开发者ID:Tithand,项目名称:TER-Server,代码行数:5,


示例19: HandleProc

    void HandleProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo)    {        PreventDefaultAction();        Unit* healer = eventInfo.GetProcTarget();        if (healer->HasAura(SPELL_VITAL_FLAME))            return;        bool is25ManHeroic = healer->GetMap()->IsHeroic() && healer->GetMap()->Is25ManRaid();        uint32 stacks = healer->GetAuraCount(SPELL_VITAL_SPARK) + std::min(uint8(ceil(GetStackAmount() / (is25ManHeroic ? 5.0 : 3.0))), uint8(255));        healer->SetAuraStack(SPELL_VITAL_SPARK, healer, stacks);        if (Aura* aura = healer->GetAura(SPELL_VITAL_SPARK))            aura->RefreshDuration();    }
开发者ID:Carbenium,项目名称:TrinityCore,代码行数:14,



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


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