/** * @param $user_row * @param $from * @param $to * @param $fleet_array * @param int $speed_percent * * @return array */ function flt_travel_data($user_row, $from, $to, $fleet_array, $speed_percent = 10) { $distance = flt_travel_distance($from, $to); $consumption = 0; $capacity = 0; $duration = 0; $game_fleet_speed = flt_server_flight_speed_multiplier(); $fleet_speed = flt_fleet_speed($user_row, $fleet_array); if (!empty($fleet_array) && $fleet_speed && $game_fleet_speed) { $speed_percent = $speed_percent ? max(min($speed_percent, 10), 1) : 10; $real_speed = $speed_percent * sqrt($fleet_speed); $duration = max(1, round((35000 / $speed_percent * sqrt($distance * 10 / $fleet_speed) + 10) / $game_fleet_speed)); foreach ($fleet_array as $ship_id => $ship_count) { if (!$ship_id || !$ship_count) { continue; } $single_ship_data = get_ship_data($ship_id, $user_row); $single_ship_data['speed'] = $single_ship_data['speed'] < 1 ? 1 : $single_ship_data['speed']; $consumption += $single_ship_data['consumption'] * $ship_count * pow($real_speed / sqrt($single_ship_data['speed']) / 10 + 1, 2); $capacity += $single_ship_data['capacity'] * $ship_count; } $consumption = round($distance * $consumption / 35000) + 1; /* $speed_percent = $speed_percent ? max(min($speed_percent, 10), 1) : 10; $duration = (35000 / $speed_percent * sqrt($distance / $fleet_speed * 10 ) + 10) / $game_fleet_speed; $duration = max(1, round($duration)); foreach($fleet_array as $ship_id => $ship_count) { if (!$ship_id || !$ship_count) { continue; } $single_ship_data = get_ship_data($ship_id, $user_row); $single_ship_data['speed'] = $single_ship_data['speed'] < 1 ? 1 : $single_ship_data['speed']; $consumption += $single_ship_data['consumption'] * $ship_count * pow($speed_percent / 10 * sqrt($fleet_speed / $single_ship_data['speed']) + 1, 2); } $consumption = round($distance * $consumption / 35000) + 1; */ } return array('fleet_speed' => $fleet_speed, 'distance' => $distance, 'duration' => $duration, 'consumption' => $consumption, 'capacity' => $capacity, 'hold' => $capacity - $consumption, 'transport_effectivness' => $consumption ? $capacity / $consumption : 0); }
if ($cant_attack != ATTACK_ALLOWED) { die($lang['fl_attack_error'][$cant_attack]); } $FleetDBArray = array(); $db_changeset = array(); foreach ($fleet_array as $unit_id => $unit_count) { $FleetDBArray[] = "{$unit_id},{$unit_count}"; // $db_changeset[] = "`{$unit_db_name}` = `{$unit_db_name}` - {$unit_count}"; $db_changeset['unit'][] = sn_db_unit_changeset_prepare($unit_id, -$unit_count, $user, $planetrow); } $FleetDBArray = implode(';', $FleetDBArray); // $db_changeset = implode(',', $db_changeset); $fleet_ship_count = array_sum($fleet_array); if ($target_mission == MT_MISSILE) { $distance = abs($target_coord['system'] - $planetrow['system']); $duration = round((30 + 60 * $distance) / flt_server_flight_speed_multiplier()); $arrival = SN_TIME_NOW + $duration; $travel_data['consumption'] = 0; doquery("INSERT INTO `{{iraks}}` SET\n `fleet_target_owner` = '{$target_row['id_owner']}', `fleet_end_galaxy` = '{$target_coord['galaxy']}', `fleet_end_system` = '{$target_coord['system']}', `fleet_end_planet` = '{$target_coord['planet']}',\n `fleet_owner` = '{$user['id']}', `fleet_start_galaxy` = '{$planetrow['galaxy']}', `fleet_start_system` = '{$planetrow['system']}', `fleet_start_planet` = '{$planetrow['planet']}',\n `fleet_end_time` = '{$arrival}', `fleet_amount` = '{$fleet_ship_count}', `primaer` = '{$target_structure}';"); } else { $travel_data = flt_travel_data($user, $planetrow, $target_coord, $fleet_array, 10); if ($planetrow['deuterium'] < $travel_data['consumption']) { die($lang['gs_c13']); } $fleet_start_time = SN_TIME_NOW + $travel_data['duration']; $fleet_end_time = $fleet_start_time + $travel_data['duration']; $QryInsertFleet = "INSERT INTO {{fleets}} SET "; $QryInsertFleet .= "`fleet_owner` = '{$user['id']}', "; $QryInsertFleet .= "`fleet_mission` = '{$target_mission}', "; $QryInsertFleet .= "`fleet_amount` = '{$fleet_ship_count}', "; $QryInsertFleet .= "`fleet_array` = '{$FleetDBArray}', ";
<?php $allow_anonymous = true; include 'common.' . substr(strrchr(__FILE__, '.'), 1); lng_include('admin'); $template = gettemplate('server_info', true); $template->assign_vars(array('game_build_and_research' => $config->BuildLabWhileRun, 'USER_VACATION_DISABLE' => $config->user_vacation_disable, 'ALLOW_BUFFING' => $config->allow_buffing, 'ALLY_HELP_WEAK' => $config->ally_help_weak, 'FLEET_BASHING_ATTACKS' => $config->fleet_bashing_attacks, 'fleet_bashing_interval' => sys_time_human($config->fleet_bashing_interval), 'fleet_bashing_scope' => sys_time_human($config->fleet_bashing_scope), 'fleet_bashing_war_delay' => sys_time_human($config->fleet_bashing_war_delay), 'EMPIRE_MERCENARY_TEMPORARY' => $config->empire_mercenary_temporary, 'ALI_BONUS_MEMBERS' => isset($sn_module['ali_ally_player']) ? $config->ali_bonus_members : 0, 'PLAYER_MAX_COLONIES' => $config->player_max_colonies, 'GAME_MULTIACCOUNT_ENABLED' => $config->game_multiaccount_enabled, 'GAME_SPEED' => get_game_speed(), 'GAME_SPEED_PLAIN' => get_game_speed(true), 'FLEET_SPEED' => flt_server_flight_speed_multiplier(), 'FLEET_SPEED_PLAIN' => flt_server_flight_speed_multiplier(true), 'RESOURCE_MULTIPLIER' => game_resource_multiplier(), 'RESOURCE_MULTIPLIER_PLAIN' => game_resource_multiplier(true))); display(parsetemplate($template));