function flt_parse_fleets_to_events($fleet_list, $planet_scanned = false) { global $config, $user, $fleet_number, $lang; $fleet_events = array(); $fleet_number = 0; if (empty($fleet_list)) { return; } foreach ($fleet_list as $fleet) { $planet_start_type = $fleet['fleet_start_type'] == PT_MOON ? PT_MOON : PT_PLANET; $planet_start = db_planet_by_gspt($fleet['fleet_start_galaxy'], $fleet['fleet_start_system'], $fleet['fleet_start_planet'], $planet_start_type, false, 'name'); $fleet['fleet_start_name'] = $planet_start['name']; $planet_end_type = $fleet['fleet_end_type'] == PT_MOON ? PT_MOON : PT_PLANET; if ($fleet['fleet_end_planet'] > $config->game_maxPlanet) { $fleet['fleet_end_name'] = $lang['ov_fleet_exploration']; } elseif ($fleet['fleet_mission'] == MT_COLONIZE) { $fleet['fleet_end_name'] = $lang['ov_fleet_colonization']; } else { $planet_end = db_planet_by_gspt($fleet['fleet_end_galaxy'], $fleet['fleet_end_system'], $fleet['fleet_end_planet'], $planet_end_type, false, 'name'); $fleet['fleet_end_name'] = $planet_end['name']; } if ($fleet['fleet_start_time'] > SN_TIME_NOW && $fleet['fleet_mess'] == 0 && $fleet['fleet_mission'] != MT_MISSILE && ($planet_scanned === false || $planet_scanned !== false && $planet_scanned['galaxy'] == $fleet['fleet_end_galaxy'] && $planet_scanned['system'] == $fleet['fleet_end_system'] && $planet_scanned['planet'] == $fleet['fleet_end_planet'] && $planet_scanned['planet_type'] == $planet_end_type && $planet_start_type != PT_MOON && $fleet['fleet_mission'] != MT_HOLD)) { $fleet_events[] = flt_register_fleet_event($fleet, 0, $planet_end_type); } if ($fleet['fleet_end_stay'] > SN_TIME_NOW && $fleet['fleet_mess'] == 0 && $planet_scanned === false && $fleet['fleet_mission'] != MT_MISSILE) { $fleet_events[] = flt_register_fleet_event($fleet, 1, $planet_end_type); } if ($fleet['fleet_end_time'] > SN_TIME_NOW && $fleet['fleet_mission'] != MT_MISSILE && ($fleet['fleet_mess'] == 1 || $fleet['fleet_mission'] != MT_RELOCATE && $fleet['fleet_mission'] != MT_COLONIZE) && ($planet_scanned === false && $fleet['fleet_owner'] == $user['id'] || $planet_scanned !== false && $fleet['fleet_mission'] != MT_RELOCATE && $planet_start_type != PT_MOON && $planet_scanned['galaxy'] == $fleet['fleet_start_galaxy'] && $planet_scanned['system'] == $fleet['fleet_start_system'] && $planet_scanned['planet'] == $fleet['fleet_start_planet'] && $planet_scanned['planet_type'] == $planet_start_type)) { $fleet_events[] = flt_register_fleet_event($fleet, 2, $planet_end_type); } if ($fleet['fleet_mission'] == MT_MISSILE) { $fleet_events[] = flt_register_fleet_event($fleet, 3, $planet_end_type); } } return $fleet_events; }
$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']; $sensorRange = GetPhalanxRange($sensorLevel); $system_distance = abs($source_system - $scan_system); if ($system_distance > $sensorRange || $scan_galaxy != $source_galaxy) { message($lang['phalanx_rangeerror'], $lang['tech'][STRUC_MOON_PHALANX], '', 3); } $cost = $sensorLevel * 1000; if ($planetrow['deuterium'] < $cost) { message($lang['phalanx_nodeuterium'], "phalanx", '', 3); } $planet_scanned = db_planet_by_gspt($scan_galaxy, $scan_system, $scan_planet, $scan_planet_type); if (!$planet_scanned['id']) { message($lang['phalanx_planet_not_exists'], $lang['tech'][STRUC_MOON_PHALANX], '', 3); } if ($planet_scanned['destruyed']) { message($lang['phalanx_planet_destroyed'], $lang['tech'][STRUC_MOON_PHALANX], '', 3); } db_planet_set_by_id($user['current_planet'], "deuterium = deuterium - {$cost}"); $template = gettemplate('planet_fleet_list', true); $fleet_list = flt_get_fleets($planet_scanned, true); $fleets = flt_parse_fleets_to_events($fleet_list, $planet_scanned); //int_get_missile_to_planet("SELECT * FROM `{{iraks}}` WHERE fleet_end_galaxy = {$scan_galaxy} AND fleet_end_system = {$scan_system} AND fleet_end_planet = {$scan_planet};"); tpl_assign_fleet($template, $fleets); display($template, $lang['tech'][STRUC_MOON_PHALANX], false, '', false, false);
$errors[] = $lang['adm_pl_comp_err_2']; } if ($planet['id'] == $destination['id']) { $errors[] = $lang['adm_pl_comp_err_5']; } if ($planet['id_owner'] != $destination['id_owner']) { $errors[] = $lang['adm_pl_comp_err_3']; } if (!empty($errors)) { foreach ($errors as $error) { $template->assign_block_vars('error', array('TEXT' => $error)); } } else { $template->assign_var('CHECK', 1); killer_add_planet($planet); $moon = db_planet_by_gspt($galaxy_src, $system_src, $planet_src, PT_MOON, true); if ($moon) { $moon = sys_o_get_updated($owner, $moon, SN_TIME_NOW); $moon = $moon['planet']; killer_add_planet($moon); } foreach (sn_get_groups('resources_loot') as $resource_id) { $resource_name = pname_resource_name($resource_id); $template->assign_var("{$resource_name}_cost", $final_cost[$resource_id]); $final_cost[$resource_id] = floor($final_cost[$resource_id] * $bonus); $template->assign_var("{$resource_name}_bonus", $final_cost[$resource_id]); } if ($_GET['btn_confirm']) { $time = SN_TIME_NOW + PERIOD_DAY; db_unit_list_delete($planet['id_owner'], LOC_PLANET, $planet['id']); db_planet_set_by_id($planet['id'], "id_owner = 0, destruyed = {$time}");
function player_create($username_unsafe, $password_raw, $email_unsafe, $options) { global $config, $lang; static $player_options_string = 'opt_mnl_spy^1|opt_email_mnl_spy^0|opt_email_mnl_joueur^0|opt_email_mnl_alliance^0|opt_mnl_attaque^1|opt_email_mnl_attaque^0|opt_mnl_exploit^1|opt_email_mnl_exploit^0|opt_mnl_transport^1|opt_email_mnl_transport^0|opt_email_msg_admin^1|opt_mnl_expedition^1|opt_email_mnl_expedition^0|opt_mnl_buildlist^1|opt_email_mnl_buildlist^0|opt_int_navbar_resource_force^1|'; empty($options['planet_options']) ? $options['planet_options'] = array() : false; $field_set = array('server_name' => SN_ROOT_VIRTUAL, 'register_time' => SN_TIME_NOW, 'user_bot' => $options['user_bot'] = empty($options['user_bot']) ? USER_BOT_PLAYER : $options['total_points'], 'username' => $username_unsafe, 'email' => $email_unsafe, 'email_2' => $email_unsafe, 'lang' => $options['language_iso'] ? $options['language_iso'] : DEFAULT_LANG, 'dpath' => DEFAULT_SKINPATH, 'total_points' => $options['total_points'] = empty($options['total_points']) ? 0 : $options['total_points'], 'options' => (empty($options['options']) ? $player_options_string : $options['options']) . (empty($options['options_extra']) ? '' : $options['options_extra']), 'galaxy' => $options['galaxy'] = intval($options['galaxy'] ? $options['galaxy'] : 0), 'system' => $options['system'] = intval($options['system'] ? $options['system'] : 0), 'planet' => $options['planet'] = intval($options['planet'] ? $options['planet'] : 0)); $user_new = classSupernova::db_ins_field_set(LOC_USER, $field_set); sec_password_change($user_new, $password_raw, false, $options['remember_me'] = intval(!empty($options['remember_me']))); $username_safe = db_escape($username_unsafe); // $options['language_iso'] = db_escape($options['language_iso'] ? $options['language_iso'] : DEFAULT_LANG); // $options['remember_me'] = intval(!empty($options['remember_me'])); // // $skin_safe = db_escape(DEFAULT_SKINPATH); // $email_safe = db_escape($email_unsafe); // // // sn_db_field_set_make_safe($field_set, $serialize = false) // // $user_new = classSupernova::db_ins_record(LOC_USER, "`username` = '{$username_safe}', `email` = '{$email_safe}', `email_2` = '{$email_safe}', `dpath` = '{$skin_safe}', // `lang` = '{$options['language_iso']}', `register_time` = " . SN_TIME_NOW . ", `server_name` = '" . db_escape(SN_ROOT_VIRTUAL) . "', // `options` = 'opt_mnl_spy^1|opt_email_mnl_spy^0|opt_email_mnl_joueur^0|opt_email_mnl_alliance^0|opt_mnl_attaque^1|opt_email_mnl_attaque^0|opt_mnl_exploit^1|opt_email_mnl_exploit^0|opt_mnl_transport^1|opt_email_mnl_transport^0|opt_email_msg_admin^1|opt_mnl_expedition^1|opt_email_mnl_expedition^0|opt_mnl_buildlist^1|opt_email_mnl_buildlist^0|opt_int_navbar_resource_force^1|';"); doquery("REPLACE INTO {{player_name_history}} SET `player_id` = {$user_new['id']}, `player_name` = '{$username_safe}'"); if (!empty($options['partner_id']) && ($referral_row = db_user_by_id($options['partner_id'], true))) { doquery("INSERT INTO {{referrals}} SET `id` = {$user_new['id']}, `id_partner` = {$options['partner_id']}"); } if (!($options['galaxy'] && $options['system'] && $options['planet'])) { $options['galaxy'] = $config->LastSettedGalaxyPos; $options['system'] = $config->LastSettedSystemPos; $segment_size = floor($config->game_maxPlanet / 3); $segment = floor($config->LastSettedPlanetPos / $segment_size); $segment++; $options['planet'] = mt_rand(1 + $segment * $segment_size, ($segment + 1) * $segment_size); // $new_planet_id = 0; while (true) { if ($options['planet'] > $config->game_maxPlanet) { $options['planet'] = mt_rand(0, $segment_size - 1) + 1; $options['system']++; } if ($options['system'] > $config->game_maxSystem) { $options['system'] = 1; $options['galaxy']++; } $options['galaxy'] > $config->game_maxGalaxy ? $options['galaxy'] = 1 : false; $galaxy_row = db_planet_by_gspt($options['galaxy'], $options['system'], $options['planet'], PT_PLANET, true, 'id'); if (!$galaxy_row['id']) { $config->db_saveItem(array('LastSettedGalaxyPos' => $options['galaxy'], 'LastSettedSystemPos' => $options['system'], 'LastSettedPlanetPos' => $options['planet'])); // $new_planet_id = uni_create_planet($options['galaxy'], $options['system'], $options['planet'], $user_new['id'], $username_unsafe . ' ' . $lang['sys_capital'], true, $options['planet_options']); break; } $options['planet'] += 3; } } $new_planet_id = uni_create_planet($options['galaxy'], $options['system'], $options['planet'], $user_new['id'], $username_unsafe . ' ' . $lang['sys_capital'], true, $options['planet_options']); sys_player_new_adjust($user_new['id'], $new_planet_id); db_user_set_by_id($user_new['id'], "`id_planet` = '{$new_planet_id}', `current_planet` = '{$new_planet_id}', `galaxy` = '{$options['galaxy']}', `system` = '{$options['$system']}', `planet` = '{$options['$planet']}'"); $config->db_saveItem('users_amount', $config->users_amount + 1); return db_user_by_id($user_new['id']); }
/** * @param $pos_galaxy * @param $pos_system * @param $pos_planet * @param $user_id * @param int $moon_chance * <p><b>0</b> случайный размер луны</p> * <p>1..100 Шанс выпадения луны</p> * <p>> 100 Размер луны</p> * @param string $moon_name * @param bool $update_debris * @param array $options * * @return array|false|resource */ function uni_create_moon($pos_galaxy, $pos_system, $pos_planet, $user_id, $moon_chance = 0, $moon_name = '', $update_debris = true, $options = array()) { global $lang; $moon_name = ''; $moon_row = array(); $moon = db_planet_by_gspt($pos_galaxy, $pos_system, $pos_planet, PT_MOON, false, 'id'); if (!$moon['id']) { $moon_planet = db_planet_by_gspt($pos_galaxy, $pos_system, $pos_planet, PT_PLANET, true, '`id`, `temp_min`, `temp_max`, `name`, `debris_metal`, `debris_crystal`'); if ($moon_planet['id']) { $base_storage_size = BASE_STORAGE_SIZE; if (!$moon_chance) { $size = mt_rand(1100, 8999); } elseif ($moon_chance <= 100) { $size = mt_rand($moon_chance * 100 + 1000, $moon_chance * 200 + 2999); } else { $size = $moon_chance; } $moon_chance = min(30, ceil($size / 1000)); $temp_min = $moon_planet['temp_min'] - rand(10, 45); $temp_max = $temp_min + 40; $moon_name = $moon_name ? $moon_name : "{$moon_planet['name']} {$lang['sys_moon']}"; $moon_name_safe = db_escape($moon_name); $field_max = ceil($size / 1000); if (isset($options['image']) && $options['image']) { $moon_image = $options['image']; } else { $moon_image = 'mond'; } $moon_row = classSupernova::db_ins_record(LOC_PLANET, "`id_owner` = '{$user_id}', `parent_planet` = '{$moon_planet['id']}', `name` = '{$moon_name_safe}', `last_update` = " . SN_TIME_NOW . ", `image` = '{$moon_image}',\n `galaxy` = '{$pos_galaxy}', `system` = '{$pos_system}', `planet` = '{$pos_planet}', `planet_type` = " . PT_MOON . ",\n `diameter` = '{$size}', `field_max` = '{$field_max}', `density` = 2500, `density_index` = 2, `temp_min` = '{$temp_min}', `temp_max` = '{$temp_max}',\n `metal` = '0', `metal_perhour` = '0', `metal_max` = '{$base_storage_size}',\n `crystal` = '0', `crystal_perhour` = '0', `crystal_max` = '{$base_storage_size}',\n `deuterium` = '0', `deuterium_perhour` = '0', `deuterium_max` = '{$base_storage_size}'"); if ($update_debris) { $debris_spent = $moon_chance * 1000000; $metal_spent = round(min($moon_planet['debris_metal'], $debris_spent * mt_rand(50, 75) / 100)); $crystal_spent = min($moon_planet['debris_crystal'], $debris_spent - $metal_spent); $metal_spent = min($moon_planet['debris_metal'], $debris_spent - $crystal_spent); // Need if crystal less then their part db_planet_set_by_id($moon_planet['id'], "`debris_metal` = GREATEST(0, `debris_metal` - {$metal_spent}), `debris_crystal` = GREATEST(0, `debris_crystal` - {$crystal_spent})"); } } } return $moon_row; }
// // ksort($missiontype); $speed_percent = sys_get_param_int('speed', 10); $travel_data = flt_travel_data($user, $planetrow, array('galaxy' => $galaxy, 'system' => $system, 'planet' => $planet), $fleetarray, $speed_percent); // $fleet_speed = flt_fleet_speed($user, $fleetarray); $fleet_speed = $travel_data['fleet_speed']; $distance = $travel_data['distance']; $duration = $travel_data['duration']; $consumption = $travel_data['consumption']; // No Break // No Break case 1: if ($galaxy && $system && $planet) { $check_type = $planet_type == PT_MOON ? PT_MOON : PT_PLANET; $TargetPlanet = db_planet_by_gspt($galaxy, $system, $planet, $check_type); } case 0: $template_result += array('thisgalaxy' => $planetrow['galaxy'], 'thissystem' => $planetrow['system'], 'thisplanet' => $planetrow['planet'], 'thisplanet_type' => $planetrow['planet_type']); // no break } $template_result += array('galaxy' => $galaxy, 'system' => $system, 'planet' => $planet, 'planet_type' => $planet_type, 'target_mission' => $target_mission ? $target_mission : 0, 'MISSION_NAME' => $target_mission ? $lang['type_mission'][$target_mission] : ''); $is_transport_missions = false; if ($missiontype) { $sn_group_missions = sn_get_groups('missions'); foreach ($missiontype as $mission_data_id => $mission_data) { $is_transport_missions = $is_transport_missions || isset($sn_group_missions[$mission_data_id]['transport']) && $sn_group_missions[$mission_data_id]['transport']; } } switch ($fleet_page) { case 1: