这篇教程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函数代码示例 |