本文整理汇总了C++中SpellItem::setDuration方法的典型用法代码示例。如果您正苦于以下问题:C++ SpellItem::setDuration方法的具体用法?C++ SpellItem::setDuration怎么用?C++ SpellItem::setDuration使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SpellItem
的用法示例。
在下文中一共展示了SpellItem::setDuration方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: timeout
void SpellShell::timeout()
{
SpellItem* spell;
QValueList<SpellItem*>::Iterator it = m_spellList.begin();
while (it != m_spellList.end())
{
spell = *it;
int d = spell->duration() -
pSEQPrefs->getPrefInt("SpellTimer", "SpellList", 6);
if (d > -6)
{
spell->setDuration(d);
emit changeSpell(spell);
it++;
}
else
{
seqInfo("SpellItem '%s' finished.", (*it)->spellName().latin1());
if (m_lastPlayerSpell == spell)
m_lastPlayerSpell = 0;
emit delSpell(spell);
it = m_spellList.remove(it);
delete spell;
}
}
if (m_spellList.count() == 0)
m_timer->stop();
}
示例2: buff
void SpellShell::buff(const uint8_t* data, size_t, uint8_t dir)
{
// we only care about the server
if (dir == DIR_Client)
return;
const buffStruct* b = (const buffStruct*)data;
// if this is the second server packet then ignore it
if (b->spellid == 0xffffffff)
return;
#ifdef DIAG_SPELLSHELL
seqDebug("Changing buff - id=%d from spawn=%d", b->spellid, b->spawnid);
#endif // DIAG_SPELLSHELL
const Spell* spell = m_spells->spell(b->spellid);
// find the spell item
SpellItem* item;
const Item* s;
QString targetName;
if (!spell || spell->targetType() != 6)
{
if (b->spawnid &&
((s = m_spawnShell->findID(tSpawn, b->spawnid))))
targetName = s->name();
item = findSpell(b->spellid, b->spawnid, targetName);
}
else
item = findSpell(b->spellid);
if (!item)
return;
if (b->changetype == 0x01) // removing buff
deleteSpell(item);
else if (b->changetype == 0x02)
{
// right now we only know how to find the updated duration
item->setDuration(b->duration * 6);
emit changeSpell(item);
}
}