function sn_imperator_view($template = null) { global $template_result, $config, $lang, $user; $stat_fields = array('stat_date' => 'STAT_DATE', 'total_rank' => 'TOTAL_RANK', 'total_points' => 'TOTAL_POINTS', 'tech_rank' => 'TECH_RANK', 'tech_points' => 'TECH_POINTS', 'build_rank' => 'BUILD_RANK', 'build_points' => 'BUILD_POINTS', 'defs_rank' => 'DEFS_RANK', 'defs_points' => 'DEFS_POINTS', 'fleet_rank' => 'FLEET_RANK', 'fleet_points' => 'FLEET_POINTS', 'res_rank' => 'RES_RANK', 'res_points' => 'RES_POINTS'); $user_id = sys_get_param_id('int_user_id', $user['id']); $user_data = ($same_user = $user_id == $user['id']) ? $user : db_user_by_id($user_id); // if($user_id == $user['id']) { // $user_data = &$user; // $same_user = true; // } else { // $user_data = db_user_by_id($user_id); // $same_user = false; // } if (!$user_data) { message($lang['imp_imperator_none'], $lang['sys_error'], 'index.php', 10); die; } $template = gettemplate('imperator', $template); $StatRecord = doquery("SELECT * FROM {{statpoints}} WHERE `stat_type` = 1 AND `stat_code` = 1 AND `id_owner` = {$user_id};", true); $stat_array = array(); $query = doquery("SELECT * FROM {{statpoints}} WHERE `stat_type` = 1 AND `id_owner` = {$user_id} ORDER BY `stat_code` DESC;"); global $link; $stat_count = db_affected_rows($link); while ($row = db_fetch($query)) { foreach ($stat_fields as $field_db_name => $field_template_name) { // $stat_count - $row['stat_code'] - для реверсирования ID статы в JS $stat_array[$field_template_name]['DATA'][$stat_count - $row['stat_code']] = $row[$field_db_name]; } } $stat_array_date = $stat_array['STAT_DATE']; foreach ($stat_array_date['DATA'] as $key => $value) { $template->assign_block_vars('stat_date', array('ID' => $key, 'VALUE' => $value, 'TEXT' => date(FMT_DATE_TIME, $value))); } // $stat_count = count($stat_array_date['DATA']); // pdump($stat_array_date); unset($stat_array['STAT_DATE']); $template_data = array(); foreach ($stat_array as $stat_type => &$stat_type_data) { $reverse_min_max = strpos($stat_type, '_RANK') !== false; $stat_type_data['MIN'] = $reverse_min_max ? max($stat_type_data['DATA']) : min($stat_type_data['DATA']); $stat_type_data['MAX'] = $reverse_min_max ? min($stat_type_data['DATA']) : max($stat_type_data['DATA']); $stat_type_data['AVG'] = average($stat_type_data['DATA']); foreach ($stat_type_data['DATA'] as $key => $value) { // $stat_type_data['PERCENT'][$key] = $stat_type_data['MAX'] - $value ? ($stat_type_data['MAX'] - $stat_type_data['MIN']) / ($stat_type_data['MAX'] - $value) : 100; $stat_type_data['PERCENT'][$key] = ($stat_type_data['MAX'] - $value ? ($value - $stat_type_data['MIN']) / ($stat_type_data['MAX'] - $stat_type_data['MIN']) : 1) * 100; $template_data[$stat_type][$key]['ID'] = $key; $template_data[$stat_type][$key]['VALUE'] = $value; $template_data[$stat_type][$key]['DELTA'] = $reverse_min_max ? $stat_type_data['MIN'] - $value : $value - $stat_type_data['MAX']; $template_data[$stat_type][$key]['PERCENT'] = $stat_type_data['PERCENT'][$key]; //$template_data[$stat_type][$key]['PERCENT'] = $key ? $stat_type_data['PERCENT'][$key] : 50; // TODO DEBUG } } // pdump($stat_array['RES_POINTS']); foreach ($template_data as $stat_type => $stat_type_data) { $template->assign_block_vars('stat', array('TYPE' => $stat_type, 'TEXT' => $lang['imp_stat_types'][$stat_type], 'MIN' => $stat_array[$stat_type]['MIN'], 'MAX' => $stat_array[$stat_type]['MAX'], 'AVG' => $stat_array[$stat_type]['AVG'])); foreach ($stat_type_data as $stat_entry) { $template->assign_block_vars('stat.entry', $stat_entry); } } // pdump($template_data); if ($same_user) { rpg_level_up($user, RPG_STRUCTURE); rpg_level_up($user, RPG_RAID); rpg_level_up($user, RPG_TECH); rpg_level_up($user, RPG_EXPLORE); /* // ----------------------------------------------------------------------------------------------- // News Frame ... if ($config->game_news_overview) { nws_render($template, "WHERE UNIX_TIMESTAMP(`tsTimeStamp`)<=" . SN_TIME_NOW . "", $config->game_news_overview); } */ } $template->assign_vars(array('USERS_TOTAL' => $config->users_amount, 'USER_ID' => $user_id, 'user_username' => player_nick_render_to_html($user_data, true), 'USER_AVATAR' => $user_data['avatar'], 'VACATION' => $user_data['vacation'], 'GENDER_TEXT' => $lang['sys_gender_list'][$user_data['gender']], 'NEW_MESSAGES' => $user_data['new_message'], 'REGISTRATION_DATE' => date(FMT_DATE_TIME, $user_data['register_time']), 'builder_xp' => pretty_number($user_data['xpminier']), 'builder_lvl' => pretty_number($user_data['lvl_minier']), 'builder_lvl_st' => pretty_number(rpg_get_miner_xp($user_data['lvl_minier'])), 'builder_lvl_up' => pretty_number(rpg_get_miner_xp($user_data['lvl_minier'] + 1)), 'raid_xp' => pretty_number($user_data['xpraid']), 'raid_lvl' => pretty_number($user_data['lvl_raid']), 'raid_lvl_up' => pretty_number(rpg_get_raider_xp($user_data['lvl_raid'] + 1)), 'raids' => pretty_number($user_data['raids']), 'raidswin' => pretty_number($user_data['raidswin']), 'raidsloose' => pretty_number($user_data['raidsloose']), 'tech_xp' => pretty_number($user_data['player_rpg_tech_xp']), 'tech_lvl' => pretty_number($user_data['player_rpg_tech_level']), 'tech_lvl_st' => pretty_number(rpg_get_tech_xp($user_data['player_rpg_tech_level'])), 'tech_lvl_up' => pretty_number(rpg_get_tech_xp($user_data['player_rpg_tech_level'] + 1)), 'explore_xp' => pretty_number($user_data['player_rpg_explore_xp']), 'explore_lvl' => pretty_number($user_data['player_rpg_explore_level']), 'explore_lvl_st' => pretty_number(rpg_get_explore_xp($user_data['player_rpg_explore_level'])), 'explore_lvl_up' => pretty_number(rpg_get_explore_xp($user_data['player_rpg_explore_level'] + 1)), 'build_points' => pretty_number($StatRecord['build_points']), 'tech_points' => pretty_number($StatRecord['tech_points']), 'fleet_points' => pretty_number($StatRecord['fleet_points']), 'defs_points' => pretty_number($StatRecord['defs_points']), 'res_points' => pretty_number($StatRecord['res_points']), 'total_points' => pretty_number($StatRecord['total_points']), 'user_rank' => $StatRecord['total_rank'], 'RANK_DIFF' => $StatRecord['total_old_rank'] - $StatRecord['total_rank'], 'STAT_COUNT' => $stat_count, 'STAT_SPAN' => $stat_count + 1, 'SAME_USER' => $same_user)); return parsetemplate($template); }
$day = date('d'); $month = $lang['months'][date('m')]; $year = date('Y'); $hour = date('H'); $min = date('i'); $sec = date('s'); //Подсчет кол-ва онлайн и кто онлайн $time = $time_now - 15 * 60; $OnlineUsersNames2 = doquery("SELECT `username` FROM {{users}} WHERE `onlinetime`>'{$time}'"); /* //Последние сообщения чата. $mess = doquery("SELECT `user`,`message` FROM {{chat}} WHERE `ally_id` = '0' ORDER BY `messageid` DESC LIMIT 5"); $msg = '<table>'; while ($result = mysql_fetch_assoc($mess)) { //$str = substr($result['message'], 0, 85); $str = $result['message']; $usr = $result['user']; $msg .= "<tr><td align=\"left\">".$usr.":</td><td>".$str."</td></tr>"; } $msg .= '</table>'; */ // ----------------------------------------------------------------------------------------------- // News Frame ... if ($config->game_news_overview) { $lastAnnounces = doquery("SELECT *, UNIX_TIMESTAMP(`tsTimeStamp`) AS unix_time FROM {{announce}} WHERE UNIX_TIMESTAMP(`tsTimeStamp`)<={$time_now} ORDER BY `tsTimeStamp` DESC LIMIT {$config->game_news_overview}"); while ($lastAnnounce = mysql_fetch_assoc($lastAnnounces)) { $template->assign_block_vars('news', array('TIME' => $lastAnnounce['tsTimeStamp'], 'ANNOUNCE' => sys_bbcodeParse($lastAnnounce['strAnnounce']), 'DETAIL_URL' => $lastAnnounce['detail_url'], 'IS_NEW' => $lastAnnounce['unix_time'] + $config->game_news_actual > $time_now)); } } $template->assign_vars(array('TIME_NOW' => $time_now, 'TIME_TEXT' => "{$day_of_week}, {$day} {$month} {$year} {$lang['ov_of_year']},", 'USERS_ONLINE' => mysql_num_rows($OnlineUsersNames2), 'USERS_TOTAL' => $config->users_amount, 'USER_ID' => $user['id'], 'USER_AUTHLEVEL' => $user['authlevel'], 'user_username' => $user['username'], 'NEW_MESSAGES' => $user['new_message'], 'REGISTRATION_DATE' => date(FMT_DATE_TIME, $user['register_time']), 'builder_xp' => pretty_number($user['xpminier']), 'builder_lvl' => pretty_number($user['lvl_minier']), 'builder_lvl_up' => pretty_number(rpg_get_miner_xp($user['lvl_minier'])), 'raid_xp' => pretty_number($user['xpraid']), 'raid_lvl' => pretty_number($user['lvl_raid']), 'raid_lvl_up' => pretty_number(rpg_get_raider_xp($user['lvl_raid'])), 'raids' => pretty_number($user['raids']), 'raidswin' => pretty_number($user['raidswin']), 'raidsloose' => pretty_number($user['raidsloose']), 'user_points' => pretty_number($StatRecord['build_points']), 'user_fleet' => pretty_number($StatRecord['fleet_points']), 'player_points_tech' => pretty_number($StatRecord['tech_points']), 'user_defs_points' => pretty_number($StatRecord['defs_points']), 'total_points' => pretty_number($StatRecord['total_points']), 'user_rank' => $StatRecord['total_rank'], 'RANK_DIFF' => $StatRecord['total_old_rank'] - $StatRecord['total_rank'], 'GAME_NEWS_OVERVIEW' => $config->game_news_overview)); display(parsetemplate($template, $parse), "{$lang['imp_imperator']} {$user['username']}");