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

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

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

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

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

示例1: HandleScript

            void HandleScript(SpellEffIndex /*eff*/)            {                Unit* caster = GetCaster();                if (!caster)                    return;                if (GetHitDamage() >= int32(GetHitUnit()->GetHealth()))                    if (caster->GetAI())                        caster->GetAI()->SetData(DATA_GRAVITY_BOMB_CASUALTY, 1);            }
开发者ID:martial69320,项目名称:cerberus,代码行数:10,


示例2: RecalculateDamage

            void RecalculateDamage(SpellEffIndex /*effIndex*/)            {                int32 dmg = GetHitDamage();                float distance = GetHitUnit()->GetExactDist2d(GetCaster());                if (distance < 5.0f)                    return;                float distVar = distance >= 20.0f ? 4 : (10.0f/3.0f);                SetHitDamage(int32(dmg * distVar / distance));            }
开发者ID:Deathwatch,项目名称:SkyFireEMU,代码行数:10,


示例3: HandleDamage

            void HandleDamage()            {                int32 damage = GetHitDamage();                // Pain and Suffering reduces damage                if (AuraEffect* aurEff = GetCaster()->GetDummyAuraEffect(SPELLFAMILY_PRIEST, PRIEST_ICON_ID_PAIN_AND_SUFFERING, EFFECT_1))                    AddPct(damage, aurEff->GetAmount());                GetCaster()->CastCustomSpell(GetCaster(), SPELL_PRIEST_SHADOW_WORD_DEATH, &damage, nullptr, nullptr, true);            }
开发者ID:mynew,项目名称:Core,代码行数:10,


示例4: SplitDamage

            void SplitDamage()            {                // Mark the unit as hit, even if the spell missed or was dodged/parried                GetCaster()->GetAI()->SetGUID(GetHitUnit()->GetGUID(), DATA_SPIKE_IMMUNE);                if (!_targetCount)                    return; // This spell can miss all targets                SetHitDamage(GetHitDamage() / _targetCount);            }
开发者ID:Rastrian,项目名称:DeathCore_6.x-1,代码行数:10,


示例5: HandleScript

            void HandleScript(SpellEffIndex /*eff*/)            {                Unit* caster = GetCaster();                if (!caster || !GetHitUnit())                    return;                if (GetHitDamage() >= int32(GetHitUnit()->GetHealth()))                    if (InstanceScript* instance = caster->GetInstanceScript())                        if (Creature* Heigan = ObjectAccessor::GetCreature(*caster, instance->GetGuidData(DATA_HEIGAN)))                            Heigan->AI()->KilledUnit(GetHitUnit());            }
开发者ID:kemlg,项目名称:trinitycore-conciens,代码行数:11,


示例6: CalcDamage

            void CalcDamage()            {                if (!GetHitUnit() || !GetCaster())                    return;                float distance = GetHitUnit()->GetExactDist2d(GetCaster());                if (distance < 10.0f)                    return;                SetHitDamage(int32(GetHitDamage() * 10 / distance));            }
开发者ID:Firearm,项目名称:TrinityCore,代码行数:11,


示例7: CalcDamage

            void CalcDamage(SpellEffIndex /*effIndex*/)            {                if (!GetHitUnit() || !GetTargetDest())                    return;                float distance = GetHitUnit()->GetExactDist2d(GetTargetDest());                if (distance < 3.4f)                    return;                SetHitDamage(int32(GetHitDamage() * 10.0f / pow(distance, 1.9f)));            }
开发者ID:Anonymus111,项目名称:chaoscore,代码行数:11,


示例8: HandleOnHit

            void HandleOnHit()            {				int32 damage = 0;				if (Unit* target = GetHitUnit())				{					float dist = target->GetDistance(GetCaster());					damage = int32(GetHitDamage() * (70.0f - std::min(70.0f, dist)) / 70.0f);				}				SetHitDamage(damage);            }
开发者ID:AlexHjelm,项目名称:sunwell,代码行数:11,


示例9: RecalculateDamage

 void RecalculateDamage(SpellEffIndex /*effIndex*/) {     if (GetHitUnit() && GetHitUnit()->HasAuraState(AURA_STATE_FROZEN, GetSpellInfo(), GetCaster()))     {         if (AuraEffect* aurEff = GetCaster()->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_MAGE, ICON_MAGE_SHATTER, EFFECT_1))         {             int32 damage = GetHitDamage();             AddPct(damage, aurEff->GetAmount());             SetHitDamage(damage);         }     } }
开发者ID:CrazyMeal,项目名称:Serval_Core,代码行数:12,


示例10: CalcDamage

            void CalcDamage()            {                int32 damage = GetHitDamage();                if (Unit* target = GetHitUnit())                    if (Aura* aura = target->GetAura(SPELL_AMBER_SHOCK_CHARGE, GetCaster()->GetGUID())) // shock charges from same caster                    {                        damage += aura->GetStackAmount()*6525;                        aura->Remove();                    }                SetHitDamage(damage);            }
开发者ID:boom8866,项目名称:azerothcore-wotlk,代码行数:12,


示例11: RecalculateDamage

            void RecalculateDamage()            {                if (GetHitUnit()->getPowerType() != POWER_MANA)                    return;                const int32 maxDamage = GetCaster()->GetMap()->GetSpawnMode() == 1 ? 15000 : 10000;                int32 newDamage = GetHitDamage();                newDamage += GetHitUnit()->GetMaxPower(POWER_MANA)/2;                newDamage = std::min<int32>(maxDamage, newDamage);                SetHitDamage(newDamage);            }
开发者ID:ATOM12192,项目名称:SkyFireEMU,代码行数:12,


示例12: CalcDamage

            void CalcDamage()            {                int32 damage = GetHitDamage();                if (Unit* target = GetHitUnit())                    if (AuraEffect const* shockCharges = target->GetAuraEffect(SPELL_AMBER_SHOCK_CHARGE, EFFECT_0, GetCaster()->GetGUID()))                    {                        damage += shockCharges->GetAmount();                        shockCharges->GetBase()->Remove();                    }                SetHitDamage(damage);            }
开发者ID:redlaine,项目名称:InfinityCore-Ark,代码行数:12,


示例13: HandleOnHit

		void HandleOnHit()		{			if (Unit* caster = GetCaster())			{				int32 damage = GetHitDamage();				// Mastery: Emberstorm				if (AuraEffect* aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_WARLOCK, 2129, EFFECT_0))					AddPct(damage, aurEff->GetAmount());				SetHitDamage(damage);			}		}
开发者ID:blitztech,项目名称:TrinityCore,代码行数:13,


示例14: DealDamage

        void DealDamage()        {            Unit* caster = GetCaster();            Unit* target = GetHitUnit();            if (!caster || !target)                return;            float distance = caster->GetExactDist2d(target);            if (distance >= 0 && distance <= 60)                SetHitDamage(GetHitDamage() * (distance / MAX_DIST));        }
开发者ID:Grimtonz1337,项目名称:JadeCore,代码行数:13,


示例15: HandleOnHit

            void HandleOnHit()            {                if (Player* _player = GetCaster()->ToPlayer())                {                    if (Unit* unitTarget = GetHitUnit())                    {                        if (unitTarget->IsImmunedToSpellEffect(sSpellMgr->GetSpellInfo(WARRIOR_SPELL_STORM_BOLT_STUN), 0))                            SetHitDamage(GetHitDamage() * 4);                        _player->CastSpell(unitTarget, WARRIOR_SPELL_STORM_BOLT_STUN, true);                    }                }            }
开发者ID:CATACLYSMDEV,项目名称:JadeCore-5.4.8-18291--dev-,代码行数:13,


示例16: RecalculateDamage

            void RecalculateDamage(SpellEffIndex /*effIndex*/)            {                if (!GetCaster())                    return;                int32 baseDamages = GetHitDamage();                int32 additionalDamages = GetCaster()->GetPower(POWER_ENERGY) * 100;                SetHitDamage(baseDamages + additionalDamages);                GetCaster()->SetPower(POWER_ENERGY, 0);            }
开发者ID:DebugProject,项目名称:MistCore,代码行数:13,


示例17: HandleOnHit

            void HandleOnHit(SpellEffIndex effIndex)            {                if (Unit* caster = GetCaster())                {                    if (caster->HasAura(44544))                        SetHitDamage(int32(GetHitDamage() * 1.25f));                    if (GetHitUnit())                        caster->SetIciclesTarget(GetHitUnit()->GetGUID());                    caster->CastSpell(caster, SPELL_MAGE_ICICLE_PERIODIC_TRIGGER, true);                }            }
开发者ID:Cailiaock,项目名称:5.4.7-Wow-source,代码行数:13,


示例18: HandleAfterHit

            void HandleAfterHit()            {                Unit* caster = GetCaster();                if (Unit* unitTarget = GetHitUnit())                {                    int32 bp = GetHitDamage() * multiplier;                    if (AuraEffect* aurEff = caster->GetAuraEffectOfRankedSpell(SPELL_DK_BLACK_ICE_R1, EFFECT_0))                        AddPct(bp, aurEff->GetAmount());                    caster->CastCustomSpell(unitTarget, SPELL_DK_SCOURGE_STRIKE_TRIGGERED, &bp, NULL, NULL, true);                }            }
开发者ID:AlucardVoss,项目名称:Patchs,代码行数:13,


示例19: CalculateDamage

            void CalculateDamage()            {                if (!GetHitUnit())                    return;                float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster());                if (!radius)                    return;                float distance = GetCaster()->GetDistance2d(GetHitUnit());                if (distance > 1.0f)                    SetHitDamage(int32(GetHitDamage() * ((radius - distance) / radius)));            }
开发者ID:mryanlam,项目名称:Old-TrinityCore-Project-Script.me-,代码行数:13,


示例20: HandleEffect

 void HandleEffect(SpellEffIndex effIndex) {     if (Unit* caster = GetCaster())     {         if (Unit* target = GetHitUnit())         {             if (Aura* cancellingAura = target->GetAura(SPELL_NOISE_CANCELLING_BUFF))             {                 float reducePct = cancellingAura->GetEffect(1)->GetBaseAmount();                 SetHitDamage(GetHitDamage() * (reducePct / 100));             }         }     } }
开发者ID:ChipLeo,项目名称:SkyFire_5xx,代码行数:14,


示例21: HandleOnHit

 void HandleOnHit () {     if (Unit* caster = GetCaster()->GetOwner())     {         // Searing Flames         if (AuraEffect * aurEff = caster->GetDummyAuraEffect(SPELLFAMILY_SHAMAN, 680, 0))             if (roll_chance_i(aurEff->GetAmount()))             {                 int32 damage = GetHitDamage();                 int32 bp0 = damage + GetHitUnit()->GetRemainingDotDamage(caster->GetGUID(), SHAMAN_SPELL_SEARING_FLAMES);                 caster->CastCustomSpell(GetHitUnit(), SHAMAN_SPELL_SEARING_FLAMES, &bp0, NULL, NULL, true, 0, 0, caster->GetGUID());             }     } }
开发者ID:BoThay,项目名称:ArkCORE,代码行数:14,


示例22: ChangeDamage

            void ChangeDamage(SpellEffIndex /*effIndex*/)            {                int32 damage = GetHitDamage();                // Because 1 Holy Power (HP) is consumed when casting spell,                // GetPower(POWER_HOLY_POWER) will return 0 when player has 1 HP,                // return 1 at 2 HP, and 2 at 3 HP                int32 hp = GetCaster()->GetPower(POWER_HOLY_POWER);                // Holy Power Scaling: 3 times damage at 2 HP, 6 times at 3 HP                damage *= 0.5*hp*hp + 1.5*hp + 1;                SetHitDamage(damage);            }
开发者ID:Diyvol,项目名称:TrinityCore,代码行数:14,


示例23: DealDamage

            void DealDamage()            {                if (Unit* target = GetHitUnit())                {                    if (AuraPtr aura = target->GetAura(SPELL_JASPER_CHAINS))                    {                        uint8 stacks = aura->GetStackAmount();                        int32 damage = GetHitDamage();                        if (damage && stacks)                            SetHitDamage(damage * stacks);                    }                }            }
开发者ID:AlucardVoss,项目名称:Patchs,代码行数:14,


示例24: CalculateDamage

        void CalculateDamage(SpellEffIndex /*effIndex*/)        {            int32 damagePerCombo = GetHitDamage();            if (AuraEffect const* t5 = GetCaster()->GetAuraEffect(SPELL_ROGUE_T5_2P_SET_BONUS, EFFECT_0))                damagePerCombo += t5->GetAmount();            int32 finalDamage = damagePerCombo;            std::vector<SpellPowerCost> const& costs = GetSpell()->GetPowerCost();            auto c = std::find_if(costs.begin(), costs.end(), [](SpellPowerCost const& cost) { return cost.Power == POWER_COMBO_POINTS; });            if (c != costs.end())                finalDamage *= c->Amount;            SetHitDamage(finalDamage);        }
开发者ID:090809,项目名称:TrinityCore,代码行数:14,


示例25: HandleDummy

 void HandleDummy(SpellEffIndex /*effIndex*/) {     if (Player* caster = GetCaster()->ToPlayer())     {         int32 damage = GetEffectValue();         int32 hitDamage = GetHitDamage();         if (caster->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_OFFHAND))         {             // Damage is increased by 25% if your off-hand weapon is enchanted with Flametongue.             if (caster->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_SHAMAN, 0x200000, 0, 0))                 AddPct(hitDamage, damage);             SetHitDamage(hitDamage);         }     } }
开发者ID:Allysia1,项目名称:TrinityCore,代码行数:15,


示例26: CalculateDamage

            void CalculateDamage(SpellEffIndex /*effIndex*/)            {                 if (!GetCaster() || !GetHitUnit())                    return;                int32 amount = GetHitDamage();                if (GetHitUnit()->HasAura(SPELL_DRAIN_LIFE_DAMAGE))                    amount += (amount * 0.60)*GetHitUnit()->GetAura(SPELL_DRAIN_LIFE_DAMAGE)->GetStackAmount();                int32 bp = amount * 25;                std::list<Creature*> durumu;                GetCreatureListWithEntryInGrid(durumu, GetCaster(), 68036, 100.0f);                for (auto durumuTarget : durumu)                    durumuTarget->CastCustomSpell(durumuTarget,SPELL_DRAIN_LIFE_HEAL,&bp,NULL,NULL,true);                SetHitDamage(amount);            }
开发者ID:Exodius,项目名称:JadeCore548,代码行数:18,


示例27: HandleOnHit

            void HandleOnHit()            {                if (Player* _player = GetCaster()->ToPlayer())                {                    SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(WARRIOR_SPELL_STORM_BOLT_STUN);                    if (spellInfo)                    {                        if (Unit* unitTarget = GetHitUnit())                        {                            if (unitTarget->IsImmunedToSpellEffect(spellInfo, 0))                                SetHitDamage(GetHitDamage() * 4);                            _player->CastSpell(unitTarget, WARRIOR_SPELL_STORM_BOLT_STUN);                            // Make sure storm bolt actually hit first, since this spell is in two parts, one part could miss                            if (unitTarget->HasAura(WARRIOR_SPELL_STORM_BOLT_STUN))                             _player->CastSpell(unitTarget, WARRIOR_SPELL_STORM_BOLT_DAMAGE);                        }                    }                }            }
开发者ID:Caydan,项目名称:WoWSCore548,代码行数:20,



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


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