當前位置: 首頁>>代碼示例>>C++>>正文


C++ GetAISpellInfo函數代碼示例

本文整理匯總了C++中GetAISpellInfo函數的典型用法代碼示例。如果您正苦於以下問題:C++ GetAISpellInfo函數的具體用法?C++ GetAISpellInfo怎麽用?C++ GetAISpellInfo使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了GetAISpellInfo函數的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C++代碼示例。

示例1: GetAISpellInfo

void CasterAI::InitializeAI()
{
    CombatAI::InitializeAI();

    m_attackDist = 30.0f;
    for (SpellVct::iterator itr = spells.begin(); itr != spells.end(); ++itr)
        if (AISpellInfo[*itr].condition == AICOND_COMBAT && m_attackDist > GetAISpellInfo(*itr)->maxRange)
            m_attackDist = GetAISpellInfo(*itr)->maxRange;
    if (m_attackDist == 30.0f)
        m_attackDist = MELEE_RANGE;
}
開發者ID:Rastrian,項目名稱:CataCore,代碼行數:11,代碼來源:CombatAI.cpp

示例2: DoCast

void CasterAI::UpdateAI(const uint32 diff)
{
    if (!UpdateVictim())
        return;

    events.Update(diff);

    if (me->GetVictim()->HasBreakableByDamageCrowdControlAura(me))
    {
        me->InterruptNonMeleeSpells(false);
        return;
    }

    if (me->HasUnitState(UNIT_STATE_CASTING))
        return;

    if (uint32 spellId = events.ExecuteEvent())
    {
        if (me->HasSpellCooldown(spellId))
            return;

        DoCast(spellId);
        uint32 casttime = me->GetCurrentSpellCastTime(spellId);
        events.ScheduleEvent(spellId, (casttime ? casttime : 500) + GetAISpellInfo(spellId)->realCooldown);
    }
}
開發者ID:beyourself,項目名稱:Wow-4.3.4,代碼行數:26,代碼來源:CombatAI.cpp

示例3: DoCast

void CasterAI::UpdateAI(const uint32 diff)
{
    if (!UpdateVictim())
        return;

    events.Update(diff);

    if (me->hasUnitState(UNIT_STAT_CASTING))
        return;

    if (uint32 spellId = events.ExecuteEvent())
    {
        DoCast(spellId);
        uint32 casttime = me->GetCurrentSpellCastTime(spellId);
        events.ScheduleEvent(spellId, (casttime ? casttime : 500) + GetAISpellInfo(spellId)->realCooldown);
    }
}
開發者ID:LolJK,項目名稱:PhantomCore,代碼行數:17,代碼來源:CombatAI.cpp

示例4: rand

void CasterAI::EnterCombat(Unit *who) {
	if (spells.empty())
		return;

	uint32 spell = rand() % spells.size();
	uint32 count = 0;
	for (SpellVct::iterator itr = spells.begin(); itr != spells.end();
			++itr, ++count) {
		if (AISpellInfo[*itr].condition == AICOND_AGGRO)
			me->CastSpell(who, *itr, false);
		else if (AISpellInfo[*itr].condition == AICOND_COMBAT) {
			uint32 cooldown = GetAISpellInfo(*itr)->realCooldown;
			if (count == spell) {
				DoCast(spells[spell]);
				cooldown += me->GetCurrentSpellCastTime(*itr);
			}
			events.ScheduleEvent(*itr, cooldown);
		}
	}
}
開發者ID:rexy,項目名稱:ArkCORE,代碼行數:20,代碼來源:CombatAI.cpp

示例5: DoCast

void CasterAI::UpdateAI(const uint32 diff)
{
    if (!UpdateVictim())
        return;

    events.Update(diff);

    if (me->getVictim() && me->getVictim()->hasNegativeAuraWithInterruptFlag(AURA_INTERRUPT_FLAG_DAMAGE))
    {
        me->InterruptNonMeleeSpells(false);
        return;
    }

    if (me->hasUnitState(UNIT_STAT_CASTING))
        return;

    if (uint32 spellId = events.ExecuteEvent())
    {
        DoCast(spellId);
        uint32 casttime = me->GetCurrentSpellCastTime(spellId);
        events.ScheduleEvent(spellId, (casttime ? casttime : 500) + GetAISpellInfo(spellId)->realCooldown);
    }
}
開發者ID:FirestormWoW,項目名稱:TBC,代碼行數:23,代碼來源:CombatAI.cpp


注:本文中的GetAISpellInfo函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。