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

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

51自学网 2021-06-01 21:15:14
  C++
这篇教程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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。