本文整理汇总了C++中MagicInstance::Type9Cancel方法的典型用法代码示例。如果您正苦于以下问题:C++ MagicInstance::Type9Cancel方法的具体用法?C++ MagicInstance::Type9Cancel怎么用?C++ MagicInstance::Type9Cancel使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MagicInstance
的用法示例。
在下文中一共展示了MagicInstance::Type9Cancel方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: lock
void CMagicProcess::CheckExpiredType9Skills(Unit * pTarget, bool bForceExpiration /*= false*/)
{
if (!pTarget->isPlayer())
return;
FastGuard lock(pTarget->m_buffLock);
Type9BuffMap & buffMap = pTarget->m_type9BuffMap;
MagicInstance instance;
instance.pSkillCaster = pTarget;
for (auto itr = buffMap.begin(); itr != buffMap.end();)
{
if (bForceExpiration || UNIXTIME >= itr->second.tEndTime)
{
// Cancel the skill, but don't remove it from the map. We'll do that.
instance.nSkillID = itr->second.nSkillID;
instance.Type9Cancel(false);
itr = buffMap.erase(itr);
}
else
{
++itr;
}
}
}
示例2: RemoveStealth
void CMagicProcess::RemoveStealth(Unit * pTarget, InvisibilityType bInvisibilityType)
{
if (bInvisibilityType != INVIS_DISPEL_ON_MOVE
&& bInvisibilityType != INVIS_DISPEL_ON_ATTACK)
return;
FastGuard lock(pTarget->m_buffLock);
Type9BuffMap & buffMap = pTarget->m_type9BuffMap;
MagicInstance instance;
// Buff type is 1 for 'dispel on move' skills and 2 for 'dispel on attack' skills.
uint8 bType = (bInvisibilityType == INVIS_DISPEL_ON_MOVE ? 1 : 2);
// If there's no such skill active on the user, no reason to remove it.
auto itr = buffMap.find(bType);
if (itr == buffMap.end())
return;
instance.pSkillCaster = pTarget;
instance.nSkillID = itr->second.nSkillID;
instance.Type9Cancel();
}