Esempio n. 1
0
function scheduler_process()
{
    global $config, $user, $debug, $lang;
    $is_admin_request = false;
    $ts_var_stat_update = strtotime($config->db_loadItem('var_stat_update'));
    $ts_scheduled_update = sys_schedule_get_prev_run($config->db_loadItem('stats_schedule'), $config->var_stat_update);
    if (sys_get_param_int('admin_update')) {
        define('USER_LEVEL', isset($user['authlevel']) ? $user['authlevel'] : -1);
        if (USER_LEVEL > 0) {
            $is_admin_request = true;
            $ts_scheduled_update = SN_TIME_NOW;
        }
    }
    if ($ts_scheduled_update > $ts_var_stat_update) {
        lng_include('admin');
        sn_db_transaction_start();
        $ts_var_stat_update_end = strtotime($config->db_loadItem('var_stat_update_end'));
        if (SN_TIME_NOW > $ts_var_stat_update_end) {
            $old_server_status = $config->db_loadItem('game_disable');
            $config->db_saveItem('game_disable', GAME_DISABLE_STAT);
            $config->db_saveItem('var_stat_update_end', date(FMT_DATE_TIME_SQL, SN_TIME_NOW + ($config->db_loadItem('stats_minimal_interval') ? $config->stats_minimal_interval : 600)));
            $config->db_saveItem('var_stat_update_msg', 'Update started');
            sn_db_transaction_commit();
            $msg = $is_admin_request ? 'admin request' : 'scheduler';
            $next_run = date(FMT_DATE_TIME_SQL, sys_schedule_get_prev_run($config->stats_schedule, $config->var_stat_update, true));
            $msg = "Running stat updates: {$msg}. Config->var_stat_update = " . $config->var_stat_update . ', $ts_scheduled_update = ' . date(FMT_DATE_TIME_SQL, $ts_scheduled_update) . ', next_stat_update = ' . $next_run;
            $debug->warning($msg, 'Stat update', LOG_INFO_STAT_PROCESS);
            $total_time = microtime(true);
            // require_once('../includes/sys_stat.php');
            require_once SN_ROOT_PHYSICAL . 'includes/includes/sys_stat.php';
            sys_stat_calculate();
            $total_time = microtime(true) - $total_time;
            $msg = "Stat update complete in {$total_time} seconds.";
            $debug->warning($msg, 'Stat update', LOG_INFO_STAT_PROCESS);
            $msg = "{$lang['adm_done']}: {$total_time} {$lang['sys_sec']}.";
            // . date(FMT_DATE_TIME, $ts_scheduled_update) . ' ' . date(FMT_DATE_TIME, $config->var_stat_update);
            // TODO: Analyze maintenance result. Add record to log if error. Add record to log if OK
            $maintenance_result = sys_maintenance();
            $config->db_saveItem('var_stat_update', SN_TIME_SQL);
            $config->db_saveItem('var_stat_update_msg', $msg);
            $config->db_saveItem('var_stat_update_next', $next_run);
            $config->db_saveItem('var_stat_update_admin_forced', SN_TIME_SQL);
            $config->db_saveItem('var_stat_update_end', SN_TIME_SQL);
            $config->db_saveItem('game_disable', $old_server_status);
        } elseif ($ts_scheduled_update > $ts_var_stat_update) {
            $timeout = strtotime($config->db_loadItem('var_stat_update_end')) - SN_TIME_NOW;
            $msg = $config->db_loadItem('var_stat_update_msg');
            $msg = "{$msg} ETA {$timeout} seconds. Please wait...";
        }
        sn_db_transaction_rollback();
    } elseif ($is_admin_request) {
        $msg = 'Stat is up to date';
    }
    return $msg;
}
Esempio n. 2
0
function ShowLeftMenu($Level = 0)
{
    global $time_now;
    lng_include('leftmenu');
    $template_name = $Level > 0 ? 'admin/left_menu' : 'left_menu';
    $template = gettemplate($template_name, true);
    $template->assign_vars(array('SERVER_TIME' => $time_now, 'USER_AUTHLEVEL' => $GLOBALS['user']['authlevel'], 'USER_AUTHLEVEL_NAME' => $GLOBALS['lang']['user_level'][$GLOBALS['user']['authlevel']]));
    if ($Level < 1) {
        global $config;
        $template->assign_vars(array('new_announce_count' => $GLOBALS['user']['news_lastread'], 'game_url' => SN_ROOT_RELATIVE, 'game_name' => $config->game_name, 'URL_RULES' => $config->url_rules, 'URL_FORUM' => $config->url_forum, 'URL_FAQ' => $config->url_faq, 'ADV_LEFT_BOTTOM' => $config->advGoogleLeftMenuIsOn ? $config->advGoogleLeftMenuCode : ''));
    }
    return $template;
}
Esempio n. 3
0
function eco_bld_tech($que_type, &$user, &$planet)
{
    global $config, $lang;
    lng_include('buildings');
    lng_include('infos');
    if (!mrc_get_level($user, $planet, STRUC_LABORATORY)) {
        message($lang['no_laboratory'], $lang['tech'][UNIT_TECHNOLOGIES]);
    }
    if (eco_unit_busy($user, $planet, UNIT_TECHNOLOGIES)) {
        message($lang['eco_bld_msg_err_laboratory_upgrading'], $lang['tech'][UNIT_TECHNOLOGIES]);
    }
    switch ($action = sys_get_param_escaped('action')) {
        case 'build':
            $operation_result = que_build($user, $planet);
            break;
        case 'trim':
            que_delete(QUE_RESEARCH, $user, $planet, false);
            break;
        case 'clear':
            que_delete(QUE_RESEARCH, $user, $planet, true);
            break;
            //case 'build':$operation_result = eco_bld_tech_research($user, $planet);break;
    }
    $template = gettemplate('buildings_research', true);
    if (!empty($operation_result)) {
        $template->assign_block_vars('result', $operation_result);
    }
    $fleet_list = flt_get_fleets_to_planet($planet);
    $ques = que_get($user['id'], QUE_RESEARCH);
    $que =& $ques['ques'][QUE_RESEARCH][$user['id']][0];
    que_tpl_parse($template, QUE_RESEARCH, $user, null, $que);
    $in_que =& $ques['in_que'][QUE_RESEARCH][$user['id']][0];
    foreach (sn_get_groups('tech') as $unit_id) {
        if (eco_can_build_unit($user, $planet, $unit_id) != BUILD_ALLOWED) {
            continue;
        }
        $level_base = mrc_get_level($user, '', $unit_id, false, true);
        $level_effective = mrc_get_level($user, '', $unit_id);
        $level_in_que = $in_que[$unit_id];
        $level_bonus = max(0, $level_effective - $level_base);
        $level_base_and_que = $level_base + $level_in_que;
        $build_data = eco_get_build_data($user, $planet, $unit_id, $level_base_and_que);
        $temp[RES_METAL] = floor($planet['metal'] - $build_data[BUILD_CREATE][RES_METAL]);
        $temp[RES_CRYSTAL] = floor($planet['crystal'] - $build_data[BUILD_CREATE][RES_CRYSTAL]);
        $temp[RES_DEUTERIUM] = floor($planet['deuterium'] - $build_data[BUILD_CREATE][RES_DEUTERIUM]);
        $template->assign_block_vars('production', array('ID' => $unit_id, 'NAME' => $lang['tech'][$unit_id], 'DESCRIPTION' => $lang['info'][$unit_id]['description_short'], 'LEVEL_OLD' => $level_base, 'LEVEL_BONUS' => $level_bonus, 'LEVEL_NEXT' => $level_base + $level_in_que + 1, 'LEVEL_QUED' => $level_in_que, 'LEVEL' => $level_base_and_que, 'BUILD_CAN' => $build_data['CAN'][BUILD_CREATE], 'TIME' => pretty_time($build_data[RES_TIME][BUILD_CREATE]), 'METAL' => $build_data[BUILD_CREATE][RES_METAL], 'CRYSTAL' => $build_data[BUILD_CREATE][RES_CRYSTAL], 'DEUTERIUM' => $build_data[BUILD_CREATE][RES_DEUTERIUM], 'METAL_PRINT' => pretty_number($build_data[BUILD_CREATE][RES_METAL], true, $planet['metal']), 'CRYSTAL_PRINT' => pretty_number($build_data[BUILD_CREATE][RES_CRYSTAL], true, $planet['crystal']), 'DEUTERIUM_PRINT' => pretty_number($build_data[BUILD_CREATE][RES_DEUTERIUM], true, $planet['deuterium']), 'METAL_REST' => pretty_number($temp[RES_METAL], true, true), 'CRYSTAL_REST' => pretty_number($temp[RES_CRYSTAL], true, true), 'DEUTERIUM_REST' => pretty_number($temp[RES_DEUTERIUM], true, true), 'METAL_REST_NUM' => $temp[RES_METAL], 'CRYSTAL_REST_NUM' => $temp[RES_CRYSTAL], 'DEUTERIUM_REST_NUM' => $temp[RES_DEUTERIUM], 'METAL_FLEET' => pretty_number($temp[RES_METAL] + $fleet_list['own']['total'][RES_METAL], true, true), 'CRYSTAL_FLEET' => pretty_number($temp[RES_CRYSTAL] + $fleet_list['own']['total'][RES_CRYSTAL], true, true), 'DEUTERIUM_FLEET' => pretty_number($temp[RES_DEUTERIUM] + $fleet_list['own']['total'][RES_DEUTERIUM], true, true), 'BUILD_CAN2' => $build_data['CAN'][BUILD_CREATE]));
    }
    //  if(count($que['ques'][$que_id][$user['id']][$planet_id]) >= que_get_max_que_length($user, $planet, $que_id, $que_data))
    $template->assign_vars(array('QUE_ID' => QUE_RESEARCH, 'FLEET_OWN_COUNT' => $fleet_list['own']['count'], 'ARTIFACT_ID' => ART_HEURISTIC_CHIP, 'ARTIFACT_LEVEL' => mrc_get_level($user, array(), ART_HEURISTIC_CHIP), 'ARTIFACT_NAME' => $lang['tech'][ART_HEURISTIC_CHIP], 'REQUEST_URI' => $_SERVER['REQUEST_URI'], 'PAGE_HEADER' => $page_header = $lang['tech'][UNIT_TECHNOLOGIES] . ($user['user_as_ally'] ? "&nbsp;{$lang['sys_of_ally']}&nbsp;{$user['username']}" : ''), 'CONFIG_RESEARCH_QUE' => $config->server_que_length_research));
    display(parsetemplate($template), $page_header);
}
Esempio n. 4
0
<?php

