public function gamedata($playerID = null, $return = false) { Validate::player($playerID); //we are going to pass all data's $array = array(); //this is what we store the data in. $player = new PlayerModel(); $level = new LevelModel(); $playerLevel = new PlayerLevelModel($playerID); $store = new StoreModel(); $abModel = new ABModel(); $rankModel = new RankModel(); $array['status'] = 'ok'; $array['player'] = $player->getPlayerData(array($playerID, false)); $array['featuretests'] = $abModel->getTests($playerID); $array['scores'] = $playerLevel->load($playerID); $array['stores'] = $store->getStores(); $array['gifts'] = $player->getGifts($playerID); $array['liferequests'] = $player->getRequests($playerID); $array['levels'] = $level->getLevelData(); $array['ranks'] = $rankModel->getRanks(); $levelData = null; $tmpObject = null; if ($return) { return $array; } else { $this->printJson($array); } }
/** * Returns a list of all ranks * * @return DataSet */ public function Get() { if (empty(self::$_Ranks)) { self::$_Ranks = $this->SQL->Select()->From('Rank')->OrderBy('Sort')->Get()->Result(); } return self::$_Ranks; }
/** * API:获取世界排行 * * @access public * @param 无 * @return JsonView 响应json */ public function getWorldRank($user_id) { UserCache::deleteAllUserCache(Constants::WORLD_RANK); //$rankArr = UserCache::getAllUserCache( Constants::WORLD_RANK ); $friendList = FriendAction::getFriend($user_id); if (!$rankArr) { //$worldRank = rankModel::selectlimit( $wheres = "",$limit = array( "page" => 1, "limit" => Constants::WORLD_RANKY_MAX_NUM ), $columns = array( "n_id", 'n_battle', 'n_max_checkpoint' ) ); $worldRank = RankModel::getRank(Constants::WORLD_RANKY_MAX_NUM); foreach ($worldRank as $key => $value) { $result['max_checkpoint'] = $value['n_max_checkpoint']; $result['battle'] = $value['n_battle']; $result['n_id'] = $value['n_id']; $rankArr[$value['n_id']] = $result; } //echo "<pre>";var_dump($worldRank);exit; UserCache::setAllUserCache(Constants::WORLD_RANK, $rankArr); } // uasort($rankArr, function($a, $b) { // $al = $a['max_checkpoint']; // $bl = $b['max_checkpoint']; // if ($al == $bl) // { // $al2 = $a['battle']; // $bl2 = $b['battle']; // return ($al2 > $bl2) ? -1 : 1; // } // return ($al > $bl) ? -1 : 1; // }); $rankArr = array_slice($rankArr, 0, Constants::WORLD_RANKY_MAX_NUM); //echo "<pre>"; foreach ($rankArr as $key => $value) { $now_id = $value['n_id']; $userInfo = UserCache::getAllUserCache($now_id); if (!$userInfo['n_id'] || !$userInfo['n_head'] || !$userInfo['s_name'] || !$userInfo['n_sex'] || !$userInfo['n_level'] || !$userInfo['n_max_checkpoint']) { $userInfo = UserAction::iniUserInfo($now_id); } //var_dump($userInfo);echo "<br />"; $rankInfo['id'] = $userInfo['n_id']; $rankInfo['head'] = $userInfo['n_head']; $rankInfo['name'] = $userInfo['s_name']; $rankInfo['sex'] = $userInfo['n_sex']; $rankInfo['level'] = $userInfo['n_level']; $rankInfo['checkpoint'] = $userInfo['n_max_checkpoint']; $rankInfo['battle'] = $value['battle']; // 好友列表加入缓存后此处需要修改 //$rankInfo['friend_type'] = FriendModel::isFriend( $user_id, $now_id ); if ($friendList && in_array($now_id, $friendList)) { $rankInfo['friend_type'] = 1; } else { $rankInfo['friend_type'] = 0; } $worldRankInfo[$key + 1] = $rankInfo; } return $worldRankInfo; }
public function set_ranks($playerID) { $rankModel = new RankModel(); $data = $rankModel->getRanks(); $this->printJson($data); }
/** * Pre-process content into a uniform format for output * * @param Array $content By reference */ protected function processContent(&$content) { foreach ($content as &$item) { $contentType = val('RecordType', $item); $userID = val('InsertUserID', $item); $itemProperties = array(); $itemFields = array('DiscussionID', 'DateInserted', 'DateUpdated', 'Body', 'Format', 'RecordType', 'Url', 'CategoryID', 'CategoryName', 'CategoryUrl'); switch (strtolower($contentType)) { case 'comment': $itemFields = array_merge($itemFields, array('CommentID')); // Comment specific $itemProperties['Name'] = sprintf(t('Re: %s'), valr('Discussion.Name', $item, val('Name', $item))); $url = CommentUrl($item); break; case 'discussion': $itemFields = array_merge($itemFields, array('Name', 'Type')); $url = DiscussionUrl($item); break; } $item['Url'] = $url; if ($categoryId = val('CategoryID', $item)) { $category = CategoryModel::categories($categoryId); $item['CategoryName'] = val('Name', $category); $item['CategoryUrl'] = CategoryUrl($category); } $itemFields = array_fill_keys($itemFields, true); $filteredItem = array_intersect_key($item, $itemFields); $itemProperties = array_merge($itemProperties, $filteredItem); $item = $itemProperties; // Attach User $userFields = array('UserID', 'Name', 'Title', 'Location', 'PhotoUrl', 'RankName', 'Url', 'Roles', 'RoleNames'); $user = Gdn::userModel()->getID($userID); $roleModel = new RoleModel(); $roles = $roleModel->GetByUserID($userID)->resultArray(); $roleNames = ''; foreach ($roles as $role) { $roleNames[] = val('Name', $role); } // check $rankName = null; if (class_exists('RankModel')) { $rankName = val('Name', RankModel::Ranks(val('RankID', $user)), null); } $userProperties = array('Url' => url(userUrl($user), true), 'PhotoUrl' => UserPhotoUrl($user), 'RankName' => $rankName, 'RoleNames' => $roleNames, 'CssClass' => val('_CssClass', $user)); $user = (array) $user; $userFields = array_fill_keys($userFields, true); $filteredUser = array_intersect_key($user, $userFields); $userProperties = array_merge($filteredUser, $userProperties); $item['Author'] = $userProperties; } }
private function getPlayerRank($currentLevel) { //get ranks $rankModel = new RankModel(); $ranks = $rankModel->getRanks(); $currentRank = ""; for ($i = 0; $i < count($ranks); $i++) { if ((int) $currentLevel >= (int) $ranks[$i]["unlockLevel"]) { $currentRank = $i; } } return $currentRank; }