function msg_ali_send($message, $subject, $ally_rank_id = 0, $ally_id = 0) { global $time_now, $user; $ally_id = $ally_id ? $ally_id : $user['ally_id']; $query = doquery("SELECT id, username FROM {{users}} WHERE ally_id = '{$ally_id}'" . ($ally_rank_id >= 0 ? " AND ally_rank_id = {$ally_rank_id}" : '')); $list = ''; while ($u = mysql_fetch_assoc($query)) { $sendList[] = $u['id']; $list .= "<br>{$u['username']} "; } msg_send_simple_message($sendList, $user['id'], $time_now, MSG_TYPE_ALLIANCE, $user['username'], $subject, sys_bbcodeParse($message, true)); return $list; }
/* * common.php * * Common init file * * @version 1.1 Security checks by Gorlum for http://supernova.ws */ require_once 'includes/init.php'; $user = sn_autologin(!$allow_anonymous); $sys_user_logged_in = $user && is_array($user) && isset($user['id']) && $user['id']; $language = $language ? $language : $user['lang']; lng_include('system'); lng_include('tech'); if ($config->game_disable) { $disable_reason = sys_bbcodeParse($config->game_disable_reason); if ($user['authlevel'] < 1 || !(defined('IN_ADMIN') && IN_ADMIN)) { message($disable_reason, $config->game_name); ob_end_flush(); die; } else { print "<div align=center style='font-size: 24; font-weight: bold; color:red;'>{$disable_reason}</div><br>"; } } if (!($allow_anonymous || $sys_user_logged_in) || defined('IN_ADMIN') && IN_ADMIN && $user['authlevel'] < 1) { setcookie($config->COOKIE_NAME, '', time() - 3600 * 25); header('Location: ' . (IN_ADMIN == true ? '../' : '') . 'login.php'); ob_end_flush(); die; } if ($user['authlevel'] >= 2 && file_exists(SN_ROOT_PHYSICAL . 'badqrys.txt') && @filesize(SN_ROOT_PHYSICAL . 'badqrys.txt') > 0) {
doquery("UPDATE {{users}} SET `news_lastread` = `news_lastread` + 1;"); if (sys_get_param_int('news_mass_mail')) { $text = $_POST['text']; if ($detail_url) { // TODO: Move merging detail url to template $text = "{$text} <a href=\"{$detail_url}\">{$lang['news_more']}</a>"; } msg_send_simple_message('*', 0, 0, MSG_TYPE_ADMIN, $lang['sys_administration'], $lang['news_title'], $text); } $mode = ''; } switch ($mode) { case 'del': doquery("DELETE FROM {{announce}} WHERE `idAnnounce`={$announce_id} LIMIT 1;"); $mode = ''; break; case 'edit': $template->assign_var('ID', $announce_id); case 'copy': $announce = doquery("SELECT * FROM {{announce}} WHERE `idAnnounce`={$announce_id} LIMIT 1;", '', true); break; } } else { $annQuery = 'WHERE UNIX_TIMESTAMP(`tsTimeStamp`)<=' . intval($time_now); } $allAnnounces = doquery("SELECT *, UNIX_TIMESTAMP(`tsTimeStamp`) AS unix_time FROM {{announce}} {$annQuery} ORDER BY `tsTimeStamp` DESC"); $template->assign_vars(array('AUTHLEVEL' => $user['authlevel'], 'total' => mysql_num_rows($allAnnounces), 'MODE' => $mode, 'tsTimeStamp' => $announce['tsTimeStamp'], 'strAnnounce' => $announce['strAnnounce'], 'DETAIL_URL' => $announce['detail_url'], 'time_now' => $time_now)); while ($announce = mysql_fetch_assoc($allAnnounces)) { $template->assign_block_vars('announces', array('ID' => $announce['idAnnounce'], 'TIME' => $announce['tsTimeStamp'], 'ANNOUNCE' => sys_bbcodeParse($announce['strAnnounce']), 'DETAIL_URL' => $announce['detail_url'], 'NEW' => $announce['unix_time'] + $config->game_news_actual > $time_now, 'FUTURE' => $announce['unix_time'] > $time_now)); } display($template, $lang['news_title']);
if ($last_confirm['id'] && $time_now - $last_confirm['unix_time'] <= 3 * 24 * 60 * 60) { doquery("DELETE FROM {{confirmations}} WHERE `id` = '{$last_confirm['id']}' LIMIT 1;"); $user_data = doquery("SELECT * FROM {{users}} WHERE `id` = '{$last_confirm['id_user']}' LIMIT 1;", '', true); if (!$user_data['id']) { message($lang['log_lost_err_code'], $lang['sys_error']); } if ($user_data['authlevel']) { message($lang['log_lost_err_admin'], $lang['sys_error']); } $new_password = sys_random_string(); $md5 = md5($new_password); $result = doquery("UPDATE {{users}} SET `password` = '{$md5}' WHERE `id` = '{$last_confirm['id_user']}' LIMIT 1;"); if ($result) { $message = sprintf($lang['log_lost_email_pass'], $new_password); @($result = mymail($last_confirm['email'], $lang['log_lost_email_title'], htmlspecialchars($message))); $message = sys_bbcodeParse($message) . '<br><br>'; if ($result) { $message = $message . $lang['log_lost_sent_pass']; } else { $message = $message . $lang['log_lost_err_sending']; } message($message, $lang['log_lost_header']); } else { message($lang['log_lost_err_change'], $lang['sys_error']); } } else { message($lang['log_lost_err_code'], $lang['sys_error']); } } elseif ($email) { $user_id = doquery("SELECT `id` FROM {{users}} WHERE `email_2` = '{$email}' LIMIT 1;", '', true); if (!$user_id['id']) {
// Checking for user name & request text - in case if it was request to adding new request if (isset($new_friend_row['id']) && ($new_request_text = sys_get_param_str('request_text'))) { $check_relation = doquery("SELECT `BUDDY_ID` FROM {{buddy}} WHERE\n (`BUDDY_SENDER_ID` = {$user['id']} AND `BUDDY_OWNER_ID` = {$new_friend_row['id']})\n OR\n (`BUDDY_SENDER_ID` = {$new_friend_row['id']} AND `BUDDY_OWNER_ID` = {$user['id']})\n LIMIT 1 FOR UPDATE;", true); if (isset($check_relation['BUDDY_ID'])) { throw new exception('buddy_err_adding_exists', ERR_WARNING); } msg_send_simple_message($new_friend_row['id'], $user['id'], SN_TIME_NOW, MSG_TYPE_PLAYER, $user['username'], $lang['buddy_msg_adding_title'], sprintf($lang['buddy_msg_adding_text'], $user['username'])); doquery($q = "INSERT INTO {{buddy}} SET `BUDDY_SENDER_ID` = {$user['id']}, `BUDDY_OWNER_ID` = {$new_friend_row['id']}, `BUDDY_REQUEST` = '{$new_request_text}';"); sn_db_transaction_commit(); throw new exception('buddy_err_adding_none', ERR_NONE); } } catch (exception $e) { $result[] = array('STATUS' => in_array($e->getCode(), array(ERR_NONE, ERR_WARNING, ERR_ERROR)) ? $e->getCode() : ERR_ERROR, 'MESSAGE' => $lang[$e->getMessage()]); } // TODO - Это просто заглушка. Дойдут руки - разобраться, в чём проблема sn_db_transaction_rollback(); $query = db_buddy_list_by_user($user['id']); while ($row = db_fetch($query)) { $row['BUDDY_REQUEST'] = sys_bbcodeParse($row['BUDDY_REQUEST']); $row['BUDDY_ACTIVE'] = $row['BUDDY_STATUS'] == BUDDY_REQUEST_ACTIVE; $row['BUDDY_DENIED'] = $row['BUDDY_STATUS'] == BUDDY_REQUEST_DENIED; $row['BUDDY_INCOMING'] = $row['BUDDY_OWNER_ID'] == $user['id']; $row['BUDDY_ONLINE'] = floor((SN_TIME_NOW - $row['onlinetime']) / 60); $template_result['.']['buddy'][] = $row; } $template_result += array('PAGE_HEADER' => $lang['buddy_buddies'], 'PAGE_HINT' => $lang['buddy_hint'], 'USER_ID' => $user['id'], 'REQUEST_USER_ID' => isset($new_friend_row['id']) ? $new_friend_row['id'] : 0, 'REQUEST_USER_NAME' => isset($new_friend_row['username']) ? $new_friend_row['username'] : ''); $template_result['.']['result'] = is_array($template_result['.']['result']) ? $template_result['.']['result'] : array(); $template_result['.']['result'] += $result; $template = gettemplate('buddy', true); $template->assign_recursive($template_result); display($template);
$tmp = "lime>{$lang['sys_online']}"; } elseif ($last_active < 60 * 15) { $tmp = "yellow>{$lang['sys_lessThen15min']}"; } else { $tmp = "red>{$lang['sys_offline']}"; } } else { $tmp = "orange>-"; } } return "<font color={$tmp}</font>"; } lng_include('buddy'); $userID = intval(isset($_GET['u']) ? $_GET['u'] : $_POST['u']); $buddyID = intval(isset($_GET['buddyID']) ? $_GET['buddyID'] : $_POST['buddyID']); $text = mysql_real_escape_string(sys_bbcodeParse(strip_tags($_POST['text']))); $mode = mysql_real_escape_string(isset($_GET['mode']) ? $_GET['mode'] : $_POST['mode']); if ($userID) { if ($userID == $user['id']) { message($lang['bud_sys_cantFriendYourself'], $lang['bud_req_title'], 'buddy.php'); } $qryRes = doquery("SELECT sender FROM {{buddy}} WHERE `sender` = '{$user['id']}' AND `owner` = '{$userID}';", 'buddy', true); if ($qryRes) { message($lang['bud_sys_cantFriendAgain'], $lang['bud_req_title'], 'buddy.php'); } if ($text) { doquery("INSERT INTO `{{buddy}}` SET `sender` = '{$user['id']}', `owner` = '{$userID}', `active` = '0', `text` = '{$text}';"); message($lang['Request_sent'], $lang['Buddy_request'], 'buddy.php'); } else { $friend = doquery("SELECT `id`, `username` FROM `{{users}}` WHERE `id` = '{$userID}' LIMIT 1;", "", true); $friend = array_merge($friend, $lang);
function qst_templatize($quest, $for_display = true) { global $lang; $tmp = array(); foreach ($quest['quest_rewards_list'] as $quest_reward_id => $quest_reward_amount) { $tmp[] = array('ID' => $quest_reward_id, 'NAME' => $for_display ? str_replace(' ', ' ', $lang['tech'][$quest_reward_id]) : $lang['tech'][$quest_reward_id], 'AMOUNT' => $quest_reward_amount); } return array('QUEST_ID' => $quest['quest_id'], 'QUEST_NAME' => $quest['quest_name'], 'QUEST_TYPE' => $quest['quest_type'], 'QUEST_DESCRIPTION' => $for_display ? sys_bbcodeParse($quest['quest_description']) : $quest['quest_description'], 'QUEST_CONDITIONS' => $quest['quest_condition'], 'QUEST_UNIT_ID' => $quest['quest_unit_id'], 'QUEST_UNIT_NAME' => $lang['tech'][$quest['quest_unit_id']], 'QUEST_UNIT_AMOUNT' => $quest['quest_unit_amount'], 'QUEST_STATUS' => intval($quest['quest_status_status']), 'QUEST_STATUS_NAME' => $lang['qst_status_list'][intval($quest['quest_status_status'])], 'quest_rewards_list' => $tmp); }
protected function password_reset_confirm() { global $lang, $config; if (!$this->is_password_reset_confirm) { return $this->account_login_status; } if ($this->account_login_status != LOGIN_UNDEFINED) { return $this->account_login_status; } // Проверяем поддержку сброса пароля if (!$this->is_feature_supported(AUTH_FEATURE_PASSWORD_RESET)) { return $this->account_login_status; } try { $code_unsafe = sys_get_param_str_unsafe('password_reset_code'); if (empty($code_unsafe)) { throw new Exception(PASSWORD_RESTORE_ERROR_CODE_EMPTY, ERR_ERROR); } sn_db_transaction_start(); $confirmation = $this->confirmation->db_confirmation_get_by_type_and_code(CONFIRM_PASSWORD_RESET, $code_unsafe); // OK 4.5 if (empty($confirmation)) { throw new Exception(PASSWORD_RESTORE_ERROR_CODE_WRONG, ERR_ERROR); } if (SN_TIME_NOW - strtotime($confirmation['create_time']) > AUTH_PASSWORD_RESET_CONFIRMATION_EXPIRE) { throw new Exception(PASSWORD_RESTORE_ERROR_CODE_TOO_OLD, ERR_ERROR); } unset($this->account); $this->account = new Account($this->db); if (!$this->account->db_get_by_email($confirmation['email'])) { throw new Exception(PASSWORD_RESTORE_ERROR_CODE_OK_BUT_NO_ACCOUNT_FOR_EMAIL, ERR_ERROR); } $new_password_unsafe = $this->make_random_password(); $salt_unsafe = $this->password_salt_generate(); if (!$this->account->db_set_password($new_password_unsafe, $salt_unsafe)) { // Ошибка смены пароля throw new Exception(AUTH_ERROR_INTERNAL_PASSWORD_CHANGE_ON_RESTORE, ERR_ERROR); } $this->account_login_status = LOGIN_UNDEFINED; $this->remember_me = 1; $this->cookie_set(); $this->login_cookie(); if ($this->account_login_status == LOGIN_SUCCESS) { // TODO - НЕ ОБЯЗАТЕЛЬНО ОТПРАВЛЯТЬ ЧЕРЕЗ ЕМЕЙЛ! ЕСЛИ ЭТО ФЕЙСБУЧЕК ИЛИ ВКШЕЧКА - МОЖНО ЧЕРЕЗ ЛС ПИСАТЬ!! $message_header = sprintf($lang['log_lost_email_title'], $config->game_name); $message = sprintf($lang['log_lost_email_pass'], $config->game_name, $this->account->account_name, $new_password_unsafe); @($operation_result = mymail($confirmation['email'], $message_header, htmlspecialchars($message))); // $users_translated = classSupernova::$auth->db_translate_get_users_from_account_list($this->provider_id, $this->account->account_id); // OK 4.5 $users_translated = PlayerToAccountTranslate::db_translate_get_users_from_account_list($this->provider_id, $this->account->account_id); // OK 4.5 if (!empty($users_translated)) { // Отправляем в лички письмо о сбросе пароля // ПО ОПРЕДЕЛЕНИЮ в $users_translated только // - аккаунты, поддерживающие сброс пароля // - список аккаунтов, имеющих тот же емейл, что указан в Подтверждении // - игроки, привязанные только к этим аккаунтам // Значит им всем сразу скопом можно отправлять сообщения $message = sprintf($lang['sys_password_reset_message_body'], $new_password_unsafe); $message = sys_bbcodeParse($message) . '<br><br>'; // msg_send_simple_message($found_provider->data[F_USER_ID], 0, SN_TIME_NOW, MSG_TYPE_ADMIN, $lang['sys_administration'], $lang['sys_login_register_message_title'], $message); foreach ($users_translated as $user_id => $providers_list) { msg_send_simple_message($user_id, 0, SN_TIME_NOW, MSG_TYPE_ADMIN, $lang['sys_administration'], $lang['sys_login_register_message_title'], $message); } } else { // Фигня - может быть и пустой, если у нас есть только аккаунт, но нет пользователей // throw new Exception(AUTH_PASSWORD_RESET_INSIDE_ERROR_NO_ACCOUNT_FOR_CONFIRMATION, ERR_ERROR); } } $this->confirmation->db_confirmation_delete_by_type_and_email(CONFIRM_PASSWORD_RESET, $confirmation['email']); // OK 4.5 sn_db_transaction_commit(); sys_redirect('overview.php'); } catch (Exception $e) { sn_db_transaction_rollback(); $this->account_login_status = $e->getMessage(); } return $this->account_login_status; }
function note_assign(&$template, $note_row) { global $note_priority_classes, $lang; $template->assign_block_vars('note', array('ID' => $note_row['id'], 'TIME' => $note_row['time'], 'TIME_TEXT' => date(FMT_DATE_TIME, $note_row['time']), 'PRIORITY' => $note_row['priority'], 'PRIORITY_CLASS' => $note_priority_classes[$note_row['priority']], 'PRIORITY_TEXT' => $lang['sys_notes_priorities'][$note_row['priority']], 'TITLE' => htmlentities($note_row['title'], ENT_COMPAT, 'UTF-8'), 'GALAXY' => intval($note_row['galaxy']), 'SYSTEM' => intval($note_row['system']), 'PLANET' => intval($note_row['planet']), 'PLANET_TYPE' => intval($note_row['planet_type']), 'PLANET_TYPE_TEXT' => $lang['sys_planet_type'][$note_row['planet_type']], 'PLANET_TYPE_TEXT_SHORT' => $lang['sys_planet_type_sh'][$note_row['planet_type']], 'TEXT' => sys_bbcodeParse(htmlentities($note_row['text'], ENT_COMPAT, 'UTF-8')), 'TEXT_EDIT' => htmlentities($note_row['text'], ENT_COMPAT, 'UTF-8'), 'STICKY' => intval($note_row['sticky']))); }
function sec_restore_password_confirm($confirm_safe, &$result) { global $lang, $config; try { $last_confirm = doquery("SELECT *, UNIX_TIMESTAMP(`create_time`) as `unix_time` FROM {{confirmations}} WHERE `code` = '{$confirm_safe}' AND `type` = " . CONFIRM_PASSWORD_RESET . " LIMIT 1;", true); if (!isset($last_confirm['id'])) { throw new exception(PASSWORD_RESTORE_ERROR_CODE_WRONG); } if (SN_TIME_NOW - $last_confirm['unix_time'] > PERIOD_DAY) { throw new exception(PASSWORD_RESTORE_ERROR_CODE_TOO_OLD); } $new_password = sys_random_string(8, SN_SYS_SEC_CHARS_CONFIRMATION); // $salt_unsafe = sec_password_salt_generate(); // $md5 = sec_password_encode($new_password, $salt_unsafe); // $salt_safe = db_escape($salt_unsafe); //if(!db_user_set_by_id($last_confirm['id_user'], "`password` = '{$md5}', `salt` = '{$salt_safe}'")) { if (!sec_password_change($last_confirm['id_user'], $new_password, false, 1)) { // OK throw new exception(PASSWORD_RESTORE_ERROR_CHANGE); } $message = sprintf($lang['log_lost_email_pass'], $config->game_name, $new_password); @($operation_result = mymail($last_confirm['email'], sprintf($lang['log_lost_email_title'], $config->game_name), htmlspecialchars($message))); $message = sys_bbcodeParse($message) . '<br><br>'; $result[F_PASSWORD_NEW] = $new_password; $result[F_LOGIN_STATUS] = $operation_result ? PASSWORD_RESTORE_SUCCESS_PASSWORD_SENT : PASSWORD_RESTORE_SUCCESS_PASSWORD_SEND_ERROR; $result[F_LOGIN_MESSAGE] = $message . ($operation_result ? $lang['log_lost_sent_pass'] : $lang['log_lost_err_sending']); doquery("DELETE FROM {{confirmations}} WHERE `id` = '{$last_confirm['id']}' AND `type` = " . CONFIRM_PASSWORD_RESET . " LIMIT 1;"); // sys_redirect('login.php'); } catch (exception $e) { $result[F_LOGIN_STATUS] = $e->getMessage(); } }
} sec_login($result); $user = $result[F_LOGIN_USER]; unset($result[F_LOGIN_USER]); $template_result += $result; unset($result); // В этой точке пользователь либо авторизирован - и есть его запись - либо пользователя гарантированно нет в базе // Если сообщение пустое - заполняем его по коду $template_result[F_LOGIN_MESSAGE] = isset($template_result[F_LOGIN_MESSAGE]) && $template_result[F_LOGIN_MESSAGE] ? $template_result[F_LOGIN_MESSAGE] : $lang['sys_login_messages'][$template_result[F_LOGIN_STATUS]]; // Это уже переключаемся на пользовательский язык с откатом до языка в параметрах запроса $lang->lng_switch(sys_get_param_str('lang')); global $dpath; $dpath = $user["dpath"] ? $user["dpath"] : DEFAULT_SKINPATH; $config->db_loadItem('game_disable') == GAME_DISABLE_INSTALL ? define('INSTALL_MODE', GAME_DISABLE_INSTALL) : false; if ($template_result[F_GAME_DISABLE] = $config->game_disable) { $template_result[F_GAME_DISABLE_REASON] = sys_bbcodeParse($config->game_disable == GAME_DISABLE_REASON ? $config->game_disable_reason : $lang['sys_game_disable_reason'][$config->game_disable]); if (defined('IN_API')) { return; } if (($user['authlevel'] < 1 || !(defined('IN_ADMIN') && IN_ADMIN)) && !(defined('INSTALL_MODE') && defined('LOGIN_LOGOUT'))) { message($template_result[F_GAME_DISABLE_REASON], $config->game_name); ob_end_flush(); die; } } // TODO ban if ($template_result[F_BANNED_STATUS] && !$skip_ban_check) { if (defined('IN_API')) { return; } $bantime = date(FMT_DATE_TIME, $template_result[F_BANNED_STATUS]);
function qst_templatize($quest, $for_display = true) { global $lang; return array('QUEST_ID' => $quest['quest_id'], 'QUEST_NAME' => $quest['quest_name'], 'QUEST_TYPE' => $quest['quest_type'], 'QUEST_DESCRIPTION' => $for_display ? sys_bbcodeParse($quest['quest_description']) : $quest['quest_description'], 'QUEST_CONDITIONS' => $quest['quest_condition'], 'QUEST_REWARDS_ID' => $quest['quest_rewards_id'], 'QUEST_REWARDS_NAME' => $lang['tech'][$quest['quest_rewards_id']], 'QUEST_REWARDS_AMOUNT' => $quest['quest_rewards_amount'], 'QUEST_UNIT_ID' => $quest['quest_unit_id'], 'QUEST_UNIT_NAME' => $lang['tech'][$quest['quest_unit_id']], 'QUEST_UNIT_AMOUNT' => $quest['quest_unit_amount'], 'QUEST_STATUS' => $quest['quest_status_status'], 'QUEST_STATUS_NAME' => $lang['qst_status_list'][$quest['quest_status_status']]); }
$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']}");