Ejemplo n.º 1
0
/**
 * @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);
}
Ejemplo n.º 2
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}', ";
Ejemplo n.º 3
0
<?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));