if (!defined('INSIDE')) {
    die('Hack attempt!');
}
lng_include('menu');
$active_payment_modules = sn_module_get_active_count('payment') > 0;
global $sn_version_check_class, $template_result, $user, $config, $lang;
// , $sn_menu_admin_extra
$sn_menu = array('menu_server_name' => array('LEVEL' => 'text', 'CLASS' => 'menu_text_t', 'ITEM' => "{$config->game_name}<br />{$lang['sys_from']} {$config->server_start_date}", 'MOVEABLE' => 2, 'HIDEABLE' => 3), 'menu_server_logo' => array('LEVEL' => 'text', 'CLASS' => 'menu_text_b', 'TYPE' => 'image', 'ITEM' => 'design/images/supernova.png', 'LINK' => '.', 'ALT' => $config->game_name, 'MOVEABLE' => 2, 'HIDEABLE' => 3), 'menu_admin' => array('LEVEL' => 'header', 'ITEM' => $lang['user_level'][$user['authlevel']], 'LINK' => 'admin/overview.php', 'MOVEABLE' => 2, 'HIDEABLE' => 3, 'DISABLED' => $user['authlevel'] < 1), 'menu_impersonator' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'sys_impersonate_done', 'LINK' => 'logout.php', 'MOVEABLE' => 2, 'HIDEABLE' => 3, 'DISABLED' => $template_result[F_IMPERSONATE_STATUS] == LOGIN_UNDEFINED), 'menu_faq' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'm_faq', 'LINK' => $config->url_faq, 'BLANK' => true, 'ICON' => true, 'MOVEABLE' => 2, 'HIDEABLE' => 3, 'DISABLED' => empty($config->url_faq)), 'menu_planet_overview' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'sys_planet', 'LINK' => 'overview.php', 'ICON' => true), 'menu_planet_structures' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'tech[UNIT_STRUCTURES]', 'LINK' => 'buildings.php?mode=' . QUE_STRUCTURES, 'ICON' => true), 'menu_planet_shipyard' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Shipyard', 'LINK' => 'buildings.php?mode=' . SUBQUE_FLEET, 'ICON' => true), 'menu_planet_defense' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Defense', 'LINK' => 'buildings.php?mode=' . SUBQUE_DEFENSE, 'ICON' => true), 'menu_planet_resources' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Resources', 'LINK' => 'resources.php', 'ICON' => true), 'menu_planet_fleets' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'lm_fleet_orbiting', 'LINK' => 'fleet.php', 'ICON' => true), 'menu_empire_overview' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'sys_empire', 'LINK' => 'index.php?page=imperium', 'ICON' => true), 'menu_info_research' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Research', 'LINK' => 'buildings.php?mode=' . QUE_RESEARCH, 'ICON' => true), 'menu_empire_techtree' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Technology', 'LINK' => 'index.php?page=techtree', 'ICON' => true), 'menu_empire_fleets' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'imp_fleets', 'LINK' => 'flying_fleets.php', 'ICON' => true), 'menu_empire_universe' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'menu_universe_overview', 'LINK' => 'galaxy.php?mode=0'), 'menu_empire_emperor' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'imp_imperator', 'LINK' => 'index.php?page=imperator', 'ICON' => true), 'menu_ally' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'sys_alliance', 'LINK' => 'alliance.php', 'ICON' => true, 'LOCATION' => '+menu_empire_emperor', 'DISABLED' => $config->game_mode == GAME_BLITZ), 'menu_info_stats' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'menu_stat_players', 'LINK' => 'stat.php', 'ICON' => true), 'menu_info_records' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'menu_stat_records', 'LINK' => 'records.php', 'ICON' => true), 'menu_empire_quests' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'menu_quest_list', 'LINK' => 'quest.php', 'ICON' => true), 'menu_dark_matter' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'sys_dark_matter', 'LINK' => 'dark_matter.php'), 'menu_empire_market' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'rinok', 'LINK' => 'market.php', 'ICON' => true), 'menu_empire_mercenaries' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'tech[UNIT_MERCENARIES]', 'LINK' => 'officer.php?mode=' . UNIT_MERCENARIES, 'ICON' => true), 'menu_empire_schematics' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'tech[UNIT_PLANS]', 'LINK' => 'officer.php?mode=' . UNIT_PLANS, 'ICON' => true), 'menu_empire_artifacts' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'tech[UNIT_ARTIFACTS]', 'LINK' => 'artifacts.php', 'ICON' => true), 'menu_affiliates' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'm_affilates', 'LINK' => 'affilates.php', 'ICON' => true), 'menu_comm_messages' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'Messages', 'LINK' => 'messages.php', 'ICON' => true), 'menu_comm_chat' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Chat', 'LINK' => 'index.php?page=chat&mode=' . CHAT_MODE_COMMON, 'ICON' => true), 'menu_ally_chat' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'AllyChat', 'LINK' => 'index.php?page=chat&mode=' . CHAT_MODE_ALLY, 'ICON' => true, 'DISABLED' => $config->game_mode == GAME_BLITZ), 'menu_comm_forum' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'm_forum', 'LINK' => $config->url_forum, 'BLANK' => true, 'ICON' => true, 'DISABLED' => empty($config->url_forum)), 'menu_utils_search' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'Search', 'LINK' => 'search.php', 'ICON' => true, 'DISABLED' => $config->game_mode == GAME_BLITZ), 'menu_utils_shortcuts' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'lm_shortcuts', 'LINK' => 'notes.php', 'ICON' => true), 'menu_utils_buddies' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'Buddylist', 'LINK' => 'buddy.php', 'ICON' => true), 'menu_utils_reports' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'lm_combat_reports', 'LINK' => 'viewreport.php', 'ICON' => true), 'menu_utils_simulator' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'm_simulator', 'LINK' => 'simulator.php', 'ICON' => true), 'menu_rules' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'sys_game_rules', 'LINK' => $config->url_rules, 'BLANK' => true, 'ICON' => true, 'DISABLED' => empty($config->url_rules)), 'menu_news' => array('LEVEL' => 'submenu', 'ITEM' => $lang['news_title'], 'ITEM_FINISH' => $user['news_lastread'] < $config->var_news_last ? "&nbsp;<span class=\"fresh\">{$lang['lm_announce_fresh']}</span>" : '', 'LINK' => 'announce.php', 'ICON' => true), 'menu_documentation' => array('TYPE' => 'lang', 'ITEM' => 'sys_game_documentation', 'LINK' => 'docs/html/readme.html', 'BLANK' => true, 'ICON' => true), 'menu_info_ban' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'lm_banned', 'LINK' => 'banned.php', 'ICON' => true), 'menu_info_server' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'lm_server_info', 'LINK' => 'server_info.php', 'ICON' => true), 'menu_info_admins' => array('LEVEL' => 'submenu', 'TYPE' => 'lang', 'ITEM' => 'commun', 'LINK' => 'index.php?page=contact', 'ICON' => true), 'menu_options' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'Options', 'LINK' => 'index.php?page=options', 'MOVEABLE' => 2, 'HIDEABLE' => 3), 'menu_logout' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'Logout', 'LINK' => 'logout.php', 'MOVEABLE' => 2, 'HIDEABLE' => 3), 'menu_extra' => array('LEVEL' => 'submenu', 'CLASS' => 'c_c', 'ITEM' => $config->advGoogleLeftMenuCode, 'MOVEABLE' => 2, 'HIDEABLE' => 3, 'DISABLED' => !$config->advGoogleLeftMenuIsOn || empty($config->advGoogleLeftMenuCode) || empty($user) || SN_TIME_NOW - $user['register_time'] < PERIOD_WEEK || mrc_get_level($user, array(), UNIT_PREMIUM)), 'menu_supernova_logo' => array('LEVEL' => 'submenu', 'TYPE' => 'image', 'CLASS' => 'c_c', 'ITEM' => 'design/images/supernova.png', 'LINK' => 'http://supernova.ws/index-ru.html', 'ALT' => 'Powered by \'Project "SuperNova.WS"\' engine', 'BLANK' => true, 'MOVEABLE' => 2, 'HIDEABLE' => 3));
$sn_menu_admin = defined('IN_ADMIN') && IN_ADMIN === true ? array('menu_admin_server_name' => array('LEVEL' => 'header', 'TYPE' => 'text', 'ITEM' => $config->game_name), 'menu_admin_server_time' => array('TYPE' => 'text', 'ITEM' => ''), 'menu_admin_version_check' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'adm_opt_ver_check'), 'menu_admin_version_info' => array('TYPE' => 'text', 'ITEM' => ($config->server_updater_check_last ? date(FMT_DATE, $config->server_updater_check_last) : '') . '<div class="' . $sn_version_check_class[$config->server_updater_check_result] . '">' . $lang['adm_opt_ver_response_short'][$config->server_updater_check_result] . '</div>'), 'USER_AUTHLEVEL_NAME' => array('LEVEL' => 'header', 'ITEM' => $lang['user_level'][$user['authlevel']]), 'menu_admin_overview' => array('TYPE' => 'lang', 'ITEM' => 'adm_over', 'LINK' => 'admin/overview.php', 'AUTH_LEVEL' => 3), 'menu_admin_quests' => array('TYPE' => 'lang', 'ITEM' => 'qst_quests', 'LINK' => 'admin/adm_quest.php', 'AUTH_LEVEL' => 3), 'menu_admin_configuration' => array('TYPE' => 'lang', 'ITEM' => 'adm_conf', 'LINK' => 'admin/settings.php', 'AUTH_LEVEL' => 3), 'menu_admin_dark_matter' => array('TYPE' => 'lang', 'ITEM' => 'dark_matter', 'LINK' => 'admin/admin_darkmatter.php', 'AUTH_LEVEL' => 3), 'menu_admin_metamatter_header' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'adm_metametter_payment', 'AUTH_LEVEL' => 3, 'DISABLED' => !$active_payment_modules), 'menu_admin_metamatter' => array('TYPE' => 'lang', 'ITEM' => 'sys_metamatter', 'LINK' => 'admin/adm_metamatter.php', 'AUTH_LEVEL' => 3, 'DISABLED' => !$active_payment_modules), 'menu_admin_metametter_payment' => array('TYPE' => 'lang', 'ITEM' => 'adm_pay', 'LINK' => 'admin/adm_payment.php', 'AUTH_LEVEL' => 3, 'DISABLED' => !$active_payment_modules), 'menu_admin_player' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'player'), 'menu_admin_player_ban' => array('TYPE' => 'lang', 'ITEM' => 'adm_ban_unban', 'LINK' => 'admin/banned.php'), 'menu_admin_player_list' => array('TYPE' => 'lang', 'ITEM' => 'adm_plrlst', 'LINK' => 'admin/userlist.php', 'AUTH_LEVEL' => 3), 'menu_admin_universe' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'sys_universe', 'AUTH_LEVEL' => 3), 'menu_admin_planet_list_active' => array('TYPE' => 'lang', 'ITEM' => 'adm_planet_active', 'LINK' => 'admin/adm_planet_list.php?planet_active=1', 'AUTH_LEVEL' => 3), 'menu_admin_planet_list_planets' => array('TYPE' => 'lang', 'ITEM' => 'adm_pltlst', 'LINK' => 'admin/adm_planet_list.php?planet_type=' . PT_PLANET, 'AUTH_LEVEL' => 3), 'menu_admin_planet_list_moons' => array('TYPE' => 'lang', 'ITEM' => 'adm_moonlst', 'LINK' => 'admin/adm_planet_list.php?planet_type=' . PT_MOON, 'AUTH_LEVEL' => 3), 'menu_admin_planet_moon_add' => array('TYPE' => 'lang', 'ITEM' => 'adm_addmoon', 'LINK' => 'admin/add_moon.php', 'AUTH_LEVEL' => 3), 'menu_admin_planet_compensate' => array('TYPE' => 'lang', 'ITEM' => 'adm_lm_compensate', 'LINK' => 'admin/planet_compensate.php', 'AUTH_LEVEL' => 3), 'menu_admin_fleets' => array('TYPE' => 'lang', 'ITEM' => 'adm_fleet', 'LINK' => 'admin/adm_flying_fleets.php', 'AUTH_LEVEL' => 3), 'menu_admin_utilites' => array('LEVEL' => 'header', 'TYPE' => 'lang', 'ITEM' => 'tool', 'CLASS' => 'link', 'LINK' => 'admin/tools.php', 'AUTH_LEVEL' => 3), 'menu_admin_statbuilder' => array('TYPE' => 'lang', 'ITEM' => 'adm_updpt', 'LINK' => 'admin/statbuilder.php', 'AUTH_LEVEL' => 3), 'menu_admin_languages' => array('TYPE' => 'lang', 'ITEM' => 'adm_lng_title', 'LINK' => 'admin/admin_locale.php', 'AUTH_LEVEL' => 3), 'menu_admin_maintenance' => array('TYPE' => 'lang', 'ITEM' => 'adm_maint', 'LINK' => 'admin/maintenance.php', 'AUTH_LEVEL' => 3), 'menu_admin_backup' => array('TYPE' => 'lang', 'ITEM' => 'adm_backup', 'LINK' => 'admin/sxd/index.php', 'AUTH_LEVEL' => 3), 'menu_admin_messages' => array('TYPE' => 'lang', 'ITEM' => 'adm_msg', 'LINK' => 'admin/adm_message_list.php', 'AUTH_LEVEL' => 3), 'menu_admin_chat' => array('TYPE' => 'lang', 'ITEM' => 'adm_chat', 'LINK' => 'admin/admin_chat.php', 'AUTH_LEVEL' => 3), 'menu_admin_logs' => array('TYPE' => 'lang', 'ITEM' => 'adm_log_main', 'LINK' => 'admin/adm_log_main.php', 'AUTH_LEVEL' => 3), 'menu_admin_exit' => array('LEVEL' => 'header', 'CLASS' => 'link', 'TYPE' => 'lang', 'ITEM' => 'adm_back', 'LINK' => 'index.php')) : array();
Esempio n. 5
0
<?php

