本文整理汇总了C++中Guild::GetChallengesMgr方法的典型用法代码示例。如果您正苦于以下问题:C++ Guild::GetChallengesMgr方法的具体用法?C++ Guild::GetChallengesMgr怎么用?C++ Guild::GetChallengesMgr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Guild
的用法示例。
在下文中一共展示了Guild::GetChallengesMgr方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetBossState
bool InstanceScript::SetBossState(uint32 id, EncounterState state)
{
if (id < bosses.size())
{
BossInfo* bossInfo = &bosses[id];
if (bossInfo->state == TO_BE_DECIDED) // loading
{
bossInfo->state = state;
SaveToDB();
//TC_LOG_ERROR("misc", "Inialize boss %u state as %u.", id, (uint32)state);
return false;
}
else
{
if (bossInfo->state == state)
return false;
if (state == DONE)
for (MinionSet::iterator i = bossInfo->minion.begin(); i != bossInfo->minion.end(); ++i)
if ((*i)->isWorldBoss() && (*i)->IsAlive())
return false;
bossInfo->state = state;
SaveToDB();
}
for (uint32 type = 0; type < MAX_DOOR_TYPES; ++type)
for (DoorSet::iterator i = bossInfo->door[type].begin(); i != bossInfo->door[type].end(); ++i)
UpdateDoorState(*i);
for (MinionSet::iterator i = bossInfo->minion.begin(); i != bossInfo->minion.end(); ++i)
UpdateMinionState(*i, state);
// call method to check wether a guild challenge can be completed
if(bossInfo == &bosses.back() && state == DONE)
{
Guild* guild = nullptr;
for(Map::PlayerList::const_iterator itr = instance->GetPlayers().begin(); itr != instance->GetPlayers().end();++itr)
{
if(guild != itr->GetSource()->GetGuild())
guild = itr->GetSource()->GetGuild();
if(guild)
guild->GetChallengesMgr()->CheckInstanceChallenge(this, itr->GetSource()->GetGroup());
}
}
return true;
}
return false;
}