本文整理汇总了C++中Quest::CanBeTaken方法的典型用法代码示例。如果您正苦于以下问题:C++ Quest::CanBeTaken方法的具体用法?C++ Quest::CanBeTaken怎么用?C++ Quest::CanBeTaken使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Quest
的用法示例。
在下文中一共展示了Quest::CanBeTaken方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
Quest *Creature::getNextAvailableQuest(Player *pPlayer, Quest *prevQuest)
{
Quest *pQuest;
if ( prevQuest->m_qNextQuest != 0 )
{
pQuest = objmgr.GetQuest( prevQuest->m_qNextQuest );
if (pQuest)
{
if ( pQuest->CanBeTaken(pPlayer) )
return pQuest;
}
}
return NULL;
}
示例2: prepareQuestMenu
void Creature::prepareQuestMenu( Player *pPlayer )
{
uint32 quest_id;
uint32 status;
Quest *pQuest;
for( std::list<uint32>::iterator i = mQuestIds.begin( ); i != mQuestIds.end( ); ++ i )
{
quest_id = *i;
status = pPlayer->getQuestStatus(quest_id);
pQuest = objmgr.GetQuest(quest_id);
if ( status == QUEST_STATUS_INCOMPLETE )
pPlayer->PlayerTalkClass->GetQuestMenu()->QuestItem( quest_id, DIALOG_STATUS_INCOMPLETE, false );
if ( ( status == QUEST_STATUS_AVAILABLE ) && ( pQuest->CanBeTaken(pPlayer) ) )
pPlayer->PlayerTalkClass->GetQuestMenu()->QuestItem( quest_id, DIALOG_STATUS_AVAILABLE, true );
}
for( std::list<uint32>::iterator i = mInvolvedQuestIds.begin( ); i != mInvolvedQuestIds.end( ); ++ i )
{
quest_id = *i;
status = pPlayer->getQuestStatus(quest_id);
pQuest = objmgr.GetQuest(quest_id);
if ( status == QUEST_STATUS_INCOMPLETE )
pPlayer->PlayerTalkClass->GetQuestMenu()->QuestItem( quest_id, DIALOG_STATUS_INCOMPLETE, false );
if ( status == QUEST_STATUS_INCOMPLETE )
pPlayer->PlayerTalkClass->GetQuestMenu()->QuestItem( quest_id, DIALOG_STATUS_REWARD, false );
}
}