include 'common.' . substr(strrchr(__FILE__, '.'), 1);
if ($config->game_mode == GAME_BLITZ) {
    message($lang['sys_blitz_page_disabled'], $lang['sys_error'], 'overview.php', 10);
    die;
}
define('SN_IN_ALLY', true);
// Main admin page save themes
lng_include('alliance');
$mode = sys_get_param_str('mode');
if ($mode == 'ainfo') {
    include 'includes/alliance/ali_info.inc';
}
if (!$user['ally_id']) {
    $user_request = doquery("SELECT * FROM {{alliance_requests}} WHERE `id_user` ='{$user['id']}' LIMIT 1;", '', true);
    if ($user_request['id_user']) {
        require 'includes/alliance/ali_external_request.inc';
    } else {
        switch ($mode) {
            case 'search':
                require 'includes/alliance/ali_external_search.inc';
                break;
            case 'apply':
                require 'includes/alliance/ali_external_request.inc';
                break;
            case 'make':
                require 'includes/alliance/ali_external_create_ally.inc';
                break;
            default:
                display(parsetemplate(gettemplate('ali_external', true)), $lang['alliance']);
Esempio n. 6
0
<?php

/**
* phalanx.php
*
* 2.0 copyright (c) 2009-2011 by Gorlum for http://supernova.ws
    [!] Full rewrote using SN functions
* 1.2 - Security checks & tests by Gorlum for http://supernova.ws
* @version 1.1
* @original made by ????
* @copyright 2008 by Pada for XNova.project.es
*/
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('overview');
lng_include('universe');
$sensorLevel = mrc_get_level($user, $planetrow, STRUC_MOON_PHALANX);
if (!intval($sensorLevel)) {
    message($lang['phalanx_nosensoravailable'], $lang['tech'][STRUC_MOON_PHALANX], '', 3);
}
if ($planetrow['planet_type'] != PT_MOON) {
    message($lang['phalanx_onlyformoons'], $lang['tech'][STRUC_MOON_PHALANX], '', 3);
}
$scan_galaxy = sys_get_param_int('galaxy');
$scan_system = sys_get_param_int('system');
$scan_planet = sys_get_param_int('planet');
$scan_planet_type = 1;
// sys_get_param_int('planettype');
$id = sys_get_param_id('id');
$source_galaxy = $planetrow['galaxy'];
$source_system = $planetrow['system'];
$source_planet = $planetrow['planet'];
Esempio n. 7
0
function tpl_render_menu()
{
    global $user, $user_impersonator, $lang, $template_result;
    // $config,
    //$template_name = IN_ADMIN === true ? 'admin/menu' : 'menu';
    //$template = gettemplate($template_name, true);
    $template = gettemplate('menu', true);
    $template->assign_recursive($template_result);
    player_load_option($user, array(PLAYER_OPTION_MENU_HIDE_SHOW_BUTTON, PLAYER_OPTION_MENU_SHOW_ON_BUTTON, PLAYER_OPTION_MENU_HIDE_ON_BUTTON, PLAYER_OPTION_MENU_HIDE_ON_LEAVE, PLAYER_OPTION_MENU_UNPIN_ABSOLUTE, PLAYER_OPTION_MENU_ITEMS_AS_BUTTONS));
    $template->assign_vars(array('USER_AUTHLEVEL' => $user['authlevel'], 'USER_AUTHLEVEL_NAME' => $lang['user_level'][$user['authlevel']], 'USER_IMPERSONATOR' => is_array($user_impersonator), 'PAYMENT' => sn_module_get_active_count('payment'), 'MENU_START_HIDE' => !empty($_COOKIE[SN_COOKIE . '_menu_hidden']), 'PLAYER_OPTION_MENU_HIDE_SHOW_BUTTON' => isset($template_result['MENU_CUSTOMIZE']) ? $user['player_options'][PLAYER_OPTION_MENU_HIDE_SHOW_BUTTON] : 0, 'PLAYER_OPTION_MENU_SHOW_ON_BUTTON' => $template_result['MENU_CUSTOMIZE'] ? $user['player_options'][PLAYER_OPTION_MENU_SHOW_ON_BUTTON] : 0, 'PLAYER_OPTION_MENU_HIDE_ON_BUTTON' => $template_result['MENU_CUSTOMIZE'] ? $user['player_options'][PLAYER_OPTION_MENU_HIDE_ON_BUTTON] : 0, 'PLAYER_OPTION_MENU_HIDE_ON_LEAVE' => $template_result['MENU_CUSTOMIZE'] ? $user['player_options'][PLAYER_OPTION_MENU_HIDE_ON_LEAVE] : 0, 'PLAYER_OPTION_MENU_UNPIN_ABSOLUTE' => $template_result['MENU_CUSTOMIZE'] ? $user['player_options'][PLAYER_OPTION_MENU_UNPIN_ABSOLUTE] : 0, 'PLAYER_OPTION_MENU_ITEMS_AS_BUTTONS' => $template_result['MENU_CUSTOMIZE'] ? $user['player_options'][PLAYER_OPTION_MENU_ITEMS_AS_BUTTONS] : 0));
    if (IN_ADMIN === true && $user['authlevel'] > 0) {
        //global $sn_version_check_class;
        //$template->assign_vars(array(
        //  'CHECK_DATE' => $config->server_updater_check_last ? date(FMT_DATE, $config->server_updater_check_last) : 0,
        //  'CHECK_RESULT' => $lang['adm_opt_ver_response_short'][$config->server_updater_check_result],
        //  'CHECK_CLASS' => $sn_version_check_class[$config->server_updater_check_result],
        //));
        //$template = gettemplate('menu', $template);
        global $sn_menu_admin_extra, $sn_menu_admin;
        lng_include('admin');
        tpl_menu_merge_extra($sn_menu_admin, $sn_menu_admin_extra);
        tpl_menu_assign_to_template($sn_menu_admin, $template);
    } else {
        global $sn_menu, $sn_menu_extra;
        tpl_menu_merge_extra($sn_menu, $sn_menu_extra);
        tpl_menu_assign_to_template($sn_menu, $template);
    }
    return $template;
}
Esempio n. 8
0
<?php

/**
 * lostpassword.php
 *
 * @version 2.0 copyright (c) 2009-2011 by Gorlum for http://supernova.ws
 *   [!] Fully rewrote
 *   [+] Confrimation code system
 *   [+] Random password generation
 * @version 1.1 copyright (c) 2009-2011 by Gorlum for http://supernova.ws
 *   [~] Security checks & tests
 * @version 1.0 copyright 2008 by Tom1991 for XNova
 *   [!] Création (Tom)
**/
include 'includes/init.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('login');
$id_ref = sys_get_param_int('id_ref');
$email = sys_get_param_str('email');
$confirm = sys_get_param_str('confirm');
$confirm_password_reset = CONFIRM_PASSWORD_RESET;
if ($confirm) {
    $last_confirm = doquery("SELECT *, UNIX_TIMESTAMP(`create_time`) as `unix_time` FROM {{confirmations}} WHERE `code` = '{$confirm}' LIMIT 1;", '', true);
    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']);
        }
Esempio n. 9
0
<?php

/**
* annonce.php
*
* Announces for trading between players
*
* @version 1.0s - Security checked for SQL-injection by Gorlum for http://supernova.ws
* @version 1.0
* @copyright 2008 by ??????? for XNova
*/
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
$users = db_user_by_id($user['id'], false, '`username`,`galaxy`,`system`');
$action = sys_get_param_int('action');
$GET_id = sys_get_param_int('id');
lng_include('announce');
switch ($action) {
    case 1:
        //on veut poster une annonce
        $page .= '<HTML>
    <center>
    <br>
    <table width="600">
    <td class="c" colspan="10" align="center"><b><font color="white">' . $lang['Classifieds'] . '</font></b></td></tr>
    <form action="annonce.php?action=2" method="post">
    <td class="c" colspan="10" align="center"><b>' . $lang['Resources_to_be_sold'] . '</font></b></td>
    <tr><th colspan="5">' . $lang['metal'] . '</th><th colspan="5"><input type="texte" value="0" name="metalvendre" /></th></tr>
    <tr><th colspan="5">' . $lang['crystal'] . '</th><th colspan="5"><input type="texte" value="0" name="cristalvendre" /></th></tr>
    <tr><th colspan="5">' . $lang['deuterium'] . '</th><th colspan="5"><input type="texte" value="0" name="deutvendre" /></th></tr>

    <td class="c" colspan="10" align="center"><b>' . $lang['Desired_resources'] . '</font></b></td></tr>
Esempio n. 10
0
function mrc_mercenary_render($user)
{
    global $config, $lang, $sn_powerup_buy_discounts;
    $mode = sys_get_param_int('mode', UNIT_MERCENARIES);
    $mode = in_array($mode, array(UNIT_MERCENARIES, UNIT_PLANS)) ? $mode : UNIT_MERCENARIES;
    $is_permanent = $mode == UNIT_PLANS || !$config->empire_mercenary_temporary;
    if ($mercenary_id = sys_get_param_int('mercenary_id')) {
        $operation_result = mrc_mercenary_hire($mode, $user, $mercenary_id);
    }
    lng_include('infos');
    $template = gettemplate('mrc_mercenary_hire', true);
    if (!empty($operation_result)) {
        $template->assign_block_vars('result', $operation_result);
    }
    foreach ($sn_powerup_buy_discounts as $hire_period => $hire_discount) {
        $template->assign_block_vars('period', array('LENGTH' => $hire_period, 'TEXT' => $lang['mrc_period_list'][$hire_period], 'DISCOUNT' => $hire_period / $config->empire_mercenary_base_period * $hire_discount, 'SELECTED' => $hire_period == $config->empire_mercenary_base_period));
    }
    $user_dark_matter = mrc_get_level($user, '', RES_DARK_MATTER);
    $cost_alliance_multiplyer = SN_IN_ALLY === true && $mode == UNIT_PLANS ? $config->ali_bonus_members : 1;
    $cost_alliance_multiplyer = $cost_alliance_multiplyer >= 1 ? $cost_alliance_multiplyer : 1;
    foreach (sn_get_groups($mode == UNIT_PLANS ? 'plans' : 'mercenaries') as $mercenary_id) {
        $mercenary = get_unit_param($mercenary_id);
        $mercenary_bonus = $mercenary['bonus'];
        $mercenary_bonus = $mercenary_bonus >= 0 ? "+{$mercenary_bonus}" : "{$mercenary_bonus}";
        switch ($mercenary['bonus_type']) {
            case BONUS_PERCENT:
                $mercenary_bonus = "{$mercenary_bonus}% ";
                break;
            case BONUS_ABILITY:
                $mercenary_bonus = '';
                break;
            case BONUS_ADD:
            default:
                break;
        }
        $mercenary_level = mrc_get_level($user, null, $mercenary_id, false, true);
        $mercenary_level_bonus = max(0, mrc_get_level($user, null, $mercenary_id) - $mercenary_level);
        $total_cost_old = 0;
        if ($is_permanent) {
            $total_cost_old = eco_get_total_cost($mercenary_id, $mercenary_level);
            $total_cost_old = $total_cost_old[BUILD_CREATE][RES_DARK_MATTER] * $cost_alliance_multiplyer;
        }
        $total_cost = eco_get_total_cost($mercenary_id, $mercenary_level + 1);
        $total_cost[BUILD_CREATE][RES_DARK_MATTER] *= $cost_alliance_multiplyer;
        $mercenary_unit = classSupernova::db_get_unit_by_location($user['id'], LOC_USER, $user['id'], $mercenary_id);
        $mercenary_time_finish = strtotime($mercenary_unit['unit_time_finish']);
        $template->assign_block_vars('officer', array('ID' => $mercenary_id, 'NAME' => $lang['tech'][$mercenary_id], 'DESCRIPTION' => $lang['info'][$mercenary_id]['description'], 'EFFECT' => $lang['info'][$mercenary_id]['effect'], 'COST' => $total_cost[BUILD_CREATE][RES_DARK_MATTER] - $total_cost_old, 'COST_TEXT' => pretty_number($total_cost[BUILD_CREATE][RES_DARK_MATTER] - $total_cost_old, 0, $user_dark_matter), 'LEVEL' => $mercenary_level, 'LEVEL_BONUS' => $mercenary_level_bonus, 'LEVEL_MAX' => $mercenary['max'], 'BONUS' => $mercenary_bonus, 'BONUS_TYPE' => $mercenary['bonus_type'], 'HIRE_END' => $mercenary_time_finish && $mercenary_time_finish >= SN_TIME_NOW ? date(FMT_DATE_TIME, $mercenary_time_finish) : '', 'CAN_BUY' => mrc_officer_accessible($user, $mercenary_id)));
        $upgrade_cost = 1;
        for ($i = $config->empire_mercenary_temporary ? 1 : $mercenary_level + 1; $mercenary['max'] ? $i <= $mercenary['max'] : $upgrade_cost <= $user_dark_matter; $i++) {
            $total_cost = eco_get_total_cost($mercenary_id, $i);
            $total_cost[BUILD_CREATE][RES_DARK_MATTER] *= $cost_alliance_multiplyer;
            $upgrade_cost = $total_cost[BUILD_CREATE][RES_DARK_MATTER] - $total_cost_old;
            $template->assign_block_vars('officer.level', array('VALUE' => $i, 'PRICE' => $upgrade_cost));
        }
    }
    $template->assign_vars(array('PAGE_HEADER' => $lang['tech'][$mode], 'MODE' => $mode, 'IS_PERMANENT' => intval($is_permanent), 'EMPIRE_MERCENARY_TEMPORARY' => $config->empire_mercenary_temporary, 'DARK_MATTER' => $user_dark_matter));
    display(parsetemplate($template), $lang['tech'][$mode]);
}
Esempio n. 11
0
/**
 * search.php
 *
 * 1.3 copyright (c) 2009-2010 by Gorlum for http://supernova.ws
 *   [%] Fixed search of players without alliance
 * 1.2 - Security checks & tests by Gorlum for http://supernova.ws
 * @version 1.1
 * @copyright 2009 by angelus_ira for Project. XNova
 * @copyright 2008 by ??????? for XNova
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
$searchtext = mysql_real_escape_string($_POST['searchtext']);
$type = sys_get_param_str('type');
$dpath = !$user["dpath"] ? DEFAULT_SKINPATH : $user["dpath"];
lng_include('search');
$i = 0;
//creamos la query
switch ($type) {
    case "playername":
        $table = gettemplate('search_user_table');
        $row = gettemplate('search_user_row');
        $sql = "SELECT\r\n        u.id as uid, u.username, u.ally_id, u.id_planet,\r\n        p.*, p.name as planet_name,\r\n        s.total_points, s.total_rank,\r\n        a.ally_tag, a.ally_name\r\n      FROM {{table}}planets as p,\r\n        {{table}}statpoints as s,\r\n        {{table}}users as u LEFT JOIN {{table}}alliance as a ON a.id = u.ally_id\r\n      WHERE\r\n        username LIKE '%{$searchtext}%'\r\n        AND p.id_owner = u.id AND p.id=u.id_planet\r\n        AND s.id_owner = u.id AND stat_type = 1 AND stat_code = 1 LIMIT 30;";
        $search = doquery($sql, '');
        break;
    case "planetname":
        $table = gettemplate('search_user_table');
        $row = gettemplate('search_user_row');
        $sql = "SELECT\r\n        p.*, p.name as planet_name,\r\n        u.id as uid, u.username, u.ally_id, u.id_planet,\r\n        s.total_points, s.total_rank,\r\n        a.ally_tag, a.ally_name\r\n      FROM {{table}}planets as p,\r\n        {{table}}users as u,\r\n        {{table}}alliance as a,\r\n        {{table}}statpoints as s\r\n      WHERE\r\n        name LIKE '%{$searchtext}%'\r\n        AND u.id=p.id_owner\r\n        AND a.id = u.ally_id\r\n        AND s.id_owner = p.id_owner AND stat_type = 1 AND stat_code = 1 LIMIT 30;";
        $search = doquery($sql, '');
        break;
Esempio n. 12
0
/**
* artifacts.php
* Artifact actions
*
* @package roleplay
* @version 1.0
*
* Revision History
* ================
* 1.0 copyright (c) 2011 by Gorlum for http://supernova.ws
*
*/
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('infos');
lng_include('artifacts');
include 'includes/includes/art_artifact.php';
$sn_group_artifacts = sn_get_groups('artifacts');
if (($action = sys_get_param_int('action')) && in_array($unit_id = sys_get_param_int('unit_id'), $sn_group_artifacts)) {
    switch ($action) {
        case ACTION_BUY:
            sn_db_transaction_start();
            $user = db_user_by_id($user['id'], true);
            $artifact_level = mrc_get_level($user, array(), $unit_id, true);
            $build_data = eco_get_build_data($user, $planetrow, $unit_id, $artifact_level, true);
            $darkmater_cost = $build_data[BUILD_CREATE][RES_DARK_MATTER];
            // TODO: more correct check - with "FOR UPDATE"
            if (mrc_get_level($user, null, RES_DARK_MATTER) >= $darkmater_cost) {
                $unit_max_stack = get_unit_param($unit_id, P_MAX_STACK);
                if (!isset($unit_max_stack) || $unit_max_stack > mrc_get_level($user, $planetrow, $unit_id)) {
                    $db_changeset['unit'][] = sn_db_unit_changeset_prepare($unit_id, 1, $user);
Esempio n. 13
0
/**
 * @return template
 */
function tpl_render_menu()
{
    global $user, $lang, $template_result, $sn_menu_admin_extra, $sn_menu_admin, $sn_menu, $sn_menu_extra;
    lng_include('admin');
    $template = gettemplate('menu', true);
    $template->assign_recursive($template_result);
    $template->assign_vars(array('USER_AUTHLEVEL' => $user['authlevel'], 'USER_AUTHLEVEL_NAME' => $lang['user_level'][$user['authlevel']], 'PAYMENT' => sn_module_get_active_count('payment'), 'MENU_START_HIDE' => !empty($_COOKIE[SN_COOKIE . '_menu_hidden']) || defined('SN_GOOGLE')));
    if (isset($template_result['MENU_CUSTOMIZE'])) {
        $template->assign_vars(array('PLAYER_OPTION_MENU_SHOW_ON_BUTTON' => classSupernova::$user_options[PLAYER_OPTION_MENU_SHOW_ON_BUTTON], 'PLAYER_OPTION_MENU_HIDE_ON_BUTTON' => classSupernova::$user_options[PLAYER_OPTION_MENU_HIDE_ON_BUTTON], 'PLAYER_OPTION_MENU_HIDE_ON_LEAVE' => classSupernova::$user_options[PLAYER_OPTION_MENU_HIDE_ON_LEAVE], 'PLAYER_OPTION_MENU_UNPIN_ABSOLUTE' => classSupernova::$user_options[PLAYER_OPTION_MENU_UNPIN_ABSOLUTE], 'PLAYER_OPTION_MENU_ITEMS_AS_BUTTONS' => classSupernova::$user_options[PLAYER_OPTION_MENU_ITEMS_AS_BUTTONS], 'PLAYER_OPTION_MENU_WHITE_TEXT' => classSupernova::$user_options[PLAYER_OPTION_MENU_WHITE_TEXT], 'PLAYER_OPTION_MENU_OLD' => classSupernova::$user_options[PLAYER_OPTION_MENU_OLD], 'PLAYER_OPTION_MENU_HIDE_SHOW_BUTTON' => empty($_COOKIE[SN_COOKIE . '_menu_hidden']) && !defined('SN_GOOGLE') ? classSupernova::$user_options[PLAYER_OPTION_MENU_HIDE_SHOW_BUTTON] : 1));
    }
    if (defined('IN_ADMIN') && IN_ADMIN === true && !empty($user['authlevel']) && $user['authlevel'] > 0) {
        tpl_menu_merge_extra($sn_menu_admin, $sn_menu_admin_extra);
        tpl_menu_assign_to_template($sn_menu_admin, $template);
    } else {
        tpl_menu_merge_extra($sn_menu, $sn_menu_extra);
        tpl_menu_assign_to_template($sn_menu, $template);
    }
    return $template;
}
Esempio n. 14
0
    }
}
unset($db_name);
// Initializing constants
define('TEMPLATE_NAME', $config->game_default_template ? $config->game_default_template : 'OpenGame');
define('TEMPLATE_DIR', SN_ROOT_PHYSICAL . 'design/templates/' . TEMPLATE_NAME);
define('DEFAULT_SKINPATH', $config->game_default_skin ? $config->game_default_skin : 'skins/EpicBlue/');
define('DEFAULT_LANG', $config->game_default_language ? $config->game_default_language : 'ru');
define('FMT_DATE', $config->int_format_date ? $config->int_format_date : 'd.m.Y');
define('FMT_TIME', $config->int_format_time ? $config->int_format_time : 'H:i:s');
define('FMT_DATE_TIME', FMT_DATE . ' ' . FMT_TIME);
$HTTP_ACCEPT_LANGUAGE = DEFAULT_LANG;
// Now including all functions
require_once "{$sn_root_physical}includes/functions.{$phpEx}";
require_once "{$sn_root_physical}includes/vars.{$phpEx}";
require_once "{$sn_root_physical}includes/template.{$phpEx}";
require_once "{$sn_root_physical}language/" . DEFAULT_LANG . '/language.mo';
$lang['LANG_INFO'] = $lang_info;
unset($lang_info);
$dir = opendir("{$sn_root_physical}includes/functions");
while (($file = readdir($dir)) !== false) {
    $extension = '.' . substr($file, -3);
    if ($extension == ".{$phpEx}") {
        require_once "{$sn_root_physical}includes/functions/{$file}";
    }
}
sn_db_connect();
$language = sys_get_param_str('lang');
lng_include('system');
lng_include('tech');
Esempio n. 15
0
<?php

/**
 * jumpgate.php
 *
 * Jump Gate interface, I presume
 *
 * @version 1.0st Security checks & tests by Gorlum for http://supernova.ws
 * @version 1
 * @copyright 2008 By Chlorel for XNova
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('infos');
if ($_POST) {
    $RestString = GetNextJumpWaitTime($planetrow);
    $NextJumpTime = $RestString['value'];
    $JumpTime = time();
    // Dit monsieur, j'ai le droit de sauter ???
    if ($NextJumpTime == 0) {
        // Dit monsieur, ou je veux aller ca existe ???
        $TargetPlanet = intval($_POST['jmpto']);
        $TargetGate = doquery("SELECT `id`, `sprungtor`, `last_jump_time` FROM {{planets}} WHERE `id` = '" . $TargetPlanet . "';", '', true);
        // Dit monsieur, ou je veux aller y a une porte de saut ???
        if ($TargetGate['sprungtor'] > 0) {
            $RestString = GetNextJumpWaitTime($TargetGate);
            $NextDestTime = $RestString['value'];
            // Dit monsieur, chez toi aussi peut y avoir un saut ???
            if ($NextDestTime == 0) {
                // Bon j'ai eu toutes les autorisations, donc je compte les radis !!!
                $ShipArray = array();
                $SubQueryOri = "";
Esempio n. 16
0
 * 1.4 - copyright (c) 2010 by Gorlum for http://supernova.ws
 *   [~] Security checked & verified for SQL-injection by Gorlum for http://supernova.ws
 *
 * 1.3 - copyright (c) 2010 by Gorlum for http://supernova.ws
 *   [+] "Outbox" added
 *
 * 1.2 - copyright 2008 by Chlorel for XNova
 *   [+] Regroupage des 2 fichiers vers 1 seul plus simple a mettre en oeuvre et a gerer !
 *
 * 1.1 - Mise a plat, linearisation, suppression des doublons / triplons / 'n'gnions dans le code (Chlorel)
 *
 * 1.0 - Version originelle (Tom1991)
 *
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('messages');
$mode = sys_get_param_str('msg_delete') ? 'delete' : sys_get_param_str('mode');
$current_class = sys_get_param_int('message_class');
switch ($mode) {
    case 'write':
        $error_list = array();
        $template = gettemplate('msg_message_compose', true);
        $recipient_name = sys_get_param_str('recipient_name');
        if ($recipient_name) {
            $recipient_row = doquery("SELECT * FROM {{users}} WHERE `username` = '{$recipient_name}';", '', true);
        }
        if (!$recipient_row) {
            $recipient_id = sys_get_param_int('id');
            $recipient_row = doquery("SELECT * FROM {{users}} WHERE `id` = {$recipient_id};", '', true);
            if (!$recipient_row) {
                $recipient_id = 0;
Esempio n. 17
0
function ShowBuildingInfoPage($CurrentUser, $CurrentPlanet, $BuildID)
{
    global $dpath, $lang, $sn_data;
    $sn_groups =& $sn_data['groups'];
    $unit_data =& $sn_data[$BuildID];
    lng_include('infos');
    $GateTPL = '';
    $DestroyTPL = '';
    $TableHeadTPL = '';
    $parse = $lang;
    // Données de base
    $parse['dpath'] = $dpath;
    $parse['name'] = $lang['tech'][$BuildID];
    $parse['image'] = $BuildID;
    $parse['description'] = $lang['info'][$BuildID]['description'];
    if ($BuildID >= 1 && $BuildID <= 3) {
        // Cas des mines
        $PageTPL = gettemplate('info_buildings_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_prod_p_hour}</td><td class=\"c\">{nfo_difference}</td><td class=\"c\">{nfo_used_energy}</td><td class=\"c\">{nfo_difference}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_prod} {build_gain}</th><th>{build_prod_diff}</th><th>{build_need}</th><th>{build_need_diff}</th></tr>";
    } elseif ($BuildID == 4) {
        // Centrale Solaire
        $PageTPL = gettemplate('info_buildings_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_prod_energy}</td><td class=\"c\">{nfo_difference}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_prod} {build_gain}</th><th>{build_prod_diff}</th></tr>";
    } elseif ($BuildID == 12) {
        // Centrale Fusion
        $PageTPL = gettemplate('info_buildings_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_prod_energy}</td><td class=\"c\">{nfo_difference}</td><td class=\"c\">{nfo_used_deuter}</td><td class=\"c\">{nfo_difference}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_prod} {build_gain}</th><th>{build_prod_diff}</th><th>{build_need}</th><th>{build_need_diff}</th></tr>";
    } elseif ($BuildID >= 14 && $BuildID <= 32) {
        // Batiments Generaux
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 33) {
        // Batiments Terraformer
        $PageTPL = gettemplate('info_buildings_general');
    } elseif ($BuildID == 34) {
        // Dépot d'alliance
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 35) {
        // nano
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 44) {
        // Silo de missiles
        $PageTPL = gettemplate('info_buildings_general');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 41) {
        // Batiments lunaires
        $PageTPL = gettemplate('info_buildings_general');
    } elseif ($BuildID == 42) {
        // Phalange
        $PageTPL = gettemplate('info_buildings_table');
        $TableHeadTPL = "<tr><td class=\"c\">{nfo_level}</td><td class=\"c\">{nfo_range}</td></tr>";
        $TableTPL = "<tr><th>{build_lvl}</th><th>{build_range}</th></tr>";
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif ($BuildID == 43) {
        // Porte de Saut
        $PageTPL = gettemplate('info_buildings_general');
        $GateTPL = gettemplate('gate_fleet_table');
        $DestroyTPL = gettemplate('info_buildings_destroy');
    } elseif (in_array($BuildID, $sn_data['groups']['tech'])) {
        // Laboratoire
        $PageTPL = gettemplate('info_buildings_general');
    } elseif (in_array($BuildID, $sn_data['groups']['fleet'])) {
        // Flotte
        $PageTPL = gettemplate('info_buildings_fleet');
        $parse['element_typ'] = $lang['tech'][SHIP_FLEET];
        $rapid_fire = eco_render_rapid_fire($BuildID);
        $parse['rf_info_to'] = $rapid_fire['to'];
        // Rapid Fire vers
        $parse['rf_info_fr'] = $rapid_fire['from'];
        // Rapid Fire de
        $parse['hull_pt'] = pretty_number(($sn_data[$BuildID]['metal'] + $sn_data[$BuildID]['crystal']) / 10);
        // Points de Structure
        $parse['shield_pt'] = pretty_number($sn_data[$BuildID]['shield']);
        // Points de Bouclier
        $parse['attack_pt'] = pretty_number($sn_data[$BuildID]['attack']);
        // Points d'Attaque
        $parse['capacity_pt'] = pretty_number($sn_data[$BuildID]['capacity']);
        // Capacitée de fret
        $parse['base_speed'] = pretty_number($sn_data[$BuildID]['speed']);
        // Vitesse de base
        $parse['base_conso'] = pretty_number($sn_data[$BuildID]['consumption']);
        // Consommation de base
        if ($BuildID == SHIP_CARGO_SMALL) {
            $parse['upd_speed'] = "<font color=\"yellow\">(" . pretty_number($sn_data[$BuildID]['speed2']) . ")</font>";
            // Vitesse rééquipée
            $parse['upd_conso'] = "<font color=\"yellow\">(" . pretty_number($sn_data[$BuildID]['consumption2']) . ")</font>";
            // Consommation apres rééquipement
        } elseif ($BuildID == SHIP_BOMBER) {
            $parse['upd_speed'] = "<font color=\"yellow\">(" . pretty_number($sn_data[$BuildID]['speed2']) . ")</font>";
            // Vitesse rééquipée
        }
    } elseif (in_array($BuildID, $sn_data['groups']['defense_active'])) {
        // Defenses
        $PageTPL = gettemplate('info_buildings_defense');
        $parse['element_typ'] = $lang['tech'][400];
        $rapid_fire = eco_render_rapid_fire($BuildID);
        $parse['rf_info_to'] = $rapid_fire['to'];
        // Rapid Fire vers
        $parse['rf_info_fr'] = $rapid_fire['from'];
        // Rapid Fire de
        $parse['hull_pt'] = pretty_number(($sn_data[$BuildID]['metal'] + $sn_data[$BuildID]['crystal']) / 10);
        // Points de Structure
        $parse['shield_pt'] = pretty_number($sn_data[$BuildID]['shield']);
        // Points de Bouclier
        $parse['attack_pt'] = pretty_number($sn_data[$BuildID]['attack']);
        // Points d'Attaque
    } elseif ($BuildID >= 502 && $BuildID <= 503) {
        // Misilles
        $PageTPL = gettemplate('info_buildings_defense');
        $parse['element_typ'] = $lang['tech'][400];
        $parse['hull_pt'] = pretty_number($sn_data[$BuildID]['metal'] + $sn_data[$BuildID]['crystal']);
        // Points de Structure
        $parse['shield_pt'] = pretty_number($sn_data[$BuildID]['shield']);
        // Points de Bouclier
        $parse['attack_pt'] = pretty_number($sn_data[$BuildID]['attack']);
        // Points d'Attaque
    } elseif (in_array($BuildID, $sn_data['groups']['mercenaries'])) {
        // Officiers
        $PageTPL = gettemplate('info_officiers_general');
        $mercenary = $sn_data[$BuildID];
        $mercenary_bonus = $mercenary['bonus'];
        $mercenary_bonus = $mercenary_bonus >= 0 ? "+{$mercenary_bonus}" : "{$mercenary_bonus}";
        switch ($mercenary['bonus_type']) {
            case BONUS_PERCENT:
                $mercenary_bonus = "{$mercenary_bonus}%";
                break;
            case BONUS_ADD:
                break;
            case BONUS_ABILITY:
                $mercenary_bonus = '';
                break;
            default:
                break;
        }
        $parse['EFFECT'] = $lang['info'][$BuildID]['effect'];
        $parse['mercenary_bonus'] = $mercenary_bonus;
        $parse['max_level'] = $mercenary['max'];
    }
    // ---- Tableau d'evolution
    if ($TableHeadTPL != '') {
        $parse['table_head'] = parsetemplate($TableHeadTPL, $lang);
        $parse['table_data'] = ShowProductionTable($CurrentUser, $CurrentPlanet, $BuildID, $TableTPL);
    }
    // La page principale
    $page = parsetemplate($PageTPL, $parse);
    if ($GateTPL != '') {
        if ($CurrentPlanet[$unit_data['name']] > 0) {
            $RestString = GetNextJumpWaitTime($CurrentPlanet);
            $parse['gate_start_link'] = uni_render_coordinates_href($CurrentPlanet, '', 3);
            if ($RestString['value'] != 0) {
                $parse['gate_time_script'] = InsertJavaScriptChronoApplet("Gate", "1", $RestString['value'], true);
                $parse['gate_wait_time'] = "<div id=\"bxx" . "Gate" . "1" . "\"></div>";
                $parse['gate_script_go'] = InsertJavaScriptChronoApplet("Gate", "1", $RestString['value'], false);
            } else {
                $parse['gate_time_script'] = "";
                $parse['gate_wait_time'] = "";
                $parse['gate_script_go'] = "";
            }
            $parse['gate_dest_moons'] = BuildJumpableMoonCombo($CurrentUser, $CurrentPlanet);
            $parse['gate_fleet_rows'] = BuildFleetListRows($CurrentPlanet);
            $page .= parsetemplate($GateTPL, $parse);
        }
    }
    if ($DestroyTPL != '') {
        if ($CurrentPlanet[$unit_data['name']] > 0) {
            // ---- Destruction
            $NeededRessources = GetBuildingPrice($CurrentUser, $CurrentPlanet, $BuildID, true, true);
            $DestroyTime = GetBuildingTime($CurrentUser, $CurrentPlanet, $BuildID) / 2;
            $parse['destroyurl'] = "buildings.php?mode=" . QUE_STRUCTURES . "&action=destroy&unit_id={$BuildID}";
            // Non balisé les balises sont dans le
            $parse['levelvalue'] = $CurrentPlanet[$unit_data['name']];
            // Niveau du batiment a detruire
            $parse['nfo_metal'] = $lang['Metal'];
            $parse['nfo_crysta'] = $lang['Crystal'];
            $parse['nfo_deuter'] = $lang['Deuterium'];
            $parse['metal'] = pretty_number($NeededRessources['metal']);
            // Cout en metal de la destruction
            $parse['crystal'] = pretty_number($NeededRessources['crystal']);
            // Cout en cristal de la destruction
            $parse['deuterium'] = pretty_number($NeededRessources['deuterium']);
            // Cout en deuterium de la destruction
            $parse['destroytime'] = pretty_time($DestroyTime);
            // Durée de la destruction
            // L'insert de destruction
            $page .= parsetemplate($DestroyTPL, $parse);
        }
    }
    return $page;
}
Esempio n. 18
0
            $ReturnFlyingTime = ($FleetRow['fleet_end_stay'] != 0 && $FleetRow['fleet_start_time'] < SN_TIME_NOW ? $FleetRow['fleet_start_time'] : SN_TIME_NOW) - $FleetRow['start_time'] + SN_TIME_NOW + 1;
            doquery("UPDATE {{fleets}} SET `fleet_start_time` = " . SN_TIME_NOW . ", `fleet_group` = 0, `fleet_end_stay` = '0', `fleet_end_time` = '{$ReturnFlyingTime}', `fleet_target_owner` = '{$user['id']}', `fleet_mess` = '1' WHERE `fleet_id` = '{$fleet_id}' LIMIT 1;");
            if ($FleetRow['fleet_group']) {
                // TODO: Make here to delete only one AKS - by adding aks_fleet_count to AKS table
                doquery('DELETE FROM {{aks}} WHERE `id` NOT IN (SELECT DISTINCT `fleet_group` FROM {{fleets}});');
            }
        } elseif ($FleetRow['fleet_id'] && $FleetRow['fleet_owner'] != $user['id']) {
            $debug->warning('Trying to return fleet that not belong to user', 'Hack attempt', 302, array('base_dump' => true, 'fleet_row' => $FleetRow));
            sn_db_transaction_rollback();
            die('Hack attempt 302');
        }
        sn_db_transaction_commit();
    }
}
lng_include('overview');
lng_include('fleet');
if (!$planetrow) {
    message($lang['fl_noplanetrow'], $lang['fl_error']);
}
$template = gettemplate('flying_fleets', true);
$i = 0;
$fleet_query = doquery("SELECT * FROM {{fleets}} WHERE fleet_owner={$user['id']};");
while ($fleet_row = db_fetch($fleet_query)) {
    $i++;
    $fleet_data = tpl_parse_fleet_db($fleet_row, $i, $user);
    $template->assign_block_vars('fleets', $fleet_data['fleet']);
    foreach ($fleet_data['ships'] as $ship_data) {
        $template->assign_block_vars('fleets.ships', $ship_data);
    }
}
$MaxExpeditions = get_player_max_expeditons($user);
Esempio n. 19
0
 *     [+] Now there is full planet list on right side of screen a-la oGame
 *     [+] Planet list now include icons for buildings/tech/fleet on progress
 * 1.5 - copyright (c) 2010 by Gorlum for http://supernova.ws
 *     [*] Subplanet timers now use sn_timer.js library
 * 1.4 - copyright (c) 2010 by Gorlum for http://supernova.ws
 *     [*] All mainplanet timers now use new sn_timer.js library
 * 1.3 - copyright (c) 2010 by Gorlum for http://supernova.ws
 *     [*] Adjusted layouts of player infos
 * 1.2 - copyright (c) 2010 by Gorlum for http://supernova.ws
 *     [*] Adjusted layouts of planet infos
 * 1.1 - Security checks by Gorlum for http://supernova.ws
 * @version 1
 * @copyright 2008 By Chlorel for XNova
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('overview');
$mode = sys_get_param_str('mode');
switch ($mode) {
    case 'manage':
        $template = gettemplate('planet_manage', true);
        $planet_id = sys_get_param_int('planet_id');
        if (sys_get_param_str('rename') && ($new_name = sys_get_param_str('new_name'))) {
            $planetrow['name'] = $new_name;
            $new_name = mysql_real_escape_string($new_name);
            doquery("UPDATE {{planets}} SET `name` = '{$new_name}' WHERE `id` = '{$planetrow['id']}' LIMIT 1;");
        } elseif (sys_get_param_str('abandon')) {
            $abandon_confirm = $_POST['abandon_confirm'];
            if (md5($abandon_confirm) == $user['password']) {
                if ($user['id_planet'] != $user['current_planet'] && $user['current_planet'] == $planet_id) {
                    $destruyed = $time_now + 60 * 60 * 24;
                    doquery("UPDATE {{planets}} SET `destruyed`='{$destruyed}', `id_owner`='0' WHERE `id`='{$user['current_planet']}' LIMIT 1;");
Esempio n. 20
0
function sn_options_model()
{
    global $user, $user_option_list, $lang, $template_result, $config;
    $language_new = sys_get_param_str('langer', $user['lang']);
    if ($language_new != $user['lang']) {
        $lang->lng_switch($language_new);
    }
    lng_include('options');
    lng_include('messages');
    $FMT_DATE = preg_replace(array('/d/', '/m/', '/Y/'), array('DD', 'MM', 'YYYY'), FMT_DATE);
    if (sys_get_param_str('mode') == 'change') {
        if ($user['authlevel'] > 0) {
            $planet_protection = sys_get_param_int('adm_pl_prot') ? $user['authlevel'] : 0;
            db_planet_set_by_owner($user['id'], "`id_level` = '{$planet_protection}'");
            db_user_set_by_id($user['id'], "`admin_protection` = '{$planet_protection}'");
            $user['admin_protection'] = $planet_protection;
        }
        if (sys_get_param_int('vacation') && !$config->user_vacation_disable) {
            sn_db_transaction_start();
            if ($user['authlevel'] < 3) {
                if ($user['vacation_next'] > SN_TIME_NOW) {
                    message($lang['opt_vacation_err_timeout'], $lang['Error'], 'index.php?page=options', 5);
                    die;
                }
                $is_building = doquery("SELECT * FROM `{{fleets}}` WHERE `fleet_owner` = '{$user['id']}' LIMIT 1;", true);
                if ($is_building) {
                    message($lang['opt_vacation_err_your_fleet'], $lang['Error'], 'index.php?page=options', 5);
                    die;
                }
                $que = que_get($user['id'], false);
                if (!empty($que)) {
                    message($lang['opt_vacation_err_que'], $lang['Error'], 'index.php?page=options', 5);
                    die;
                }
                $query = classSupernova::db_get_record_list(LOC_PLANET, "`id_owner` = {$user['id']}");
                foreach ($query as $planet) {
                    // $planet = sys_o_get_updated($user, $planet, SN_TIME_NOW);
                    // $planet = $planet['planet'];
                    db_planet_set_by_id($planet['id'], "last_update = " . SN_TIME_NOW . ", energy_used = '0', energy_max = '0',\n            metal_perhour = '{$config->metal_basic_income}', crystal_perhour = '{$config->crystal_basic_income}', deuterium_perhour = '{$config->deuterium_basic_income}',\n            metal_mine_porcent = '0', crystal_mine_porcent = '0', deuterium_sintetizer_porcent = '0', solar_plant_porcent = '0',\n            fusion_plant_porcent = '0', solar_satelit_porcent = '0', ship_sattelite_sloth_porcent = 0");
                }
                $user['vacation'] = SN_TIME_NOW + $config->player_vacation_time;
            } else {
                $user['vacation'] = SN_TIME_NOW;
            }
            sn_db_transaction_commit();
        }
        foreach ($user_option_list as $option_group_id => $option_group) {
            foreach ($option_group as $option_name => $option_value) {
                if ($user[$option_name] !== null) {
                    $user[$option_name] = sys_get_param_str($option_name);
                } else {
                    $user[$option_name] = $option_value;
                }
            }
        }
        $options = sys_user_options_pack($user);
        $player_options = sys_get_param('options');
        if (!empty($player_options)) {
            array_walk($player_options, function (&$value) {
                // TODO - Когда будет больше параметров - сделать больше проверок
                $value = intval($value);
            });
            classSupernova::$user_options->offsetSet($player_options);
            // pdump($player_options);die();
            //      player_save_option_array($user, $player_options);
        }
        $username = substr(sys_get_param_str_unsafe('username'), 0, 32);
        $username_safe = db_escape($username);
        if ($username && $user['username'] != $username && $config->game_user_changename != SERVER_PLAYER_NAME_CHANGE_NONE && sys_get_param_int('username_confirm') && !strpbrk($username, LOGIN_REGISTER_CHARACTERS_PROHIBITED)) {
            // проверка на корректность
            sn_db_transaction_start();
            $name_check = doquery("SELECT * FROM {{player_name_history}} WHERE `player_name` LIKE \"{$username_safe}\" LIMIT 1 FOR UPDATE;", true);
            if (!$name_check || $name_check['player_id'] == $user['id']) {
                $user = db_user_by_id($user['id'], true);
                switch ($config->game_user_changename) {
                    case SERVER_PLAYER_NAME_CHANGE_PAY:
                        if (mrc_get_level($user, $planetrow, RES_DARK_MATTER) < $config->game_user_changename_cost) {
                            $template_result['.']['result'][] = array('STATUS' => ERR_ERROR, 'MESSAGE' => $lang['opt_msg_name_change_err_no_dm']);
                            break;
                        }
                        rpg_points_change($user['id'], RPG_NAME_CHANGE, -$config->game_user_changename_cost, sprintf('Пользователь ID %d сменил имя с "%s" на "%s"', $user['id'], $user['username'], $username));
                    case SERVER_PLAYER_NAME_CHANGE_FREE:
                        db_user_set_by_id($user['id'], "`username` = '{$username_safe}'");
                        doquery("REPLACE INTO {{player_name_history}} SET `player_id` = {$user['id']}, `player_name` = '{$username_safe}'");
                        // TODO: Change cookie to not force user relogin
                        // sn_setcookie(SN_COOKIE, '', time() - PERIOD_WEEK, SN_ROOT_RELATIVE);
                        $template_result['.']['result'][] = array('STATUS' => ERR_NONE, 'MESSAGE' => $lang['opt_msg_name_changed']);
                        $user['username'] = $username;
                        break;
                }
            } else {
                $template_result['.']['result'][] = array('STATUS' => ERR_ERROR, 'MESSAGE' => $lang['opt_msg_name_change_err_used_name']);
            }
            sn_db_transaction_commit();
        }
        if ($new_password = sys_get_param('newpass1')) {
            try {
                if ($new_password != sys_get_param('newpass2')) {
                    throw new Exception($lang['opt_err_pass_unmatched'], ERR_WARNING);
                }
                if (!classSupernova::$auth->password_change(sys_get_param('db_password'), $new_password)) {
                    throw new Exception($lang['opt_err_pass_wrong'], ERR_WARNING);
                }
                throw new Exception($lang['opt_msg_pass_changed'], ERR_NONE);
            } catch (Exception $e) {
                $template_result['.']['result'][] = array('STATUS' => in_array($e->getCode(), array(ERR_NONE, ERR_WARNING, ERR_ERROR)) ? $e->getCode() : ERR_ERROR, 'MESSAGE' => $e->getMessage());
            }
        }
        $user['email'] = sys_get_param_str('db_email');
        //    if(!$template_result[F_ACCOUNT]['account_email'] && ($email_2 = sys_get_param_str('db_email2'))) {
        //      core_auth::email_set($email_2);
        //    }
        $user['dpath'] = sys_get_param_str('dpath');
        $user['lang'] = sys_get_param_str('langer', $user['lang']);
        //    if($lang->lng_switch($user['lang'])) {
        //      lng_include('options');
        //      lng_include('messages');
        //    }
        $user['design'] = sys_get_param_int('design');
        $user['noipcheck'] = sys_get_param_int('noipcheck');
        // $user['spio_anz'] = sys_get_param_int('spio_anz');
        // $user['settings_fleetactions'] = sys_get_param_int('settings_fleetactions', 1);
        // $user['settings_tooltiptime'] = sys_get_param_int('settings_tooltiptime');
        // $user['settings_esp'] = sys_get_param_int('settings_esp');
        // $user['settings_wri'] = sys_get_param_int('settings_wri');
        // $user['settings_bud'] = sys_get_param_int('settings_bud');
        // $user['settings_mis'] = sys_get_param_int('settings_mis');
        // $user['settings_statistics'] = sys_get_param_int('settings_statistics');
        // $user['settings_info'] = sys_get_param_int('settings_info');
        // $user['settings_rep'] = sys_get_param_int('settings_rep');
        // $user['planet_sort']  = sys_get_param_int('settings_sort');
        // $user['planet_sort_order'] = sys_get_param_int('settings_order');
        $user['deltime'] = !sys_get_param_int('deltime') ? 0 : ($user['deltime'] ? $user['deltime'] : SN_TIME_NOW + $config->player_delete_time);
        $gender = sys_get_param_int('gender', $user['gender']);
        !isset($lang['sys_gender_list'][$gender]) ? $gender = $user['gender'] : false;
        $user['gender'] = $user['gender'] == GENDER_UNKNOWN ? $gender : $user['gender'];
        try {
            if ($user['birthday']) {
                throw new exception();
            }
            $user_birthday = sys_get_param_str_unsafe('user_birthday');
            if (!$user_birthday || $user_birthday == $FMT_DATE) {
                throw new exception();
            }
            // Some black magic to parse any valid date format - those that contains all three "d", "m" and "Y" and any of the delimeters "\", "/", ".", "-"
            $pos['d'] = strpos(FMT_DATE, 'd');
            $pos['m'] = strpos(FMT_DATE, 'm');
            $pos['Y'] = strpos(FMT_DATE, 'Y');
            asort($pos);
            $i = 0;
            foreach ($pos as &$position) {
                $position = ++$i;
            }
            $regexp = "/" . preg_replace(array('/\\\\/', '/\\//', '/\\./', '/\\-/', '/d/', '/m/', '/Y/'), array('\\\\\\', '\\/', '\\.', '\\-', '(\\d?\\d)', '(\\d?\\d)', '(\\d{4})'), FMT_DATE) . "/";
            if (!preg_match($regexp, $user_birthday, $match)) {
                throw new exception();
            }
            if (!checkdate($match[$pos['m']], $match[$pos['d']], $match[$pos['Y']])) {
                throw new exception();
            }
            $user['user_birthday'] = db_escape("{$match[$pos['Y']]}-{$match[$pos['m']]}-{$match[$pos['d']]}");
            // EOF black magic! Now we have valid SQL date in $user['user_birthday'] - independent of date format
            $year = date('Y', SN_TIME_NOW);
            if (mktime(0, 0, 0, $match[$pos['m']], $match[$pos['d']], $year) > SN_TIME_NOW) {
                $year--;
            }
            $user['user_birthday_celebrated'] = db_escape("{$year}-{$match[$pos['m']]}-{$match[$pos['d']]}");
            $user_birthday = ", `user_birthday` = '{$user['user_birthday']}', `user_birthday_celebrated` = '{$user['user_birthday_celebrated']}'";
        } catch (exception $e) {
            $user_birthday = '';
        }
        require_once 'includes/includes/sys_avatar.php';
        $avatar_upload_result = sys_avatar_upload($user['id'], $user['avatar']);
        $template_result['.']['result'][] = $avatar_upload_result;
        $user_time_diff = playerTimeDiff::user_time_diff_get();
        if (sys_get_param_int('PLAYER_OPTION_TIME_DIFF_FORCED')) {
            playerTimeDiff::user_time_diff_set(array(PLAYER_OPTION_TIME_DIFF => sys_get_param_int('PLAYER_OPTION_TIME_DIFF'), PLAYER_OPTION_TIME_DIFF_UTC_OFFSET => 0, PLAYER_OPTION_TIME_DIFF_FORCED => 1, PLAYER_OPTION_TIME_DIFF_MEASURE_TIME => SN_TIME_SQL));
        } elseif (sys_get_param_int('opt_time_diff_clear') || $user_time_diff[PLAYER_OPTION_TIME_DIFF_FORCED]) {
            playerTimeDiff::user_time_diff_set(array(PLAYER_OPTION_TIME_DIFF => '', PLAYER_OPTION_TIME_DIFF_UTC_OFFSET => 0, PLAYER_OPTION_TIME_DIFF_FORCED => 0, PLAYER_OPTION_TIME_DIFF_MEASURE_TIME => SN_TIME_SQL));
        }
        $user_options_safe = db_escape($user['options']);
        db_user_set_by_id($user['id'], "`email` = '{$user['email']}', `lang` = '{$user['lang']}', `avatar` = '{$user['avatar']}',\n      `dpath` = '{$user['dpath']}', `design` = '{$user['design']}', `noipcheck` = '{$user['noipcheck']}',\n      `deltime` = '{$user['deltime']}', `vacation` = '{$user['vacation']}', `options` = '{$user_options_safe}', `gender` = {$user['gender']}\n      {$user_birthday}");
        $template_result['.']['result'][] = array('STATUS' => ERR_NONE, 'MESSAGE' => $lang['opt_msg_saved']);
    } elseif (sys_get_param_str('result') == 'ok') {
        $template_result['.']['result'][] = array('STATUS' => ERR_NONE, 'MESSAGE' => $lang['opt_msg_saved']);
    }
    $user = db_user_by_id($user['id']);
    $options = sys_user_options_unpack($user);
}
Esempio n. 21
0
<?php

/**
 * changelog.php
 *
 * @version 1.0
 * @copyright 2008 by ??????? for XNova
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('changelog');
$template = gettemplate('changelog_table');
foreach ($lang['changelog'] as $a => $b) {
    $parse['version_number'] = $a;
    $parse['description'] = nl2br($b);
    $body .= parsetemplate($template, $parse);
}
$parse = $lang;
$parse['body'] = $body;
display(parsetemplate(gettemplate('changelog_body'), $parse), "Change Log");
// Created by Perberos. All rights reversed (C) 2006
Esempio n. 22
0
<?php

/**
 * quest.php
 *
 * @v1 (c) copyright 2011 by Gorlum for http://supernova.ws
 *
 */
define('INSIDE', true);
define('INSTALL', false);
define('IN_ADMIN', true);
require '../common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('quest');
$template = gettemplate('quest', true);
qst_render_page();
display($template, $lang['qst_quests'], false, '', true);
Esempio n. 23
0
<?php

/**
 * notes.php
 *
 * Changelog:
 *   2.0 copyright © 2009-2012 Gorlum for http://supernova.ws
 *     [!] Wrote from scratch
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('notes');
$template = gettemplate('notes', true);
$result = array();
if (($result_message = sys_get_param_str('MESSAGE')) && isset($lang[$result_message])) {
    $result[] = array('STATUS' => sys_get_param_int('STATUS'), 'MESSAGE' => $lang[$result_message]);
}
$note_id_edit = sys_get_param_id('note_id_edit');
if (sys_get_param('note_delete')) {
    try {
        $not = '';
        $query_where = '';
        switch (sys_get_param_str('note_delete_range')) {
            case 'all':
                break;
            case 'marked_not':
                $not = 'NOT';
            case 'marked':
                if (!is_array($notes_marked = sys_get_param('note'))) {
                    throw new exception('note_err_none_selected', ERR_WARNING);
                }
                $notes_marked_filtered = array();
Esempio n. 24
0
$request = array('metamatter' => sys_get_param_float('metamatter'));
if (!$request['metamatter']) {
    unset($_POST);
}
$payment_methods_available = array_combine(array_keys(sn_module_payment::$payment_methods), array_fill(0, count(sn_module_payment::$payment_methods), null));
array_walk($payment_methods_available, function (&$value, $index) {
    $value = !empty(sn_module_payment::$payment_methods[$index]) ? array_combine(array_keys(sn_module_payment::$payment_methods[$index]), array_fill(0, count(sn_module_payment::$payment_methods[$index]), null)) : $value;
});
// pdump($payment_methods_available);
$payment_module_valid = false;
$payment_module = sys_get_param_str('payment_module');
foreach ($sn_module_list['payment'] as $module_name => $module) {
    if (!is_object($module) || !$module->manifest['active']) {
        continue;
    }
    lng_include($module_name, $module->manifest['root_relative']);
    foreach (sn_module_payment::$payment_methods as $payment_type_id => $available_methods) {
        foreach ($available_methods as $payment_method => $payment_currency) {
            if (isset($module->manifest['payment_method'][$payment_method])) {
                $payment_methods_available[$payment_type_id][$payment_method][$module_name] = $module->manifest['payment_method'][$payment_method];
            }
        }
    }
    $payment_module_valid = $payment_module_valid || $module_name == $payment_module;
}
global $template_result;
// Доступные платежные методы
foreach ($payment_methods_available as $payment_type_id => $payment_methods) {
    if (empty($payment_methods)) {
        continue;
    }
Esempio n. 25
0
*/
function stat_tpl_assign(&$template, $selected, $array_name, $array, $sn_group_stat_common)
{
    global $who, $lang;
    // $sn_group_stat_common = sn_get_groups('STAT_COMMON');
    foreach ($array as $key => $value) {
        if ($array_name == 'type' && $who == 2 && !in_array($key, $sn_group_stat_common)) {
            continue;
        }
        $header = isset($value['header']) ? $value['header'] : $lang['stat_type'][$key];
        $template->assign_block_vars($array_name, array('ID' => $key, 'HEADER' => $header, 'SELECTED' => $key == $selected));
    }
}
$allow_anonymous = true;
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('stat');
$sn_group_stat_common = sn_get_groups('STAT_COMMON');
$who = sys_get_param_int('who', 1);
$type = sys_get_param_int('type');
$type = $who != 1 && !in_array($type, $sn_group_stat_common) ? 1 : $type;
$range = sys_get_param_int('range', 1);
$source = sys_get_param_str('source');
$template = gettemplate('stat_statistics', true);
$subject_list = array(1 => array('header' => $lang['stat_player']));
if (!$source) {
    $subject_list[2] = array('header' => $lang['stat_allys']);
}
stat_tpl_assign($template, $who, 'subject', $subject_list, $sn_group_stat_common);
$stat_types = array(STAT_TOTAL => array('type' => 'total'), STAT_FLEET => array('type' => 'fleet'), STAT_TECH => array('type' => 'tech'), STAT_BUILDING => array('type' => 'build'), STAT_DEFENSE => array('type' => 'defs'), STAT_RESOURCE => array('type' => 'res'), STAT_RAID_TOTAL => array('type' => 'raids'), STAT_RAID_WON => array('type' => 'raidswin'), STAT_RAID_LOST => array('type' => 'raidsloose'), STAT_LVL_BUILDING => array('type' => 'lvl_minier'), STAT_LVL_TECH => array('type' => 'player_rpg_tech_level'), STAT_LVL_RAID => array('type' => 'lvl_raid'));
stat_tpl_assign($template, $type, 'type', $stat_types, $sn_group_stat_common);
$Rank = $stat_types[$type]['type'];
Esempio n. 26
0
             $query = '`PLANET_GOVERNOR_LEVEL` + 1';
         } else {
             $planetrow['PLANET_GOVERNOR_LEVEL'] = 1;
             $planetrow['PLANET_GOVERNOR_ID'] = $hire;
             $query = '1';
         }
         db_planet_set_by_id($planetrow['id'], "`PLANET_GOVERNOR_ID` = {$hire}, `PLANET_GOVERNOR_LEVEL` = {$query}");
         rpg_points_change($user['id'], RPG_GOVERNOR, -$build_data[BUILD_CREATE][RES_DARK_MATTER], sprintf($lang['ov_governor_purchase'], $lang['tech'][$hire], $hire, $planetrow['PLANET_GOVERNOR_LEVEL'], uni_render_planet_full($planetrow, '', false, true)));
         //  => 'Игрок купил Губернатора %1$s ID %2$d уровня %3$d на планету %4$s',
         // die();
     }
     sn_db_transaction_commit();
     sys_redirect('overview.php?mode=manage');
     die;
 }
 lng_include('mrc_mercenary');
 int_planet_pretemplate($planetrow, $template);
 foreach (sn_get_groups('governors') as $governor_id) {
     if ($planetrow['planet_type'] == PT_MOON && $governor_id == MRC_TECHNOLOGIST) {
         continue;
     }
     $governor_level = $planetrow['PLANET_GOVERNOR_ID'] == $governor_id ? $planetrow['PLANET_GOVERNOR_LEVEL'] : 0;
     $build_data = eco_get_build_data($user, $planetrow, $governor_id, $governor_level);
     $template->assign_block_vars('governors', array('ID' => $governor_id, 'NAME' => $lang['tech'][$governor_id], 'COST' => $build_data[BUILD_CREATE][RES_DARK_MATTER], 'MAX' => get_unit_param($governor_id, P_MAX_STACK), 'LEVEL' => $governor_level));
 }
 $user_dark_matter = mrc_get_level($user, false, RES_DARK_MATTER);
 $planet_density_index = $planetrow['density_index'];
 $density_price_chart = planet_density_price_chart($planet_density_index);
 tpl_planet_density_info($template, $density_price_chart, $user_dark_matter);
 $sector_cost = eco_get_build_data($user, $planetrow, UNIT_SECTOR, mrc_get_level($user, $planetrow, UNIT_SECTOR), true);
 $sector_cost = $sector_cost[BUILD_CREATE][RES_DARK_MATTER];
Esempio n. 27
0
    } else {
        if ($isAllowed) {
            if ($last_active < 60 * 5) {
                $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');
Esempio n. 28
0
    if (isset($string_value[$lang_id]) && !is_array($string_value[$lang_id])) {
        fwrite($file_handler, "'" . str_replace(array("\\", "'"), array('\\\\', "\\'"), $string_value[$lang_id]) . "',");
    } else {
        $string_name_prefix = $string_name_prefix . "[{$string_name}]";
        fwrite($file_handler, "array(\r\n");
        foreach ($string_value as $arr_name => $arr_data) {
            adm_lng_write_string($arr_name, $arr_data, $ident . '  ', $string_name_prefix);
        }
        fwrite($file_handler, "{$ident}),\r\n");
    }
    fwrite($file_handler, "\r\n");
}
$template = gettemplate('admin/admin_locale', true);
lng_include('system');
lng_include('tech');
lng_include('admin');
$languages = array();
$language_domains = array();
$languages_info = lng_get_list();
$domain = sys_get_param_str('domain');
if ($domain) {
    $lang_new = sys_get_param('lang_new');
    if (!empty($lang_new)) {
        $constants = get_defined_constants(true);
        $constants = $constants['user'];
        ksort($constants);
        foreach ($languages_info as $lang_id => $land_data) {
            $file_handler = fopen(SN_ROOT_PHYSICAL . "language/{$lang_id}/{$domain}.mo.php.new", 'w');
            fwrite($file_handler, "<?php\r\n\r\n/*\r\n#############################################################################\n#  Filename: {$domain}.mo.php\n#  Project: SuperNova.WS\n#  Website: http://www.supernova.ws\n#  Description: Massive Multiplayer Online Browser Space Startegy Game\r\n#\r\n");
            foreach ($land_data['LANG_COPYRIGHT'] as $lang_copyright) {
                $lang_copyright = str_replace(array('&copy;', '&quot;', '&lt;', '&gt;'), array('©', '"', '<', '>'), $lang_copyright);
Esempio n. 29
0
<?php

/**
 * affilates.php
 *
 * v2 (c) copyright 2010 by Gorlum for http://supernova.ws
 *  [~] Complies with PCG1
 * v1 (c) copyright 2010 by Gorlum for http://supernova.ws
 */
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
lng_include('affilates');
$template = gettemplate('affilates', true);
$rpg_bonus_divisor = $config->rpg_bonus_divisor ? $config->rpg_bonus_divisor : 10;
$affilates = doquery("SELECT r.*, u.username, u.register_time FROM {{referrals}} AS r LEFT JOIN {{users}} AS u ON u.id = r.id WHERE id_partner = {$user['id']};");
while ($affilate = mysql_fetch_assoc($affilates)) {
    $affilate_gain = floor($affilate['dark_matter'] / $rpg_bonus_divisor);
    $template->assign_block_vars('affilates', array('REGISTERED' => date(FMT_DATE_TIME, $affilate['register_time']), 'USERNAME' => $affilate['username'], 'DARK_MATTER' => $affilate['dark_matter'], 'GAINED' => $affilate_gain));
    $gained += $affilate_gain;
}
$bannerURL = SN_ROOT_VIRTUAL . $config->int_banner_URL;
$bannerURL .= strpos($bannerURL, '?') ? '&' : '?';
$bannerURL .= "id={$user['id']}";
$userbarURL = SN_ROOT_VIRTUAL . $config->int_userbar_URL;
$userbarURL .= strpos($userbarURL, '?') ? '&' : '?';
$userbarURL .= "id={$user['id']}";
$template->assign_vars(array('GAINED' => $gained, 'user_id' => $user['id'], 'serverURL' => SN_ROOT_VIRTUAL, 'bannerURL' => $bannerURL, 'userbarURL' => $userbarURL));
display(parsetemplate($template), $lang['aff_title']);