这篇教程C++ GetSpellInfo函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetSpellInfo函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSpellInfo函数的具体用法?C++ GetSpellInfo怎么用?C++ GetSpellInfo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetSpellInfo函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: Load bool Load() { healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); return true; }
开发者ID:Altair69,项目名称:SkyFireEMU,代码行数:5,
示例2: Load bool Load() { // Max absorb stored in 1 dummy effect limit = GetSpellInfo()->Effects[EFFECT_1].CalcValue(); return true; }
开发者ID:Sania001,项目名称:ALiveCoreRC2,代码行数:6,
示例3: HandleDummyLaunch void HandleDummyLaunch(SpellEffIndex /*effIndex*/) { sLog->outString("Spell %u with SPELL_EFFECT_DUMMY is just launched!", GetSpellInfo()->Id); }
开发者ID:FirstCore,项目名称:FunCore,代码行数:4,
示例4: HandleDummyHit void HandleDummyHit(SpellEffIndex /*effIndex*/) { sLog->outString("Spell %u with SPELL_EFFECT_DUMMY has hit!", GetSpellInfo()->Id); }
开发者ID:FirstCore,项目名称:FunCore,代码行数:4,
示例5: HandleDummy void HandleDummy(SpellEffIndex /*effIndex*/) { if (Unit* unitTarget = GetHitUnit()) { int32 bp0 = 0; int32 bp1 = 0; // Living ghoul as a target if (unitTarget->isAlive()) { bp0 = int32(unitTarget->CountPctFromMaxHealth(25)); bp1 = int32(unitTarget->CountPctFromMaxHealth(200)); unitTarget->CastCustomSpell(unitTarget, DK_SPELL_PET_EXPLODE, &bp0, &bp1, NULL, false); } // Some corpse else { bp0 = GetEffectValue(); GetCaster()->CastCustomSpell(unitTarget, SpellMgr::CalculateSpellEffectAmount(GetSpellInfo(), 1), &bp0, NULL, NULL, true); // Set corpse look unitTarget->SetDisplayId(DISPLAY_GHOUL_CORPSE + urand(0, 3)); } } }
开发者ID:Sharki,项目名称:TC,代码行数:23,
示例6: HandleEffectRemove void HandleEffectRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { if (Player* player = GetTarget()->ToPlayer()) if (AuraEffect const* glyph = player->GetAuraEffect(SPELL_DK_GLYPH_OF_REGENERATIVE_MAGIC, EFFECT_0)) // reduce cooldown of AMS if player has glyph { // Cannot reduce cooldown by more than 50% int32 val = std::min(glyph->GetAmount(), int32(absorbedAmount) * 100 / maxHealth); player->GetSpellHistory()->ModifyCooldown(GetId(), -int32(player->GetSpellHistory()->GetRemainingCooldown(GetSpellInfo()) * val / 100)); } }
开发者ID:DSlayerMan,项目名称:DraenorCore,代码行数:10,
示例7: CheckCast SpellCastResult CheckCast() { if (int32(GetCaster()->GetHealth()) > int32(GetCaster()->CountPctFromMaxHealth(GetSpellInfo()->Effects[EFFECT_2].CalcValue()))) return SPELL_CAST_OK; return SPELL_FAILED_FIZZLE; }
开发者ID:BlackWolfsDen,项目名称:Cataclysm,代码行数:6,
示例8: CalculateAmount void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/) { if (AuraEffect* aurEff = GetUnitOwner()->GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_PET, GetSpellInfo()->SpellIconID, EFFECT_0)) AddPct(amount, aurEff->GetAmount()); }
开发者ID:AzerothShard-Dev,项目名称:azerothcore,代码行数:5,
示例9: HandleHit void HandleHit(SpellEffIndex /*effIndex*/) { if (AuraEffect const* aurEff = GetHitUnit()->GetAuraEffect(SPELL_WARLOCK_IMMOLATE, EFFECT_2, GetCaster()->GetGUID())) SetHitDamage(CalculatePct(aurEff->GetAmount(), GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster()))); }
开发者ID:BlackWolfsDen,项目名称:Cataclysm,代码行数:5,
示例10: CheckCast SpellCastResult CheckCast() { if ((int32(GetCaster()->GetHealth()) > int32(GetSpellInfo()->Effects[EFFECT_0].CalcValue() + (6.3875 * GetSpellInfo()->BaseLevel)))) return SPELL_CAST_OK; return SPELL_FAILED_FIZZLE; }
开发者ID:Shutok,项目名称:WingsEMU,代码行数:6,
示例11: HandleEffectBearProc void HandleEffectBearProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { PreventDefaultAction(); if (GetTarget()->GetShapeshiftForm() != FORM_BEAR || eventInfo.GetDamageInfo()->GetSpellInfo()->Id != SPELL_DRUID_FERAL_CHARGE_BEAR) return; GetTarget()->CastSpell(GetTarget(), sSpellMgr->GetSpellWithRank(SPELL_DRUID_STAMPEDE_BAER_RANK_1, GetSpellInfo()->GetRank()), true, NULL, aurEff); }
开发者ID:Nightprince,项目名称:SkyFire.548,代码行数:8,
示例12: HandleEnergize void HandleEnergize(SpellEffIndex effIndex) { Player* caster = GetCaster()->ToPlayer(); // No boomy, no deal. if (caster->GetPrimaryTalentTree(caster->GetActiveSpec()) != TALENT_TREE_DRUID_BALANCE) return; switch(GetSpellInfo()->Id) { case SPELL_DRUID_WRATH: { energizeAmount = -GetSpellInfo()->Effects[effIndex].BasePoints; // -13 // If we are set to fill the lunar side or we've just logged in with 0 power.. if ((!caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER)) || caster->GetPower(POWER_ECLIPSE) == 0) { caster->CastCustomSpell(caster,SPELL_DRUID_ECLIPSE_GENERAL_ENERGIZE,&energizeAmount,0,0,true); // If the energize was due to 0 power, cast the eclipse marker aura if (!caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER)) caster->CastSpell(caster,SPELL_DRUID_LUNAR_ECLIPSE_MARKER,true); } // The energizing effect brought us out of the solar eclipse, remove the aura if (caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE) && caster->GetPower(POWER_ECLIPSE) <= 0) caster->RemoveAurasDueToSpell(SPELL_DRUID_SOLAR_ECLIPSE); break; } case SPELL_DRUID_STARFIRE: { energizeAmount = GetSpellInfo()->Effects[effIndex].BasePoints; // 20 // If we are set to fill the solar side or we've just logged in with 0 power.. if ((!caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER)) || caster->GetPower(POWER_ECLIPSE) == 0) { caster->CastCustomSpell(caster,SPELL_DRUID_ECLIPSE_GENERAL_ENERGIZE,&energizeAmount,0,0,true); // If the energize was due to 0 power, cast the eclipse marker aura if (!caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER)) caster->CastSpell(caster,SPELL_DRUID_SOLAR_ECLIPSE_MARKER,true); } // The energizing effect brought us out of the lunar eclipse, remove the aura if (caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE) && caster->GetPower(POWER_ECLIPSE) >= 0) caster->RemoveAura(SPELL_DRUID_LUNAR_ECLIPSE); break; } case SPELL_DRUID_STARSURGE: { // If we are set to fill the solar side or we've just logged in with 0 power (confirmed with sniffs) if ((!caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER)) || caster->GetPower(POWER_ECLIPSE) == 0) { energizeAmount = GetSpellInfo()->Effects[effIndex].BasePoints; // 15 caster->CastCustomSpell(caster,SPELL_DRUID_STARSURGE_ENERGIZE,&energizeAmount,0,0,true); // If the energize was due to 0 power, cast the eclipse marker aura if (!caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER)) caster->CastSpell(caster,SPELL_DRUID_SOLAR_ECLIPSE_MARKER,true); } else if (!caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE_MARKER) && caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE_MARKER)) { energizeAmount = -GetSpellInfo()->Effects[effIndex].BasePoints; // -15 caster->CastCustomSpell(caster,SPELL_DRUID_STARSURGE_ENERGIZE,&energizeAmount,0,0,true); } // The energizing effect brought us out of the lunar eclipse, remove the aura if (caster->HasAura(SPELL_DRUID_LUNAR_ECLIPSE) && caster->GetPower(POWER_ECLIPSE) >= 0) caster->RemoveAura(SPELL_DRUID_LUNAR_ECLIPSE); // The energizing effect brought us out of the solar eclipse, remove the aura else if (caster->HasAura(SPELL_DRUID_SOLAR_ECLIPSE) && caster->GetPower(POWER_ECLIPSE) <= 0) caster->RemoveAura(SPELL_DRUID_SOLAR_ECLIPSE); break; } } }
开发者ID:SgT-Fatality,项目名称:PandarenCore,代码行数:72,
示例13: HandlePeriodic void HandlePeriodic(AuraEffect const* aurEff) { PreventDefaultAction(); if (aurEff->GetAmount() <= 0) { Unit* target = GetTarget(); uint32 spellId = SPELL_HUNTER_SNIPER_TRAINING_BUFF_R1 + GetId() - SPELL_HUNTER_SNIPER_TRAINING_R1; target->CastSpell(target, spellId, true, 0, aurEff); if (Player* playerTarget = GetUnitOwner()->ToPlayer()) { int32 baseAmount = aurEff->GetBaseAmount(); int32 amount = playerTarget->CalculateSpellDamage(playerTarget, GetSpellInfo(), aurEff->GetEffIndex(), &baseAmount); GetEffect(EFFECT_0)->SetAmount(amount); } } }
开发者ID:AwkwardDev,项目名称:TinyCore,代码行数:16,
示例14: Load bool Load() override { absorbChance = GetSpellInfo()->Effects[EFFECT_0].CalcValue(); return GetUnitOwner()->GetTypeId() == TYPEID_PLAYER; }
开发者ID:DanielBallaSZTE,项目名称:TrinityCorePreWOTLK,代码行数:5,
示例15: Load bool Load() { chance = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster()); return true; }
开发者ID:Eralan,项目名称:Darkcore,代码行数:5,
示例16: HandleDummyLaunchTarget void HandleDummyLaunchTarget(SpellEffIndex /*effIndex*/) { uint64 targetGUID = 0; if (Unit* unitTarget = GetHitUnit()) targetGUID = unitTarget->GetGUID(); // we're handling SPELL_EFFECT_DUMMY in effIndex 0 here sLog->outString("Spell %u with SPELL_EFFECT_DUMMY is just launched at it's target: " UI64FMTD "!", GetSpellInfo()->Id, targetGUID); }
开发者ID:FirstCore,项目名称:FunCore,代码行数:8,
示例17: CountTargets void CountTargets(std::list<WorldObject*>& targets) { _targetCount = std::min<uint32>(targets.size(), GetSpellInfo()->MaxAffectedTargets); }
开发者ID:GetPlay,项目名称:TC,代码行数:4,
示例18: HandleForceCast void HandleForceCast(SpellEffIndex effIndex) { PreventHitDefaultEffect(effIndex); GetCaster()->CastSpell(GetCaster(), GetSpellInfo()->GetEffect(effIndex)->TriggerSpell, true); }
开发者ID:blitztech,项目名称:TrinityCore,代码行数:5,
示例19: FilterTargets void FilterTargets(std::list<WorldObject*>& targets) { for (std::list<WorldObject*>::iterator itr = targets.begin(); itr != targets.end();) { if ((*itr)->GetTypeId() == TYPEID_PLAYER && (*itr)->ToPlayer()->GetQuestStatus(GetSpellInfo()->GetEffect(EFFECT_1)->CalcValue()) == QUEST_STATUS_INCOMPLETE) ++itr; else targets.erase(itr++); } targets.push_back(GetCaster()); }
开发者ID:Carbenium,项目名称:TrinityCore,代码行数:11,
示例20: HandleEffectApply void HandleEffectApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) { if (GetStackAmount() == GetSpellInfo()->StackAmount) GetTarget()->CastSpell(GetTarget(), 93683, true); }
开发者ID:Tithand,项目名称:TER-Server,代码行数:5,
示例21: HandleExtraEffect void HandleExtraEffect() { if (GetSpellInfo()->Id == PRIEST_SPELL_SANCTUARY_8YD_DUMMY) GetCaster()->CastSpell(x, y, z, PRIEST_SPELL_SANCTUARY_4YD_DUMMY, true); }
开发者ID:Altair69,项目名称:SkyFireEMU,代码行数:5,
示例22: Load bool Load() override { healPct = GetSpellInfo()->Effects[EFFECT_1].CalcValue(GetCaster()); return true; }
开发者ID:Myst,项目名称:ElunaTrinityCata,代码行数:5,
示例23: HandleSendEvent void HandleSendEvent(SpellEffIndex effIndex) { // If only one player in threat list fail spell Creature* Summoned = NULL; Creature* caster = GetCaster()->ToCreature(); int8 pos_to_summon = 0; int8 phase_to_set = 0; int32 gate_to_close = 0; switch (GetSpellInfo()->Effects[effIndex].MiscValue) { case SPELL_EVENT_HALLOFSECRETS: pos_to_summon = 0; // Not yet spawned phase_to_set = 1; gate_to_close = GO_GATE_RAVENIAN; break; case SPELL_EVENT_HALLOFTHEDAMNED: pos_to_summon = 0; phase_to_set = 2; gate_to_close = GO_GATE_THEOLEN; break; case SPELL_EVENT_THECOVEN: pos_to_summon = 3; phase_to_set = 3; gate_to_close = GO_GATE_MALICIA; break; case SPELL_EVENT_THESHADOWVAULT: pos_to_summon = 6; phase_to_set = 4; gate_to_close = GO_GATE_ILLUCIA; break; case SPELL_EVENT_BAROVFAMILYVAULT: pos_to_summon = 9; phase_to_set = 5; gate_to_close = GO_GATE_BAROV; break; case SPELL_EVENT_VAULTOFTHERAVENIAN: pos_to_summon = 0; // Not yet spawned phase_to_set = 6; gate_to_close = GO_GATE_POLKELT; break; default: break; } if (gate_to_close && (GetCaster()->GetMap()->GetId() == 289)) { for (uint8 i = 0; i < 3; ++i) { Summoned = GetCaster()->SummonCreature(NPC_RISEN_GUARDIAN, SummonPos[pos_to_summon++], TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 120000); if (Summoned) { Summoned->GetMotionMaster()->MoveRandom(5); Summoned->AI()->SetData(0,phase_to_set); } } if (InstanceScript* instance = GetCaster()->GetInstanceScript()) if (GameObject* gate = GameObject::GetGameObject(*caster, instance->GetData64(gate_to_close))) gate->SetGoState(GO_STATE_READY); } }
开发者ID:ForesterDev,项目名称:trinitycore-m4a,代码行数:64,
示例24: HandleDummy void HandleDummy(SpellEffIndex /*effIndex*/) { Player* player = GetCaster()->GetCharmerOrOwnerPlayerOrPlayerItself(); if (!player) return; uint32 spellId = 0; switch (GetSpellInfo()->Id) { case SPELL_FEAST_ON_TURKEY: spellId = SPELL_PLAYER_TURKEY; break; case SPELL_FEAST_ON_STUFFING: spellId = SPELL_PLAYER_STUFFING; break; case SPELL_FEAST_ON_PIE: spellId = SPELL_PLAYER_PIE; break; case SPELL_FEAST_ON_CRANBERRY: spellId = SPELL_PLAYER_CRANBERRY; break; case SPELL_FEAST_ON_SWEET_POTATOES: spellId = SPELL_PLAYER_SWEET_POTATOES; break; } if (spellId) { player->CastSpell(player, spellId, true); if (AuraEffect* aur = player->GetAuraEffectDummy(spellId)) { if (aur->GetBase()->GetStackAmount() >= 5) { switch (spellId) { case SPELL_PLAYER_TURKEY: player->CastSpell(player, SPELL_WELL_FED_TURKEY, true); break; case SPELL_PLAYER_STUFFING: player->CastSpell(player, SPELL_WELL_FED_STUFFING, true); break; case SPELL_PLAYER_PIE: player->CastSpell(player, SPELL_WELL_FED_PIE, true); break; case SPELL_PLAYER_CRANBERRY: player->CastSpell(player, SPELL_WELL_FED_CRANBERRY, true); break; case SPELL_PLAYER_SWEET_POTATOES: player->CastSpell(player, SPELL_WELL_FED_SWEET_POTATOES, true); break; } uint8 count = 0; Unit::AuraEffectList const& dummyAuras = player->GetAuraEffectsByType(SPELL_AURA_DUMMY); for (Unit::AuraEffectList::const_iterator i = dummyAuras.begin(); i != dummyAuras.end(); ++i) { if ((*i)->GetId() >= SPELL_PLAYER_CRANBERRY && (*i)->GetId() <= SPELL_PLAYER_PIE) if ((*i)->GetBase()->GetStackAmount() >= 5) ++count; } // Cast spirit of sharing if (count >= 5) player->CastSpell(player, SPELL_SPIRIT_OF_SHARING, true); } } } }
开发者ID:AlexHjelm,项目名称:sunwell,代码行数:68,
示例25: Load bool Load() override { absorbPct = GetSpellInfo()->GetEffect(EFFECT_0)->CalcValue(GetCaster()); return true; }
开发者ID:Rastrian,项目名称:DeathCore_6.x-1,代码行数:5,
注:本文中的GetSpellInfo函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetSpellMaxRange函数代码示例 C++ GetSpell函数代码示例 |