本文整理匯總了PHP中client::logPlayerCompletedQuest方法的典型用法代碼示例。如果您正苦於以下問題:PHP client::logPlayerCompletedQuest方法的具體用法?PHP client::logPlayerCompletedQuest怎麽用?PHP client::logPlayerCompletedQuest使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類client
的用法示例。
在下文中一共展示了client::logPlayerCompletedQuest方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: checkForCascadingLogs
public static function checkForCascadingLogs($pack)
{
$quests = dbconnection::queryArray("SELECT * FROM quests WHERE game_id = '{$pack->game_id}'");
$completedRecords = dbconnection::queryArray("SELECT * FROM user_log WHERE game_id = '{$pack->game_id}' AND user_id = '{$pack->auth->user_id}' AND event_type = 'COMPLETE_QUEST' AND deleted = 0 GROUP BY content_id");
$incompleteQuests = array();
for ($i = 0; $i < count($quests); $i++) {
$completed = false;
for ($j = 0; $j < count($completedRecords); $j++) {
if ($quests[$i]->quest_id == $completedRecords[$j]->content_id) {
$completed = true;
}
}
if (!$completed) {
$incompleteQuests[] = $quests[$i];
}
}
$reqQueryPack = new stdClass();
$reqQueryPack->game_id = $pack->game_id;
$reqQueryPack->user_id = $pack->auth->user_id;
$questQueryPack = new stdClass();
$questQueryPack->game_id = $pack->game_id;
$questQueryPack->auth = $pack->auth;
$questQueryPack->silent = true;
//logPlayerCompletedQuest would otherwise recursively call this function. Might as well save it for the end.
$dirty = false;
for ($i = 0; $i < count($incompleteQuests); $i++) {
$reqQueryPack->requirement_root_package_id = $incompleteQuests[$i]->complete_requirement_root_package_id;
$questQueryPack->quest_id = $incompleteQuests[$i]->quest_id;
if (requirements::evaluateRequirementPackage($reqQueryPack)) {
client::logPlayerCompletedQuest($questQueryPack);
$dirty = true;
}
}
if ($dirty) {
client::checkForCascadingLogs($pack);
}
//log changed, potentially requiring more logs
}