Example #1
0
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);
}
Example #2
0
$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']}");