Example #1
0
         if ($user_dark_matter < $config->planet_capital_cost) {
             throw new exception($lang['ov_capital_err_no_dark_matter'], ERR_ERROR);
         }
         rpg_points_change($user['id'], RPG_CAPITAL, -$config->planet_capital_cost, array('Planet %s ID %d at coordinates %s now become Empire Capital', $planetrow['name'], $planetrow['id'], uni_render_coordinates($planetrow)));
         db_user_set_by_id($user['id'], "id_planet = {$planetrow['id']}, galaxy = {$planetrow['galaxy']}, system = {$planetrow['system']}, planet = {$planetrow['planet']}");
         $user['id_planet'] = $planetrow['id'];
         $result = array('STATUS' => ERR_NONE, 'MESSAGE' => $lang['ov_capital_err_none']);
         sn_db_transaction_commit();
         sys_redirect('overview.php?mode=manage');
     } catch (exception $e) {
         sn_db_transaction_rollback();
         $result = array('STATUS' => $e->getCode(), 'MESSAGE' => $e->getMessage());
     }
 } elseif (sys_get_param_str('teleport')) {
     try {
         if (!uni_coordinates_valid($new_coordinates = array('galaxy' => sys_get_param_int('new_galaxy'), 'system' => sys_get_param_int('new_system'), 'planet' => sys_get_param_int('new_planet')))) {
             throw new exception($lang['ov_teleport_err_wrong_coordinates'], ERR_ERROR);
         }
         sn_db_transaction_start();
         // При телепорте обновлять данные не надо - просто получить текущие данные и залочить их
         $user = db_user_by_id($user['id'], true, '*');
         $planetrow = db_planet_by_id($planetrow['id'], true, '*');
         //        $global_data = sys_o_get_updated($user, $planetrow['id'], SN_TIME_NOW);
         //        $user = $global_data['user'];
         //        $planetrow = $global_data['planet'];
         $can_teleport = uni_planet_teleport_check($user, $planetrow, $new_coordinates);
         if ($can_teleport['result'] != ERR_NONE) {
             throw new exception($can_teleport['message'], $can_teleport['result']);
         }
         rpg_points_change($user['id'], RPG_TELEPORT, -$config->planet_teleport_cost, array(&$lang['ov_teleport_log_record'], $planetrow['name'], $planetrow['id'], uni_render_coordinates($planetrow), uni_render_coordinates($new_coordinates)));
         $planet_teleport_next = SN_TIME_NOW + $config->planet_teleport_timeout;
Example #2
0
 * @version 2.0 Security checks by Gorlum for http://supernova.ws
 *  [!] Full rewrite
 *  [+] Added missile attack launch sequience
 *  [-] Moved almost all check code to flt_can_attack
 * @version 1.1 Security checks by Gorlum for http://supernova.ws
 * @version 1
 * @copyright 2008 By Chlorel for XNova
**/
include 'common.' . substr(strrchr(__FILE__, '.'), 1);
define('IN_AJAX', true);
header("Content-type: text/html; charset=utf-8");
lng_include('universe');
lng_include('fleet');
require_once 'includes/includes/flt_functions.php';
$target_coord = array('galaxy' => $target_galaxy = sys_get_param_int('galaxy'), 'system' => $target_system = sys_get_param_int('system'), 'planet' => $target_planet = sys_get_param_int('planet'));
if (!uni_coordinates_valid($target_coord)) {
    die($lang['gs_c02']);
}
$target_mission = sys_get_param_int('mission');
$sn_group_missions = sn_get_groups('missions');
if (!isset($sn_group_missions[$target_mission]['AJAX']) || !$sn_group_missions[$target_mission]['AJAX']) {
    die($lang['gs_c00']);
}
sn_db_transaction_start();
$user = db_user_by_id($user['id'], true);
$planetrow = db_planet_by_id($user['current_planet'], true);
$target_planet_type = sys_get_param_int('planet_type');
$target_planet_check = $target_planet_type == PT_DEBRIS ? PT_PLANET : $target_planet_type;
$target_coord['planet_type'] = $target_planet_check;
$target_row = db_planet_by_vector($target_coord);
if (empty($target_row)) {