function flt_mission_colonize(&$mission_data) { $fleet_row =& $mission_data['fleet']; $src_user_row =& $mission_data['src_user']; global $lang; $TargetAdress = sprintf($lang['sys_adress_planet'], $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']); $fleet_array = sys_unit_str2arr($fleet_row['fleet_array']); $TheMessage = $lang['sys_colo_no_colonizer']; if ($fleet_array[SHIP_COLONIZER] >= 1) { $TheMessage = $lang['sys_colo_notfree']; if (!$mission_data['dst_planet'] || empty($mission_data['dst_planet'])) { $iPlanetCount = get_player_current_colonies($src_user_row); // Can we colonize more planets? $TheMessage = $lang['sys_colo_maxcolo']; if ($iPlanetCount < get_player_max_colonies($src_user_row)) { // Yes, we can colonize $TheMessage = $lang['sys_colo_badpos']; $NewOwnerPlanet = uni_create_planet($fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet'], $fleet_row['fleet_owner'], "{$lang['sys_colo_defaultname']} {$iPlanetCount}", false, array('user_row' => $src_user_row)); if ($NewOwnerPlanet) { $TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_allisok']; msg_send_simple_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], MSG_TYPE_SPY, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage); $fleet_array[SHIP_COLONIZER]--; $fleet_row['fleet_amount']--; $fleet_row['fleet_array'] = sys_unit_arr2str($fleet_array); return RestoreFleetToPlanet($fleet_row, false); } } } } doquery("UPDATE `{{fleets}}` SET `fleet_mess` = '1' WHERE `fleet_id` = '{$fleet_row['fleet_id']}' LIMIT 1;"); msg_send_simple_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], MSG_TYPE_SPY, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], "{$lang['sys_colo_arrival']}{$TargetAdress}{$TheMessage}"); return CACHE_FLEET; }
function flt_mission_colonize($mission_data) { $fleet_row = $mission_data['fleet']; $src_user_row = $mission_data['src_user']; $destination_planet = $mission_data['dst_planet']; global $lang; $TargetAdress = sprintf($lang['sys_adress_planet'], $fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet']); $fleet_array = sys_unit_str2arr($fleet_row['fleet_array']); $TheMessage = $lang['sys_colo_no_colonizer']; if ($fleet_array[SHIP_COLONIZER] >= 1) { $TheMessage = $lang['sys_colo_notfree']; if (!$destination_planet) { $iMaxColo = $src_user_row['colonisation_tech'] + 1; $iPlanetCount = doquery("SELECT count(*) as `planet_count` FROM `{{planets}}` WHERE `id_owner` = '{$fleet_row['fleet_owner']}' AND `planet_type` = '1';", '', true); $iPlanetCount = $iPlanetCount['planet_count']; // Can we colonize more planets? $TheMessage = $lang['sys_colo_maxcolo']; if ($iPlanetCount < $iMaxColo && $iPlanetCount < $GLOBALS['config']->player_max_colonies + 1) { // Yes, we can colonize $TheMessage = $lang['sys_colo_badpos']; $NewOwnerPlanet = uni_create_planet($fleet_row['fleet_end_galaxy'], $fleet_row['fleet_end_system'], $fleet_row['fleet_end_planet'], $fleet_row['fleet_owner'], "{$lang['sys_colo_defaultname']} ¹{$iPlanetCount}"); if ($NewOwnerPlanet) { $TheMessage = $lang['sys_colo_arrival'] . $TargetAdress . $lang['sys_colo_allisok']; msg_send_simple_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], MSG_TYPE_SPY, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], $TheMessage); $fleet_array[SHIP_COLONIZER]--; $fleet_row['fleet_amount']--; $fleet_row['fleet_array'] = sys_unit_arr2str($fleet_array); if ($fleet_row['fleet_array']) { $GLOBALS['debug']->warning("Sending several type of ships with colonizer leads to resource duplication. Resource duplicate X time where X - number of ship type<br>Fleet: {$fleet_row['fleet_array']}", 'Colonization With Fleet', 304); } return RestoreFleetToPlanet($fleet_row, false); } } } } doquery("UPDATE `{{fleets}}` SET `fleet_mess` = '1' WHERE `fleet_id` = '{$fleet_row['fleet_id']}' LIMIT 1;"); msg_send_simple_message($fleet_row['fleet_owner'], '', $fleet_row['fleet_start_time'], MSG_TYPE_SPY, $lang['sys_colo_mess_from'], $lang['sys_colo_mess_report'], "{$lang['sys_colo_arrival']}{$TargetAdress}{$TheMessage}"); return CACHE_FLEET; }
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']); }
if ($planet > $config->game_maxPlanet) { $planet = mt_rand(0, $segment_size - 1) + 1; $system++; } if ($system > $config->game_maxSystem) { $system = 1; $galaxy++; } if ($galaxy > $config->game_maxGalaxy) { $galaxy = 1; } $galaxy_row = doquery("SELECT `id` FROM {{planets}} WHERE `galaxy` = '{$galaxy}' AND `system` = '{$system}' AND `planet` = '{$planet}' AND `planet_type` = 1 LIMIT 1;", '', true); if (!$galaxy_row['id']) { $planet_set = true; $config->db_saveItem(array('LastSettedGalaxyPos' => $galaxy, 'LastSettedSystemPos' => $system, 'LastSettedPlanetPos' => $planet)); $new_planet = uni_create_planet($galaxy, $system, $planet, $user['id'], $planet_name, true); break; } $planet += 3; } // $new_planet = doquery("SELECT `id` FROM {{planets}} WHERE `id_owner` = '{$user['id']}' LIMIT 1;", '', true); // $new_planet = $new_planet['id']; doquery("UPDATE {{users}} SET `id_planet` = '{$new_planet}', `current_planet` = '{$new_planet}', `galaxy` = '{$galaxy}', `system` = '{$system}', `planet` = '{$planet}' WHERE `id` = '{$user['id']}' LIMIT 1;"); $config->db_saveItem('users_amount', $config->users_amount + 1); $Message = $lang['thanksforregistry']; if (sendpassemail($email, $password)) { $Message .= " (" . htmlentities($email) . ")"; } else { $Message .= " (" . htmlentities($email) . ")"; $Message .= "<br><br>{$lang['error_mailsend']} <b>{$password}</b>"; }