Esempio n. 1
0
function ColonizationReturn($queue, $fleet_obj, $fleet, $origin, $target)
{
    AdjustResources($fleet_obj['m'], $fleet_obj['k'], $fleet_obj['d'], $fleet_obj['start_planet'], '+');
    AdjustShips($fleet, $fleet_obj['start_planet'], '+');
    UpdatePlanetActivity($fleet_obj['start_planet'], $queue['end']);
    $origin_user = LoadUser($origin['owner_id']);
    loca_add("technames", $origin_user['lang']);
    $text = "Один из Ваших флотов ( " . FleetList($fleet) . " ), отправленных с <a href=# onclick=showGalaxy(" . $target['g'] . "," . $target['s'] . "," . $target['p'] . "); >[" . $target['g'] . ":" . $target['s'] . ":" . $target['p'] . "]</a>, " . "достигает " . $origin['name'] . " <a href=# onclick=showGalaxy(" . $origin['g'] . "," . $origin['s'] . "," . $origin['p'] . "); >[" . $origin['g'] . ":" . $origin['s'] . ":" . $origin['p'] . "]</a> . ";
    if ($fleet_obj['m'] + $fleet_obj['k'] + $fleet_obj['d'] != 0) {
        $text .= "Флот доставляет " . nicenum($fleet_obj['m']) . " металла, " . nicenum($fleet_obj['k']) . " кристалла и " . nicenum($fleet_obj['d']) . " дейтерия<br>";
    }
    SendMessage($fleet_obj['owner_id'], "Командование флотом", "Возвращение флота", $text, 5, $queue['end']);
    // Удалить фантом колонизации.
    if ($target['type'] == 10002) {
        DestroyPlanet($target['planet_id']);
    }
}
Esempio n. 2
0
    foreach ($fleetmap as $i => $gid) {
        $amount = floor(abs(intval($_POST["c{$gid}"])));
        if ($amount > $source["f{$gid}"]) {
            $GateError .= "<center>\nНедостаточно кораблей в наличии.<br></center>\n";
            break;
        }
        $fleet[$gid] = $amount;
    }
    $fleet[212] = 0;
    // лампы.
}
// Сделать переход
if ($GateError === "") {
    // Перебросить флот
    AdjustShips($fleet, $source_id, '-');
    AdjustShips($fleet, $target_id, '+');
    $cooldown_time = 60 * 60 / $GlobalUni['fspeed'] - 1;
    $cooldown = $now + $cooldown_time;
    // Нагреть ворота
    $now = time();
    $query = "UPDATE " . $db_prefix . "planets SET gate_until=" . $cooldown . " WHERE planet_id={$source_id}";
    dbquery($query);
    $query = "UPDATE " . $db_prefix . "planets SET gate_until=" . $cooldown . " WHERE planet_id={$target_id}";
    dbquery($query);
    // Сделать редирект на ворота целевой луны
    MyGoto("infos", "&cp={$target_id}&gid=43");
}
echo "</center>\n";
echo "</div>\n";
echo "<!-- END CONTENT AREA -->\n\n";
PageFooter("", $GateError);
    $fleetlock = "temp/fleetlock_" . $aktplanet['planet_id'];
    if (file_exists($fleetlock)) {
        MyGoto("flotten1");
    }
    $f = fopen($fleetlock, 'w');
    fclose($f);
    $fleet_id = DispatchFleet($fleet, $origin, $target, $order, $flighttime, $cargo_m, $cargo_k, $cargo_d, $cons['fleet'] + $cons['probes'], time(), $union_id, $hold_time);
    $queue = GetFleetQueue($fleet_id);
    UserLog($aktplanet['owner_id'], "FLEET", "Отправка флота {$fleet_id}: " . GetMissionNameDebug($order) . " " . $origin['name'] . " [" . $origin['g'] . ":" . $origin['s'] . ":" . $origin['p'] . "] -&gt; " . $target['name'] . " [" . $target['g'] . ":" . $target['s'] . ":" . $target['p'] . "]<br>" . DumpFleet($fleet) . "<br>" . "Время полёта: " . BuildDurationFormat($flighttime) . ", удержание: " . BuildDurationFormat($hold_time) . ", затраты дейтерия: " . nicenum($cons['fleet'] + $cons['probes']) . ", союз: " . $union_id);
    if ($union_id) {
        $union_time = UpdateUnionTime($union_id, $queue['end'], $fleet_id);
        UpdateFleetTime($fleet_id, $union_time);
    }
    // Поднять флот с планеты.
    AdjustResources($cargo_m, $cargo_k, $cargo_d + $cons['fleet'] + $cons['probes'], $origin['planet_id'], '-');
    AdjustShips($fleet, $origin['planet_id'], '-');
    unlink($fleetlock);
    //    echo "<br>";
    //    print_r ( $queue);
    PageHeader("flottenversand", false, true, "flotten1", 1);
    ?>

<!-- CONTENT AREA -->
<div id='content'>
<center>
  <script language="JavaScript" src="js/flotten.js"></script>
  <table width="519" border="0" cellpadding="0" cellspacing="1">

   <tr height="20">
    <td class="c" colspan="2">
      <span class="success">Флот отправлен:</span>
}
// Рассчитать расстояние, время полёта и затраты дейтерия.
$dist = FlightDistance($aktplanet['g'], $aktplanet['s'], $aktplanet['p'], $galaxy, $system, $planet);
$slowest_speed = FlightSpeed($fleet, $GlobalUser['r115'], $GlobalUser['r117'], $GlobalUser['r118']);
$flighttime = FlightTime($dist, $slowest_speed, $speed, $unispeed);
$arr = FlightCons($fleet, $dist, $flighttime, $GlobalUser['r115'], $GlobalUser['r117'], $GlobalUser['r118'], $unispeed);
$cons = $arr['fleet'] + $arr['probes'];
if ($aktplanet['d'] < $cons) {
    AjaxSendError(613);
}
// не хватает дейта на полёт
if ($cargo < $cons) {
    AjaxSendError(615);
}
// нет места в грузовом отсеке для дейтерия
// Fleet lock
$fleetlock = "temp/fleetlock_" . $aktplanet['planet_id'];
if (file_exists($fleetlock)) {
    AjaxSendError();
}
$f = fopen($fleetlock, 'w');
fclose($f);
// Отправить флот.
$fleet_id = DispatchFleet($fleet, $aktplanet, $target, $order, $flighttime, 0, 0, 0, $cons, time(), 0);
UserLog($aktplanet['owner_id'], "FLEET", "Отправка флота {$fleet_id} (AJAX): " . GetMissionNameDebug($order) . " " . $aktplanet['name'] . " [" . $aktplanet['g'] . ":" . $aktplanet['s'] . ":" . $aktplanet['p'] . "] -&gt; " . $target['name'] . " [" . $target['g'] . ":" . $target['s'] . ":" . $target['p'] . "]<br>" . DumpFleet($fleet) . "<br>" . "Время полёта: " . BuildDurationFormat($flighttime) . ", затраты дейтерия: " . nicenum($cons));
// Поднять флот с планеты.
AdjustResources(0, 0, $cons, $aktplanet['planet_id'], '-');
AdjustShips($fleet, $aktplanet['planet_id'], '-');
UpdatePlanetActivity($aktplanet['planet_id']);
unlink($fleetlock);
AjaxSendDone($nowfleet + 1, $probes, $recyclers, $missiles);