本文整理汇总了C++中Quest::CanShowUnsatified方法的典型用法代码示例。如果您正苦于以下问题:C++ Quest::CanShowUnsatified方法的具体用法?C++ Quest::CanShowUnsatified怎么用?C++ Quest::CanShowUnsatified使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Quest
的用法示例。
在下文中一共展示了Quest::CanShowUnsatified方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getDialogStatus
uint32 Creature::getDialogStatus(Player *pPlayer, uint32 defstatus)
{
bool wasReward = false;
bool wasRewardRep = false;
bool wasAvail = false;
bool wasIncompl = false;
bool wasAnavail = false;
bool wasAvailShow = false;
bool wasUnavailShow = false;
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 ( pQuest == NULL ) continue;
if ( !pQuest->PreReqSatisfied( pPlayer ) ||
!pQuest->IsCompatible( pPlayer ) ||
pQuest->RewardIsTaken( pPlayer )
) continue;
if ( status == QUEST_STATUS_INCOMPLETE ) wasIncompl = true;
if ( status == QUEST_STATUS_COMPLETE )
{
if (pQuest->HasFlag( QUEST_SPECIAL_FLAGS_REPEATABLE ))
wasRewardRep = true; else
wasReward = true;
}
if ( status == QUEST_STATUS_AVAILABLE )
{
if ( pQuest->CanShowAvailable( pPlayer ) ) wasAvailShow = true;
wasAvail = true;
}
if ( status == QUEST_STATUS_UNAVAILABLE )
{
wasAnavail = true;
if ( pQuest->CanShowUnsatified( pPlayer ) ) wasUnavailShow = true;
}
if ( status == QUEST_STATUS_NONE )
{
if (!pQuest->LevelSatisfied( pPlayer ))
{
pPlayer->addNewQuest(quest_id, QUEST_STATUS_UNAVAILABLE );
if ( pQuest->CanShowUnsatified( pPlayer ) ) wasUnavailShow = true;
wasAnavail = true;
}
else
{
pPlayer->addNewQuest(quest_id, QUEST_STATUS_AVAILABLE );
if ( pQuest->CanShowAvailable( pPlayer ) ) wasAvailShow = true;
wasAvail = 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 )
{
if ( pQuest->HasFlag( QUEST_SPECIAL_FLAGS_SPEAKTO ) )
wasReward = true; else
wasIncompl = true;
}
}
if (wasReward) return DIALOG_STATUS_REWARD;
if (wasRewardRep) return DIALOG_STATUS_REWARD_REP;
if (wasAvail)
{
if (wasAvailShow)
return DIALOG_STATUS_AVAILABLE; else
return DIALOG_STATUS_CHAT;
}
if (wasIncompl) return DIALOG_STATUS_INCOMPLETE;
if ( defstatus != DIALOG_STATUS_NONE )
return defstatus;
//.........这里部分代码省略.........