コード例 #1
0
function ExpeditionBattle($fleet_id, $pirates, $level, $when)
{
    global $db_prefix;
    global $GlobalUni;
    $fleetmap = array(202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215);
    $defmap = array(401, 402, 403, 404, 405, 406, 407, 408);
    $a_result = array(0 => "combatreport_ididattack_iwon", 1 => "combatreport_ididattack_ilost", 2 => "combatreport_ididattack_draw");
    global $db_host, $db_user, $db_pass, $db_name, $db_prefix;
    $a = array();
    $d = array();
    $unitab = LoadUniverse();
    $fid = $unitab['fid'];
    $did = $unitab['did'];
    $rf = $unitab['rapid'];
    // *** Союзные атаки не должны вступать битву. Игнорировать их.
    $f = LoadFleet($fleet_id);
    // *** Сгенерировать исходные данные
    // Список атакующих
    $anum = 0;
    $a[0] = LoadUser($f['owner_id']);
    $a[0]['fleet'] = array();
    foreach ($fleetmap as $i => $gid) {
        $a[0]['fleet'][$gid] = abs($f["ship{$gid}"]);
    }
    $start_planet = GetPlanet($f['start_planet']);
    $a[0]['g'] = $start_planet['g'];
    $a[0]['s'] = $start_planet['s'];
    $a[0]['p'] = $start_planet['p'];
    $a[0]['id'] = $fleet_id;
    $a[0]['points'] = $a[0]['fpoints'] = 0;
    $anum++;
    // Список обороняющихся
    $dnum = 0;
    $d[0] = LoadUser(99999);
    if ($pirates) {
        $d[0]['oname'] = "Piraten";
        $d[0]['r109'] = max(0, $a[0]['r109'] - 3);
        $d[0]['r110'] = max(0, $a[0]['r110'] - 3);
        $d[0]['r111'] = max(0, $a[0]['r111'] - 3);
    } else {
        $d[0]['oname'] = "Aliens";
        $d[0]['r109'] = $a[0]['r109'] + 3;
        $d[0]['r110'] = $a[0]['r110'] + 3;
        $d[0]['r111'] = $a[0]['r111'] + 3;
    }
    $d[0]['fleet'] = array();
    $d[0]['defense'] = array();
    foreach ($fleetmap as $i => $gid) {
        // Определить состав флота пиратов / чужих
        if ($pirates) {
            // Пиратский флот, Округление состава флота вниз.
            // Нормальный - 30% +/- 3% от количества кораблей вашего флота + 5 ЛИ
            // Сильный - 50% +/- 5% от количества кораблей вашего флота + 3 Крейсера
            // Оч. Сильный - 80% +/- 8% от количества кораблей вашего флота + 2 Линка
            if ($a[0]['fleet'][$gid] > 0) {
                if ($level == 0) {
                    $ratio = mt_rand(27, 33) / 100;
                } else {
                    if ($level == 1) {
                        $ratio = mt_rand(45, 55) / 100;
                    } else {
                        if ($level == 2) {
                            $ratio = mt_rand(72, 88) / 100;
                        }
                    }
                }
                $d[0]['fleet'][$gid] = floor($a[0]['fleet'][$gid] * $ratio);
            } else {
                $d[0]['fleet'][$gid] = 0;
            }
        } else {
            // Флот Чужих, Округление состава флота вверх.
            // Нормальный - 40% +/- 4% от количества кораблей вашего флота + 5 ТИ
            // Сильный - 60% +/- 6% от количества кораблей вашего флота + 3 Линейки
            // Оч. Сильный - 90% +/- 9% от количества кораблей вашего флота + 2 Уника
            if ($a[0]['fleet'][$gid] > 0) {
                if ($level == 0) {
                    $ratio = mt_rand(36, 44) / 100;
                } else {
                    if ($level == 1) {
                        $ratio = mt_rand(54, 66) / 100;
                    } else {
                        if ($level == 2) {
                            $ratio = mt_rand(81, 99) / 100;
                        }
                    }
                }
                $d[0]['fleet'][$gid] = ceil($a[0]['fleet'][$gid] * $ratio);
            } else {
                $d[0]['fleet'][$gid] = 0;
            }
        }
    }
    if ($pirates) {
        if ($level == 0) {
            $d[0]['fleet'][204] += 5;
        } else {
            if ($level == 1) {
                $d[0]['fleet'][206] += 3;
            } else {
                if ($level == 2) {
                    $d[0]['fleet'][207] += 2;
                }
            }
        }
    } else {
        if ($level == 0) {
            $d[0]['fleet'][205] += 5;
        } else {
            if ($level == 1) {
                $d[0]['fleet'][215] += 3;
            } else {
                if ($level == 2) {
                    $d[0]['fleet'][213] += 2;
                }
            }
        }
    }
    foreach ($defmap as $i => $gid) {
        $d[0]['defense'][$gid] = 0;
    }
    $target_planet = GetPlanet($f['target_planet']);
    $d[0]['g'] = $target_planet['g'];
    $d[0]['s'] = $target_planet['s'];
    $d[0]['p'] = $target_planet['p'];
    $d[0]['id'] = $target_planet['planet_id'];
    $d[0]['points'] = $d[0]['fpoints'] = 0;
    $dnum++;
    $source .= "Rapidfire = {$rf}\n";
    $source .= "FID = {$fid}\n";
    $source .= "DID = {$did}\n";
    $source .= "Attackers = " . $anum . "\n";
    $source .= "Defenders = " . $dnum . "\n";
    foreach ($a as $num => $attacker) {
        $source .= "Attacker" . $num . " = (<" . $attacker['oname'] . "> ";
        $source .= $attacker['id'] . " ";
        $source .= $attacker['g'] . " " . $attacker['s'] . " " . $attacker['p'] . " ";
        $source .= $attacker['r109'] . " " . $attacker['r110'] . " " . $attacker['r111'] . " ";
        foreach ($fleetmap as $i => $gid) {
            $source .= $attacker['fleet'][$gid] . " ";
        }
        $source .= ")\n";
    }
    foreach ($d as $num => $defender) {
        $source .= "Defender" . $num . " = (<" . $defender['oname'] . "> ";
        $source .= $defender['id'] . " ";
        $source .= $defender['g'] . " " . $defender['s'] . " " . $defender['p'] . " ";
        $source .= $defender['r109'] . " " . $defender['r110'] . " " . $defender['r111'] . " ";
        foreach ($fleetmap as $i => $gid) {
            $source .= $defender['fleet'][$gid] . " ";
        }
        foreach ($defmap as $i => $gid) {
            $source .= $defender['defense'][$gid] . " ";
        }
        $source .= ")\n";
    }
    $battle = array(null, $source, "", "", $when);
    $battle_id = AddDBRow($battle, "battledata");
    $bf = fopen("battledata/battle_" . $battle_id . ".txt", "w");
    fwrite($bf, $source);
    fclose($bf);
    // *** Передать данные боевому движку
    $arg = "\"battle_id={$battle_id}\"";
    system($unitab['battle_engine'] . " {$arg}");
    // *** Обработать выходные данные
    $battleres = file_get_contents("battleresult/battle_" . $battle_id . ".txt");
    $res = unserialize($battleres);
    // Определить исход битвы.
    if ($res['result'] === "awon") {
        $battle_result = 0;
    } else {
        if ($res['result'] === "dwon") {
            $battle_result = 1;
        } else {
            $battle_result = 2;
        }
    }
    // Рассчитать общие потери (учитывать дейтерий и восстановленную оборону)
    $aloss = $dloss = 0;
    $loss = CalcLosses($a, $d, $res, array());
    $a = $loss['a'];
    $d = $loss['d'];
    $aloss = $loss['aloss'];
    $dloss = $loss['dloss'];
    // Сгенерировать боевой доклад.
    loca_add("battlereport", $GlobalUni['lang']);
    loca_add("technames", $GlobalUni['lang']);
    $text = ShortBattleReport($res, $when);
    // Разослать сообщения
    $mailbox = array();
    // Если флот уничтожен за 1 или 2 раунда - не показывать лог боя для атакующих.
    if (count($res['rounds']) <= 2 && $battle_result == 1) {
        $text = "Контакт с флотом потерян. <br> Это означает, что его уничтожили первым же залпом <!--A:{$aloss},W:{$dloss}-->";
    }
    foreach ($a as $i => $user) {
        if ($mailbox[$user['player_id']] == true) {
            continue;
        }
        $bericht = SendMessage($user['player_id'], "Командование флотом", "Боевой доклад", $text, 6, $when);
        MarkMessage($user['player_id'], $bericht);
        $subj = "<a href=\"#\" onclick=\"fenster(\\'index.php?page=bericht&session={PUBLIC_SESSION}&bericht={$bericht}\\', \\'Bericht_Kampf\\');\" ><span class=\"" . $a_result[$battle_result] . "\">Боевой доклад [" . $target_planet['g'] . ":" . $target_planet['s'] . ":" . $target_planet['p'] . "] (V:" . nicenum($dloss) . ",A:" . nicenum($aloss) . ")</span></a>";
        SendMessage($user['player_id'], "Командование флотом", $subj, "", 2, $when);
        $mailbox[$user['player_id']] = true;
    }
    // Обновить лог боевого доклада
    $subj = "<a href=\"#\" onclick=\"fenster(\\'index.php?page=admin&session={PUBLIC_SESSION}&mode=BattleReport&bericht={$battle_id}\\', \\'Bericht_Kampf\\');\" ><span class=\"" . $a_result[$battle_result] . "\">Боевой доклад [" . $target_planet['g'] . ":" . $target_planet['s'] . ":" . $target_planet['p'] . "] (V:" . nicenum($dloss) . ",A:" . nicenum($aloss) . ")</span></a>";
    $query = "UPDATE " . $db_prefix . "battledata SET title = '" . $subj . "', report = '" . $text . "' WHERE battle_id = {$battle_id};";
    dbquery($query);
    // Почистить старые боевые доклады
    $ago = $when - 2 * 7 * 24 * 60 * 60;
    $query = "DELETE FROM " . $db_prefix . "battledata WHERE date < {$ago};";
    dbquery($query);
    // Модифицировать флот
    WritebackBattleResultsExpedition($a, $d, $res);
    // Изменить статистику игроков
    foreach ($a as $i => $user) {
        AdjustStats($user['player_id'], $user['points'], $user['fpoints'], 0, '-');
    }
    RecalcRanks();
    // Чистим промежуточные данные боевого движка
    unlink("battledata/battle_" . $battle_id . ".txt");
    unlink("battleresult/battle_" . $battle_id . ".txt");
    return $battle_result;
}
コード例 #2
0
while ($num--) {
    $msg = dbarray($result);
    $pm = $msg['pm'];
    if ($pm == 6) {
        continue;
    }
    // Пропускать тексты боевых докладов.
    $msg['msgfrom'] = str_replace("{PUBLIC_SESSION}", $_GET['session'], $msg['msgfrom']);
    $msg['subj'] = str_replace("{PUBLIC_SESSION}", $_GET['session'], $msg['subj']);
    $msg['text'] = str_replace("{PUBLIC_SESSION}", $_GET['session'], $msg['text']);
    echo "<tr><th><input type=\"checkbox\" name=\"delmes" . $msg['msg_id'] . "\"/></th><th>" . date("m-d H:i:s", $msg['date']) . "</th><th>" . $msg['msgfrom'] . " </th><th>" . $msg['subj'] . " </th></tr>\n";
    echo "<tr><td class=\"b\"> </td><td class=\"b\" colspan=\"3\">" . $msg['text'] . "</td></tr>\n";
    if ($pm == 0) {
        echo "<tr><th colspan=\"4\"><input type=\"checkbox\" name=\"sneak" . $msg['msg_id'] . "\"/><input type=\"submit\" value=\"Сообщить оператору\"/></th></tr>\n";
    }
    MarkMessage($msg['owner_id'], $msg['msg_id']);
}
// Низ таблицы
echo "<tr><th colspan=\"4\" style='padding:0px 105px;'></th></tr>\n";
echo "<tr><th colspan=\"4\"><input type=\"checkbox\" name=\"fullreports\"  /> Разведданные показывать частично </th></tr>\n";
echo "<tr><th colspan=\"4\">\n";
echo "<select name=\"deletemessages\">\n";
echo "<option value=\"deletemarked\">Удалить выделенные сообщения</option> \n";
echo "<option value=\"deletenonmarked\">Удалить все невыделенные сообщения</option>\n";
echo "<option value=\"deleteallshown\">Удалить все показанные сообщения </option>\n";
echo "<option value=\"deleteall\">Удалить все сообщения</option> \n";
echo "</select><input type=\"submit\" value=\"ok\" /></th></tr>\n";
echo "<tr><td colspan=\"4\"><center>     </center></td></tr>\n";
echo "<input type=\"hidden\" name=\"messages\" value=\"1\" />\n";
echo "</form>\n";
echo "<tr><td class=\"c\" colspan=\"4\">Операторы</td></tr>\n";
コード例 #3
0
function Admin_BattleSim()
{
    global $session;
    global $db_prefix;
    global $GlobalUser;
    $fleetmap = array(202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215);
    $defmap = array(401, 402, 403, 404, 405, 406, 407, 408);
    $unitab = LoadUniverse();
    $rf = $unitab['rapid'];
    $fid = $unitab['fid'];
    $did = $unitab['did'];
    $debug = false;
    $maxslot = $unitab['acs'] * $unitab['acs'];
    $BattleReport = "";
    $aloss = $dloss = 0;
    // --------------------------------------------------------------------------------------------------------------------------
    // Обработка POST-запроса.
    if (method() === "POST" && $GlobalUser['admin'] >= 2) {
        //print_r ( $_POST );
        //echo "<hr>";
        // Сформировать список атакующих и обороняющихся
        $a = array();
        $d = array();
        $anum = intval($_POST['anum']);
        $dnum = intval($_POST['dnum']);
        // Атакующие
        for ($i = 0; $i < $anum; $i++) {
            if ($_POST["a" . $i . "_weap"] === "") {
                $_POST["a" . $i . "_weap"] = 0;
            }
            if ($_POST["a" . $i . "_shld"] === "") {
                $_POST["a" . $i . "_shld"] = 0;
            }
            if ($_POST["a" . $i . "_armor"] === "") {
                $_POST["a" . $i . "_armor"] = 0;
            }
            $a[$i]['r109'] = intval($_POST["a" . $i . "_weap"]);
            $a[$i]['r110'] = intval($_POST["a" . $i . "_shld"]);
            $a[$i]['r111'] = intval($_POST["a" . $i . "_armor"]);
            $a[$i]['oname'] = "Attacker{$i}";
            $a[$i]['g'] = mt_rand(1, 9);
            $a[$i]['s'] = mt_rand(1, 499);
            $a[$i]['p'] = mt_rand(1, 15);
            $a[$i]['fleet'] = array();
            foreach ($fleetmap as $n => $gid) {
                if ($_POST["a" . $i . "_{$gid}"] === "") {
                    $_POST["a" . $i . "_{$gid}"] = 0;
                }
                $a[$i]['fleet'][$gid] = intval($_POST["a" . $i . "_{$gid}"]);
            }
        }
        // Обороняющиеся
        for ($i = 0; $i < $dnum; $i++) {
            if ($_POST["d" . $i . "_weap"] === "") {
                $_POST["d" . $i . "_weap"] = 0;
            }
            if ($_POST["d" . $i . "_shld"] === "") {
                $_POST["d" . $i . "_shld"] = 0;
            }
            if ($_POST["d" . $i . "_armor"] === "") {
                $_POST["d" . $i . "_armor"] = 0;
            }
            $d[$i]['r109'] = intval($_POST["d" . $i . "_weap"]);
            $d[$i]['r110'] = intval($_POST["d" . $i . "_shld"]);
            $d[$i]['r111'] = intval($_POST["d" . $i . "_armor"]);
            $d[$i]['oname'] = "Defender{$i}";
            $d[$i]['g'] = mt_rand(1, 9);
            $d[$i]['s'] = mt_rand(1, 499);
            $d[$i]['p'] = mt_rand(1, 15);
            $d[$i]['fleet'] = array();
            foreach ($fleetmap as $n => $gid) {
                if ($_POST["d" . $i . "_{$gid}"] === "") {
                    $_POST["d" . $i . "_{$gid}"] = 0;
                }
                $d[$i]['fleet'][$gid] = intval($_POST["d" . $i . "_{$gid}"]);
            }
            $d[$i]['defense'] = array();
            foreach ($defmap as $n => $gid) {
                if ($_POST["d" . $i . "_{$gid}"] === "") {
                    $_POST["d" . $i . "_{$gid}"] = 0;
                }
                $d[$i]['defense'][$gid] = intval($_POST["d" . $i . "_{$gid}"]);
            }
        }
        // Симулировать битву
        $battle_result = 0;
        if ($_POST['debug'] === "on") {
            $debug = true;
        } else {
            $debug = false;
        }
        if ($_POST['rapid'] === "on") {
            $rf = true;
        } else {
            $rf = 0;
        }
        if ($_POST['fid'] === "") {
            $fid = 0;
        } else {
            $fid = intval($_POST['fid']);
        }
        if ($_POST['did'] === "") {
            $did = 0;
        } else {
            $did = intval($_POST['did']);
        }
        $BattleReport = SimBattle($a, $d, $rf, $fid, $did, $debug, &$battle_result, &$aloss, &$dloss);
    }
    // --------------------------------------------------------------------------------------------------------------------------
    // Таблица ввода параметров симуляции.
    function getval($name)
    {
        if ($_POST[$name] != "") {
            return "value=\"" . $_POST[$name] . "\" ";
        }
    }
    function getval2($arr, $id)
    {
        if ($_POST[$arr][$id] != 0) {
            return "value=\"" . $_POST[$arr][$id] . "\" ";
        } else {
            return "";
        }
    }
    ?>

<script language="JavaScript">

var maxslot = <?php 
    echo $maxslot;
    ?>
;

function toint (num)
{
    if ( typeof (num) == "undefined" ) num = 0;
    return parseInt (num);
}

// Пересчитать количество атакующих и обороняющихся.
function RecalcAttackersDefendersNum ()
{
    var anum = dnum = 1;
    var fleet = [ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ];
    var defense = [ 401, 402, 403, 404, 405, 406, 407, 408 ];

    for ( n=0; n<maxslot; n++ )        // Атакующие
    {
        sum = 0;
        for (var i in fleet) {
            value = toint (document.getElementById ( "a"+n+"_" + fleet[i] ).value);
            if ( value ) sum += value;
        }
        if ( sum > 0 ) anum = n + 1;
    }

    for ( n=0; n<maxslot; n++ )        // Обороняющиеся
    {
        sum = 0;
        for (var i in fleet) {
            value = toint (document.getElementById ( "d"+n+"_" + fleet[i] ).value);
            if ( value ) sum += value;
        }
        for (var i in defense) {
            value = toint (document.getElementById ( "d"+n+"_" + defense[i] ).value);
            if ( value ) sum += value;
        }
        if ( sum > 0 ) dnum = n + 1;
    }

    document.getElementById ( "anum" ).value = anum;
    document.getElementById ( "dnum" ).value = dnum;
    //alert ( "Атакующих : " + anum + ", Обороняющихся : " + dnum );
}

// При смене слота - занести данные из массива слотов в ячейки ввода
function OnChangeSlot (attacker)
{
    var fleet = [ 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215 ];
    var defense = [ 401, 402, 403, 404, 405, 406, 407, 408 ];

    if (attacker) {
        slot = document.simForm.aslot.value - 1;
        for (var i in fleet) {
            value = toint (document.getElementById ( "a"+slot+"_" + fleet[i] ).value);
            if (value) document.getElementById ( "a_" + fleet[i] ).value = value;
            else document.getElementById ( "a_" + fleet[i] ).value = "";
        }
    }
    else {
        slot = document.simForm.dslot.value - 1;
        for (var i in fleet) {
            value = toint (document.getElementById ( "d"+slot+"_" + fleet[i] ).value);
            if ( value ) document.getElementById ( "d_" + fleet[i] ).value = value;
            else document.getElementById ( "d_" + fleet[i] ).value = "";
        }
        for (var i in defense) {
            value = toint (document.getElementById ( "d"+slot+"_" + defense[i] ).value);
            if (value) document.getElementById ( "d_" + defense[i] ).value = value;
            else document.getElementById ( "d_" + defense[i] ).value = "";
        }
    }
}

// При изменении ячейки - внести данные из неё в массив слотов
function OnChangeValue (attacker, id)
{
    if (attacker) {
        slot = document.simForm.aslot.value - 1;
        document.getElementById ( "a"+slot+"_" + id ).value = document.getElementById ( "a_" + id ).value;
    }
    else {
        slot = document.simForm.dslot.value - 1;
        document.getElementById ( "d"+slot+"_" + id ).value = document.getElementById ( "d_" + id ).value;
    }

    RecalcAttackersDefendersNum ();
}

RecalcAttackersDefendersNum ();

</script>

<?php 
    echo AdminPanel();
    ?>

<table cellpadding=0 cellspacing=0>
<form name="simForm" action="index.php?page=admin&session=<?php 
    echo $session;
    ?>
&mode=BattleSim" method="POST" >

<?php 
    for ($n = 0; $n < $maxslot; $n++) {
        foreach ($fleetmap as $i => $gid) {
            echo "<input type=\"hidden\" id=\"a" . $n . "_{$gid}\" name=\"a" . $n . "_{$gid}\" value=\"0\"> \n";
        }
        foreach ($fleetmap as $i => $gid) {
            echo "<input type=\"hidden\" id=\"d" . $n . "_{$gid}\" name=\"d" . $n . "_{$gid}\" value=\"0\"> \n";
        }
        foreach ($defmap as $i => $gid) {
            echo "<input type=\"hidden\" id=\"d" . $n . "_{$gid}\" name=\"d" . $n . "_{$gid}\" value=\"0\"> \n";
        }
        echo "<input type=\"hidden\" id=\"a" . $n . "_weap\" name=\"a" . $n . "_weap\" size=2 > <input type=\"hidden\" id=\"a" . $n . "_shld\" name=\"a" . $n . "_shld\" size=2 > <input type=\"hidden\" id=\"a" . $n . "_armor\" name=\"a" . $n . "_armor\" size=2 > \n";
        echo "<input type=\"hidden\" id=\"d" . $n . "_weap\" name=\"d" . $n . "_weap\" size=2 > <input type=\"hidden\" id=\"d" . $n . "_shld\" name=\"d" . $n . "_shld\" size=2 > <input type=\"hidden\" id=\"d" . $n . "_armor\" name=\"d" . $n . "_armor\" size=2 > \n";
    }
    ?>

<input type="hidden" id="anum" name="anum" value="1" />
<input type="hidden" id="anum" name="dnum" value="1" />

<tr>        <td class=c>Атакующий</td>                <td class=c>Оборояющийся</td>  </tr>

<tr> 
<td> Вооружение: <input id="a_weap" size=2 > Щиты: <input id="a_shld" size=2 > Броня: <input id="a_armor" size=2 ></td>   
<td> Вооружение: <input id="d_weap" size=2 > Щиты: <input id="d_shld" size=2 > Броня: <input id="d_armor" size=2 ></td>   
</tr>

        <tr> <th valign=top>
        <table>
<?php 
    echo "<tr><td class=c><b>Флот</b></td> ";
    if ($maxslot > 0) {
        echo "<td>Слот: <select name=\"aslot\" onchange=\"OnChangeSlot(1);\">\n";
        for ($n = 1; $n <= $maxslot; $n++) {
            echo "<option value=\"{$n}\">{$n}</option>\n";
        }
        echo "</select> </td> ";
    }
    echo " </tr>\n";
    foreach ($fleetmap as $i => $gid) {
        ?>
           <tr><td> <?php 
        echo loca("NAME_{$gid}");
        ?>
 </td> <td> <input id="a_<?php 
        echo $gid;
        ?>
" size=5  onKeyUp="OnChangeValue(1, <?php 
        echo $gid;
        ?>
);"> </td> </tr>
<?php 
    }
    ?>

<tr><td colspan=2> 
<table>
<tr><td class=c colspan=2>Настройки</td></tr>
<tr><td>Отладочная информация</td><td><input type="checkbox" name="debug" <? if($debug) echo "checked"; ?> ></td></tr>
<tr><td>Скорострел</td><td><input type="checkbox" name="rapid" <? if($rf) echo "checked"; ?> ></td></tr>
<tr><td>Флот в обломки</td><td><input name="fid" size=3 value="<?php 
    echo $fid;
    ?>
"> </td></tr>
<tr><td>Оборона в обломки</td><td><input name="did" size=3 value="<?php 
    echo $did;
    ?>
"></td></tr>
</table>
</td></tr>

        </table>
        </th>

        <th valign=top>
        <table>
<?php 
    echo "<tr><td class=c><b>Флот</b></td>";
    if ($maxslot > 0) {
        echo "<td>Слот: <select name=\"dslot\" onchange=\"OnChangeSlot(0);\">\n";
        for ($n = 1; $n <= $maxslot; $n++) {
            echo "<option value=\"{$n}\">{$n}</option>\n";
        }
        echo "</select> </td> ";
    }
    echo "</tr>\n";
    foreach ($fleetmap as $i => $gid) {
        ?>
           <tr><td> <?php 
        echo loca("NAME_{$gid}");
        ?>
 </td> <td> <input id="d_<?php 
        echo $gid;
        ?>
" size=5 onKeyUp="OnChangeValue(0, <?php 
        echo $gid;
        ?>
);"> </td> </tr>
<?php 
    }
    echo "<tr><td class=c><b>Оборона</b></td></tr>\n";
    foreach ($defmap as $i => $gid) {
        ?>
           <tr><td> <?php 
        echo loca("NAME_{$gid}");
        ?>
 </td> <td> <input id="d_<?php 
        echo $gid;
        ?>
" size=5 onKeyUp="OnChangeValue(0, <?php 
        echo $gid;
        ?>
);"> </td> </tr>
<?php 
    }
    ?>
        </table>
        </th></tr>

<tr><td colspan=2><center><input type="submit" value="Начать бой"></center></td></tr>
</form>
</table>

<?php 
    if ($BattleReport !== "") {
        $a_result = array(0 => "combatreport_ididattack_iwon", 1 => "combatreport_ididattack_ilost", 2 => "combatreport_ididattack_draw");
        $bericht = SendMessage($GlobalUser['player_id'], "Командование флотом", "Боевой доклад", $BattleReport, 6);
        MarkMessage($GlobalUser['player_id'], $bericht);
        $subj = "<a href=\"#\" onclick=\"fenster('index.php?page=bericht&session={$session}&bericht={$bericht}', 'Bericht_Kampf');\" ><span class=\"" . $a_result[$battle_result] . "\">Боевой доклад [" . $d[0]['g'] . ":" . $d[0]['s'] . ":" . $d[0]['p'] . "] (V:" . nicenum($dloss) . ",A:" . nicenum($aloss) . ")</span></a>";
        echo "{$subj}<br>";
    }
    ?>

<?php 
}