本文整理汇总了C++中Aura::GetAuraDuration方法的典型用法代码示例。如果您正苦于以下问题:C++ Aura::GetAuraDuration方法的具体用法?C++ Aura::GetAuraDuration怎么用?C++ Aura::GetAuraDuration使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Aura
的用法示例。
在下文中一共展示了Aura::GetAuraDuration方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MoveInLineOfSight
void MoveInLineOfSight(Unit* pWho) override
{
if (!m_pSpawnAssoc)
return;
if (pWho->isTargetableForAttack() && m_creature->IsHostileTo(pWho))
{
Player* pPlayerTarget = pWho->GetTypeId() == TYPEID_PLAYER ? (Player*)pWho : nullptr;
// airforce guards only spawn for players
if (!pPlayerTarget)
return;
Creature* pLastSpawnedGuard = m_spawnedGuid ? GetSummonedGuard() : nullptr;
// prevent calling GetCreature at next MoveInLineOfSight call - speedup
if (!pLastSpawnedGuard)
m_spawnedGuid.Clear();
switch (m_pSpawnAssoc->m_SpawnType)
{
case SPAWNTYPE_ALARMBOT:
{
if (!pWho->IsWithinDistInMap(m_creature, RANGE_GUARDS_MARK))
return;
Aura* pMarkAura = pWho->GetAura(SPELL_GUARDS_MARK, EFFECT_INDEX_0);
if (pMarkAura)
{
// the target wasn't able to move out of our range within 25 seconds
if (!pLastSpawnedGuard)
{
pLastSpawnedGuard = SummonGuard();
if (!pLastSpawnedGuard)
return;
}
if (pMarkAura->GetAuraDuration() < AURA_DURATION_TIME_LEFT)
{
if (!pLastSpawnedGuard->getVictim())
pLastSpawnedGuard->AI()->AttackStart(pWho);
}
}
else
{
if (!pLastSpawnedGuard)
pLastSpawnedGuard = SummonGuard();
if (!pLastSpawnedGuard)
return;
pLastSpawnedGuard->CastSpell(pWho, SPELL_GUARDS_MARK, true);
}
break;
}
case SPAWNTYPE_TRIPWIRE_ROOFTOP:
{
if (!pWho->IsWithinDistInMap(m_creature, RANGE_TRIPWIRE))
return;
if (!pLastSpawnedGuard)
pLastSpawnedGuard = SummonGuard();
if (!pLastSpawnedGuard)
return;
// ROOFTOP only triggers if the player is on the ground
if (!pPlayerTarget->IsFlying())
{
if (!pLastSpawnedGuard->getVictim())
pLastSpawnedGuard->AI()->AttackStart(pWho);
}
break;
}
}
}
}