function PlanetDestroyMenu()
{
    global $GlobalUser;
    $aktplanet = GetPlanet($GlobalUser['aktplanet']);
    PageHeader("renameplanet");
    echo "<!-- CONTENT AREA -->\n";
    echo "<div id='content'>\n";
    echo "<center>\n\n";
    echo "<h1>Переименовать/покинуть планету</h1>\n";
    echo "<form action=\"index.php?page=renameplanet&session=" . $_GET['session'] . "&pl=" . $aktplanet['planet_id'] . "\" method=\"POST\">\n";
    echo "<input type='hidden' name='page' value='renameplanet'>\n";
    echo "<center>\n\n";
    echo "<table width=\"519\">\n";
    echo "<tr><td class=\"c\" colspan=\"3\">Вопросы на всякий случай</td></tr>\n";
    echo "<tr><th colspan=\"3\">Уничтожение планеты [" . $aktplanet['g'] . ":" . $aktplanet['s'] . ":" . $aktplanet['p'] . "] подтвердить паролем</th></tr>\n";
    echo "<tr><input type=\"hidden\" name=\"deleteid\" value =\"" . $aktplanet['planet_id'] . "\">\n";
    echo "<th>Пароль</th><th><input type=\"password\" name=\"pw\"></th>\n";
    echo "<th><input type=\"submit\" name=\"aktion\" value=\"Удалить планету!\" alt=\"Покинуть колонию\"></th></tr>\n";
    echo "</table>\n</form>\n</center>\n\n";
    echo "<br><br><br><br>\n";
    echo "</center>\n";
    echo "</div>\n";
    echo "<!-- END CONTENT AREA -->\n";
    PageFooter();
    ob_end_flush();
    exit;
}
    echo $pl['planet_id'];
    ?>
"
            	class="tipsStandard"
                title="|Перейти к Планета  ">
            	<img alt="" src="<?php 
    echo planet_link($pl);
    ?>
">
            </a>
        </div>
<?php 
} else {
    $moon_id = PlanetHasMoon($aktplanet['planet_id']);
    if ($moon_id) {
        $moon = GetPlanet($moon_id);
        ?>
        <div id="moon">
        	<a 	href="index.php?page=overview&session=<?php 
        echo $session;
        ?>
&cp=<?php 
        echo $moon['planet_id'];
        ?>
"
            	class="tipsStandard"
                title="|Перейти к Луна  ">
            	<img alt="" src="red_images/17e17069847b09b3d1ef6d03729107.gif">
            </a>
        </div>
<?php 
foreach ($unions as $i => $union) {
    $fleet_obj = LoadFleet($union['fleet_id']);
    if ($fleet_obj['union_id'] == $union['union_id']) {
        $union_count++;
    }
}
if ($union_count > 0) {
    echo "<input type=\"hidden\" name=\"union2\" value=\"0\" >";
    $now = time();
    foreach ($unions as $i => $union) {
        $fleet_obj = LoadFleet($union['fleet_id']);
        if ($fleet_obj['union_id'] != $union['union_id']) {
            continue;
        }
        $queue = GetFleetQueue($union['fleet_id']);
        $target = GetPlanet($fleet_obj['target_planet']);
        echo "  <tr height=\"20\">";
        echo "<th><div id='bxx" . ($i + 1) . "' title='" . max($queue['end'] - $now, 0) . "'star='" . $queue['end'] . "'></div></th>";
        echo "<th><a href=\"javascript:setTarget(" . $target['g'] . "," . $target['s'] . "," . $target['p'] . "," . GetPlanetType($target) . "); setUnion(" . $union['union_id'] . "); shortInfo()\">";
        echo $union['name'] . " [" . $target['g'] . ":" . $target['s'] . ":" . $target['p'] . "]</a></th></tr>\n";
    }
    echo "<script language=javascript>anz=" . $union_count . ";t();</script>\n\n";
} else {
    echo " <tr height=\"20\"><th colspan=\"2\">-</th></tr>\n";
}
?>

<tr height="20">
 <th colspan="2">
  <input type="submit" value="Дальше" />
 </th>
Example #4
0
function Admin_Bots()
{
    global $session;
    global $db_prefix;
    global $GlobalUser;
    $result = "";
    // Обработка POST-запроса.
    if (method() === "POST") {
        if (AddBot($_POST['name'])) {
            $result = "<font color=lime>Бот успешно добавлен.</font>";
        } else {
            $result = "<font color=red>Игрок с таким именем уже существует.</font>";
        }
    }
    // Обработка GET-запроса.
    if (method() === "GET") {
        StopBot(intval($_GET['id']));
        $result = "<font color=lime>Бот остановлен.</font>";
    }
    ?>

<?php 
    echo AdminPanel();
    ?>

<center><?php 
    echo $result;
    ?>
</center>

<h2>Список ботов:</h2>

<?php 
    $query = "SELECT * FROM " . $db_prefix . "queue WHERE type = 'AI' GROUP BY owner_id";
    $result = dbquery($query);
    $rowss = $rows = dbrows($result);
    if ($rows == 0) {
        echo "Ботов не обнаружено<br>";
    } else {
        echo "<table>\n";
        echo "<tr><td class=c>ID</td><td class=c>Имя</td><td class=c>Главная планета</td><td class=c>Действие</td></tr>\n";
    }
    while ($rows--) {
        $queue = dbarray($result);
        $user = LoadUser($queue['owner_id']);
        $planet = GetPlanet($user['hplanetid']);
        echo "<tr>";
        echo "<td>" . $user['player_id'] . "</td>";
        echo "<td>" . AdminUserName($user) . "</td>";
        echo "<td>" . AdminPlanetName($planet) . " " . AdminPlanetCoord($planet) . "</td>";
        echo "<td><a href=\"index.php?page=admin&session={$session}&mode=Bots&action=stop&id=" . $user['player_id'] . "\">Остановить</a></td>";
        echo "</tr>\n";
    }
    if ($rowss) {
        echo "</table>";
    }
    ?>

<h2>Добавить бота:</h2>

<form action="index.php?page=admin&session=<?php 
    echo $session;
    ?>
&mode=Bots" method="POST">
<table>
<tr><td>Имя <input type=text size=10 name="name" /> <input type=submit value="Отправить" /></td></tr>
</table>
</form>

<?php 
}
function Admin_Users()
{
    global $session;
    global $db_prefix;
    global $GlobalUser;
    global $FleetMissionList;
    $now = time();
    $resmap = array(106, 108, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 122, 123, 124, 199);
    $unitab = LoadUniverse();
    $speed = $unitab['speed'];
    // Обработка POST-запроса.
    if (method() === "POST" && $GlobalUser['admin'] >= 2) {
        if (key_exists('player_id', $_GET)) {
            $player_id = intval($_GET['player_id']);
        } else {
            $player_id = 0;
        }
        if (key_exists('action', $_GET) && $player_id) {
            $action = $_GET['action'];
        } else {
            $action = "";
        }
        if ($action === "update") {
            $query = "UPDATE " . $db_prefix . "users SET ";
            foreach ($resmap as $i => $gid) {
                $query .= "r{$gid} = " . intval($_POST["r{$gid}"]) . ", ";
            }
            if ($_POST['deaktjava'] === "on") {
                $query .= "disable = 1, disable_until = " . ($now + 7 * 24 * 60 * 60) . ", ";
            } else {
                $query .= "disable = 0, ";
            }
            if ($_POST['vacation'] === "on") {
                $query .= "vacation = 1, vacation_until = " . ($now + 2 * 24 * 60 * 60 / $speed) . ", ";
            } else {
                $query .= "vacation = 0, ";
            }
            if ($_POST['banned'] !== "on") {
                $query .= "banned = 0, ";
            }
            if ($_POST['noattack'] !== "on") {
                $query .= "noattack = 0, ";
            }
            $query .= "pemail = '" . $_POST['pemail'] . "', ";
            $query .= "email = '" . $_POST['email'] . "', ";
            $query .= "admin = '" . $_POST['admin'] . "', ";
            $query .= "validated = " . ($_POST['validated'] === "on" ? 1 : 0) . ", ";
            $query .= "sniff = " . ($_POST['sniff'] === "on" ? 1 : 0) . ", ";
            $query .= "debug = " . ($_POST['debug'] === "on" ? 1 : 0) . ", ";
            $query .= "dm = '" . intval($_POST['dm']) . "', ";
            $query .= "dmfree = '" . intval($_POST['dmfree']) . "', ";
            $query .= "sortby = '" . intval($_POST['settings_sort']) . "', ";
            $query .= "sortorder = '" . intval($_POST['settings_order']) . "', ";
            $query .= "skin = '" . $_POST['dpath'] . "', ";
            $query .= "useskin = " . ($_POST['design'] === "on" ? 1 : 0) . ", ";
            $query .= "deact_ip = " . ($_POST['deact_ip'] === "on" ? 1 : 0) . ", ";
            $query .= "maxspy = '" . intval($_POST['spio_anz']) . "', ";
            $query .= "maxfleetmsg = '" . intval($_POST['settings_fleetactions']) . "' ";
            $query .= " WHERE player_id={$player_id};";
            dbquery($query);
            $qname = array('CommanderOff', 'AdmiralOff', 'EngineerOff', 'GeologeOff', 'TechnocrateOff');
            foreach ($qname as $i => $qcmd) {
                $days = intval($_POST[$qcmd]);
                if ($days > 0) {
                    RecruitOfficer($player_id, $qcmd, $days * 24 * 60 * 60);
                }
            }
        }
        if ($action === "create_planet") {
            $g = $_POST['g'];
            if ($g === "") {
                $g = 1;
            }
            $s = $_POST['s'];
            if ($s === "") {
                $s = 1;
            }
            $p = $_POST['p'];
            if ($p === "") {
                $p = 1;
            }
            if (!HasPlanet($g, $s, $p)) {
                $planet_id = CreatePlanet($g, $s, $p, $_GET['player_id']);
                $query = "UPDATE " . $db_prefix . "planets SET mprod = 0, kprod = 0, dprod = 0 WHERE planet_id = " . $planet_id;
                dbquery($query);
            }
        }
    }
    // Обработка GET-запроса.
    if (method() === "GET" && $GlobalUser['admin'] >= 2) {
        if (key_exists('player_id', $_GET)) {
            $player_id = intval($_GET['player_id']);
        } else {
            $player_id = 0;
        }
        if (key_exists('action', $_GET) && $player_id) {
            $action = $_GET['action'];
        } else {
            $action = "";
        }
        $now = time();
        if ($action === "recalc_stats") {
            RecalcStats($player_id);
            RecalcRanks();
        }
        if ($action === "reactivate") {
            ReactivateUser($player_id);
        }
        if ($action === "bot_start") {
            StartBot($player_id);
        }
        if ($action === "bot_stop") {
            StopBot($player_id);
        }
    }
    if (key_exists("player_id", $_GET)) {
        // Информация об игроке
        InvalidateUserCache();
        $user = LoadUser(intval($_GET['player_id']));
        ?>

    <?php 
        echo AdminPanel();
        ?>

    <table>
    <form action="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Users&action=update&player_id=<?php 
        echo $user['player_id'];
        ?>
" method="POST" >
    <tr><td class=c><?php 
        echo AdminUserName($user);
        ?>
</td><td class=c>Настройки</td><td class=c>Исследования</td></tr>

        <th valign=top><table>
            <tr><th>ID</th><th><?php 
        echo $user['player_id'];
        ?>
</th></tr>
            <tr><th>Дата регистрации</th><th><?php 
        echo date("Y-m-d H:i:s", $user['regdate']);
        ?>
</th></tr>
            <tr><th>Альянс</th><th>
<?php 
        if ($user['ally_id']) {
            $ally = LoadAlly($user['ally_id']);
            echo "[" . $ally['tag'] . "] " . $ally['name'];
        }
        ?>
</th></tr>
            <tr><th>Дата вступления</th><th>
<?php 
        if ($user['ally_id']) {
            echo date("Y-m-d H:i:s", $user['joindate']);
        }
        ?>
</th></tr>
            <tr><th>Постоянный адрес</th><th><input type="text" name="pemail" maxlength="100" size="20" value="<?php 
        echo $user['pemail'];
        ?>
" /></th></tr>
            <tr><th>Временный адрес</th><th><input type="text" name="email" maxlength="100" size="20" value="<?php 
        echo $user['email'];
        ?>
" /></th></tr>
            <tr><th>Удалить игрока</th><th><input type="checkbox" name="deaktjava"  <?php 
        echo IsChecked($user, "disable");
        ?>
/>
      <?php 
        if ($user['disable']) {
            echo date("Y-m-d H:i:s", $user['disable_until']);
        }
        ?>
</th></tr>
            <tr><th>Режим отпуска</th><th><input type="checkbox" name="vacation"  <?php 
        echo IsChecked($user, "vacation");
        ?>
/>
      <?php 
        if ($user['vacation']) {
            echo date("Y-m-d H:i:s", $user['vacation_until']);
        }
        ?>
</th></tr>
            <tr><th>Заблокирован</th><th><input type="checkbox" name="banned"  <?php 
        echo IsChecked($user, "banned");
        ?>
/>
      <?php 
        if ($user['banned']) {
            echo date("Y-m-d H:i:s", $user['banned_until']);
        }
        ?>
</th></tr>
            <tr><th>Бан атак</th><th><input type="checkbox" name="noattack"  <?php 
        echo IsChecked($user, "noattack");
        ?>
/>
      <?php 
        if ($user['noattack']) {
            echo date("Y-m-d H:i:s", $user['noattack_until']);
        }
        ?>
</th></tr>
            <tr><th>Последний вход</th><th><?php 
        echo date("Y-m-d H:i:s", $user['lastlogin']);
        ?>
</th></tr>
            <tr><th>Активность</th><th>
<?php 
        $now = time();
        echo date("Y-m-d H:i:s", $user['lastclick']);
        if ($now - $user['lastclick'] < 60 * 60) {
            echo " (" . floor(($now - $user['lastclick']) / 60) . " min)";
        }
        ?>
</th></tr>
            <tr><th>IP адрес</th><th><a href="http://nic.ru/whois/?query=<?php 
        echo $user['ip_addr'];
        ?>
" target=_blank><?php 
        echo $user['ip_addr'];
        ?>
</a></th></tr>
            <tr><th>Активирован</th><th><input type="checkbox" name="validated" <?php 
        echo IsChecked($user, "validated");
        ?>
 /> <a href="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Users&action=reactivate&player_id=<?php 
        echo $user['player_id'];
        ?>
">выслать пароль</a></th></tr>
            <tr><th>Главная планета</th><th>
<?php 
        $planet = GetPlanet($user['hplanetid']);
        echo "[" . $planet['g'] . ":" . $planet['s'] . ":" . $planet['p'] . "] <a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $planet['planet_id'] . "\">" . $planet['name'] . "</a>";
        ?>
</th></tr>
            <tr><th>Текущая планета</th><th>
<?php 
        $planet = GetPlanet($user['aktplanet']);
        echo "[" . $planet['g'] . ":" . $planet['s'] . ":" . $planet['p'] . "] <a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $planet['planet_id'] . "\">" . $planet['name'] . "</a>";
        ?>
</th></tr>
            <tr><th>Права</th><th>
   <select name="admin">
     <option value="0" <?php 
        echo IsSelected($user, "admin", 0);
        ?>
>Пользователь</option>
     <option value="1" <?php 
        echo IsSelected($user, "admin", 1);
        ?>
>Оператор</option>
     <option value="2" <?php 
        echo IsSelected($user, "admin", 2);
        ?>
>Администратор</option>
   </select>
</th></tr>
            <tr><th>Включить слежение</th><th><input type="checkbox" name="sniff" <?php 
        echo IsChecked($user, "sniff");
        ?>
 /></th></tr>
            <tr><th>Отладочная информация</th><th><input type="checkbox" name="debug" <?php 
        echo IsChecked($user, "debug");
        ?>
 /></th></tr>

<?php 
        if (IsBot($user['player_id'])) {
            ?>
            <tr><th colspan=2><a href="index.php?page=admin&session=<?php 
            echo $session;
            ?>
&mode=Users&action=bot_stop&player_id=<?php 
            echo $user['player_id'];
            ?>
" >[Остановить бота]</a></th></tr>
<?php 
        } else {
            ?>
            <tr><th colspan=2><a href="index.php?page=admin&session=<?php 
            echo $session;
            ?>
&mode=Users&action=bot_start&player_id=<?php 
            echo $user['player_id'];
            ?>
" >[Запустить бота]</a></th></tr>
<?php 
        }
        ?>
        </table></th>

        <th valign=top><table>
            <tr><th>Сортировка планет</th><th>
   <select name="settings_sort">
    <option value="0" <?php 
        echo IsSelected($user, "sortby", 0);
        ?>
 >порядку колонизации</option>
    <option value="1" <?php 
        echo IsSelected($user, "sortby", 1);
        ?>
 >координатам</option>
    <option value="2" <?php 
        echo IsSelected($user, "sortby", 2);
        ?>
 >алфавиту</option>
   </select>
</th></tr>
            <tr><th>Порядок сортировки</th><th>
   <select name="settings_order">
     <option value="0" <?php 
        echo IsSelected($user, "sortorder", 0);
        ?>
>по возрастанию</option>
     <option value="1" <?php 
        echo IsSelected($user, "sortorder", 1);
        ?>
>по убыванию</option>
   </select>
</th></tr>
            <tr><th>Скин</th><th><input type=text name="dpath" maxlength="80" size="40" value="<?php 
        echo $user['skin'];
        ?>
" /></th></tr>
            <tr><th>Использовать скин</th><th><input type="checkbox" name="design" <?php 
        echo IsChecked($user, "useskin");
        ?>
 /></th></tr>
            <tr><th>Декативировать проверку IP</th><th><input type="checkbox" name="deact_ip" <?php 
        echo IsChecked($user, "deact_ip");
        ?>
 /></th></tr>
            <tr><th>Количество зондов</th><th><input type="text" name="spio_anz" maxlength="2" size="2" value="<?php 
        echo $user['maxspy'];
        ?>
" /></th></tr>
            <tr><th>Количество сообщений флота</th><th><input type="text" name="settings_fleetactions" maxlength="2" size="2" value="<?php 
        echo $user['maxfleetmsg'];
        ?>
" /></th></tr>

            <tr><th colspan=2>&nbsp</th></tr>
            <tr><td class=c colspan=2>Статистика</td></tr>
            <tr><th>Очки (старые)</th><th><?php 
        echo nicenum($user['oldscore1'] / 1000);
        ?>
 / <?php 
        echo nicenum($user['oldplace1']);
        ?>
</th></tr>
            <tr><th>Флот (старые)</th><th><?php 
        echo nicenum($user['oldscore2']);
        ?>
 / <?php 
        echo nicenum($user['oldplace2']);
        ?>
</th></tr>
            <tr><th>Исследования (старые)</th><th><?php 
        echo nicenum($user['oldscore3']);
        ?>
 / <?php 
        echo nicenum($user['oldplace3']);
        ?>
</th></tr>
            <tr><th>Очки</th><th><?php 
        echo nicenum($user['score1'] / 1000);
        ?>
 / <?php 
        echo nicenum($user['place1']);
        ?>
</th></tr>
            <tr><th>Флот</th><th><?php 
        echo nicenum($user['score2']);
        ?>
 / <?php 
        echo nicenum($user['place2']);
        ?>
</th></tr>
            <tr><th>Исследования</th><th><?php 
        echo nicenum($user['score3']);
        ?>
 / <?php 
        echo nicenum($user['place3']);
        ?>
</th></tr>
            <tr><th>Дата старой статистики</th><th><?php 
        echo date("Y-m-d H:i:s", $user['scoredate']);
        ?>
</th></tr>
            <tr><th colspan=2><a href="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Users&action=recalc_stats&player_id=<?php 
        echo $user['player_id'];
        ?>
" >[Пересчитать статистику]</a></th></tr>

            <tr><th colspan=2>&nbsp</th></tr>
            <tr><td class=c colspan=2>Офицеры</td></tr>
            <tr><th colspan=2><table><tr>
<?php 
        $oname = array('Командир ОГейма', 'Адмирал', 'Инженер', 'Геолог', 'Технократ');
        $odesc = array('', '<font size=1 color=skyblue>&amp;nbsp;Макс. кол-во флотов +2</font>', '<font size=1 color=skyblue>Сокращает вдвое потери в обороне+10% больше энергии</font>', '<font size=1 color=skyblue>+10% доход от шахты</font>', '<font size=1 color=skyblue>+2 уровень шпионажа, 25% меньше времени на исследования</font>');
        $qname = array('CommanderOff', 'AdmiralOff', 'EngineerOff', 'GeologeOff', 'TechnocrateOff');
        $imgname = array('commander', 'admiral', 'ingenieur', 'geologe', 'technokrat');
        $now = time();
        foreach ($qname as $i => $qcmd) {
            $end = GetOfficerLeft($user['player_id'], $qname[$i]);
            $img = "";
            if ($end <= $now) {
                $img = "_un";
                $days = "";
            } else {
                $d = ($end - $now) / (60 * 60 * 24);
                if ($d > 0) {
                    $days = "&lt;font color=lime&gt;Активен&lt;/font&gt; ещё " . ceil($d) . " д.";
                }
            }
            echo "    <td align='center' width='35' class='header'>\n";
            echo "\t<img border='0' src='img/" . $imgname[$i] . "_ikon" . $img . ".gif' width='32' height='32' alt='" . $oname[$i] . "'\n";
            echo "\tonmouseover=\"return overlib('<center><font size=1 color=white><b>" . $days . "<br>" . $oname[$i] . "</font><br>" . $odesc[$i] . "<br></b></center>', LEFT, WIDTH, 150);\" onmouseout='return nd();'>\n";
            echo "    </td> <td><input type=\"text\" name=\"" . $qname[$i] . "\" size=\"3\" /></td>\n\n";
        }
        ?>
        </tr></table></th></tr>

            <tr><th colspan=2><i>Чтобы продлить офицера укажите необходимое количество дней в полях ввода</i></th></tr>

        </table></th>

        <th valign=top><table>
<?php 
        foreach ($resmap as $i => $gid) {
            echo "<tr><th>" . loca("NAME_{$gid}") . "</th><th><input type=\"text\" size=3 name=\"r{$gid}\" value=\"" . $user["r{$gid}"] . "\" /></th></tr>\n";
        }
        ?>
        <tr><th>Найденная Тёмная Материя</th><th><input type="text" size=5 name="dmfree" value="<?php 
        echo $user['dmfree'];
        ?>
" /></th></tr>
        <tr><th>Покупная Тёмная Материя</th><th><input type="text" size=5 name="dm" value="<?php 
        echo $user['dm'];
        ?>
" /></th></tr>
        </table></th>
    <tr><th colspan=3><input type="submit" value="Сохранить" /></th></tr>
    </form>
    </table>

    <br>
    <table> 
    <form action="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Users&action=create_planet&player_id=<?php 
        echo $user['player_id'];
        ?>
" method="POST" >
    <tr><td class=c colspan=20>Список планет</td></tr>
    <tr>
<?php 
        $query = "SELECT * FROM " . $db_prefix . "planets WHERE owner_id = '" . intval($_GET['player_id']) . "' ORDER BY g ASC, s ASC, p ASC, type DESC";
        $result = dbquery($query);
        $rows = dbrows($result);
        $counter = 0;
        while ($rows--) {
            $p = dbarray($result);
            ?>
    <td> <img src="<?php 
            echo GetPlanetSmallImage("../evolution/", $p);
            ?>
" width="32px" height="32px"></td>
    <td> <a href="index.php?page=admin&session=<?php 
            echo $session;
            ?>
&mode=Planets&cp=<?php 
            echo $p['planet_id'];
            ?>
"> <?php 
            echo $p['name'];
            ?>
 </a>
            [<a href="index.php?page=galaxy&session=<?php 
            echo $session;
            ?>
&galaxy=<?php 
            echo $p['g'];
            ?>
&system=<?php 
            echo $p['s'];
            ?>
"><?php 
            echo $p['g'];
            ?>
:<?php 
            echo $p['s'];
            ?>
:<?php 
            echo $p['p'];
            ?>
</a>] </td>
<?php 
            $counter++;
            if ($counter > 9) {
                $counter = 0;
                echo "</tr>\n<tr>\n";
            }
        }
        ?>
    </tr>
    <tr><td colspan=20> Координаты: <input name="g" size=2> <input name="s" size=2> <input name="p" size=2> <input type="submit" value="Создать планету"></td></tr>
    </form>
    </table>

    <br>
    <table>

<?php 
        if ($_GET['action'] === 'fleetlogs') {
            echo "<tr><td class=c colspan=12>Логи полётов</td></tr>\n";
            if ($_GET['from'] == 1) {
                $result = FleetlogsFromPlayer($user['player_id'], $FleetMissionList[$_GET['mission']]);
            } else {
                $result = FleetlogsToPlayer($user['player_id'], $FleetMissionList[$_GET['mission']]);
            }
            $anz = $rows = dbrows($result);
            echo "<tr><td class=c>N</td> <td class=c>Таймер</td> <td class=c>Задание</td> <td class=c>Отправлен</td> <td class=c>Прибывает</td><td class=c>Время полёта</td> <td class=c>Старт</td> <td class=c>Цель</td> <td class=c>Флот</td> <td class=c>Ресурсы на планете</td> <td class=c>Груз</td> <td class=c>САБ</td> </tr>\n";
            $bxx = 1;
            while ($rows--) {
                $fleet_obj = dbarray($result);
                $fleet_price = FleetPrice($fleet_obj);
                $points = $fleet_price['points'];
                $fpoints = $fleet_price['fpoints'];
                $style = "";
                if ($points >= 100000000) {
                    if ($fleet_obj['mission'] <= 2) {
                        $style = " style=\"background-color: FireBrick;\" ";
                    } else {
                        $style = " style=\"background-color: DarkGreen;\" ";
                    }
                }
                ?>
        <tr <?php 
                echo $style;
                ?>
 >

        <th <?php 
                echo $style;
                ?>
 > <?php 
                echo $bxx;
                ?>
 </th>

        <th <?php 
                echo $style;
                ?>
 >
<?php 
                echo "<table><tr {$style} ><th {$style} ><div id='bxx" . $bxx . "' title='" . ($fleet_obj['end'] - $now) . "' star='" . $fleet_obj['start'] . "'> </th>";
                echo "<tr><th {$style} >" . date("d.m.Y H:i:s", $fleet_obj['end']) . "</th></tr></table>";
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                echo FleetlogsMissionText($fleet_obj['mission']);
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 ><?php 
                echo date("d.m.Y", $fleet_obj['start']);
                ?>
 <br> <?php 
                echo date("H:i:s", $fleet_obj['start']);
                ?>
</th>
        <th <?php 
                echo $style;
                ?>
 ><?php 
                echo date("d.m.Y", $fleet_obj['end']);
                ?>
 <br> <?php 
                echo date("H:i:s", $fleet_obj['end']);
                ?>
</th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                echo "<nobr>" . BuildDurationFormat($fleet_obj['flight_time']) . "</nobr><br>";
                echo "<nobr>" . $fleet_obj['flight_time'] . " сек.</nobr>";
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                echo "[" . $fleet_obj['origin_g'] . ":" . $fleet_obj['origin_s'] . ":" . $fleet_obj['origin_p'] . "]";
                $u = LoadUser($fleet_obj['owner_id']);
                echo " <br>" . AdminUserName($u);
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                echo "[" . $fleet_obj['target_g'] . ":" . $fleet_obj['target_s'] . ":" . $fleet_obj['target_p'] . "]";
                $u = LoadUser($fleet_obj['target_id']);
                echo " <br>" . AdminUserName($u);
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                $fleetmap = array(202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215);
                foreach ($fleetmap as $i => $gid) {
                    $amount = $fleet_obj["ship" . $gid];
                    if ($amount > 0) {
                        echo loca("NAME_{$gid}") . ":" . nicenum($amount) . " ";
                    }
                }
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                $total = $fleet_obj['pm'] + $fleet_obj['pk'] + $fleet_obj['pd'];
                if ($total > 0) {
                    echo "М: " . nicenum($fleet_obj['pm']) . "<br>";
                    echo "К: " . nicenum($fleet_obj['pk']) . "<br>";
                    echo "Д: " . nicenum($fleet_obj['pd']);
                } else {
                    echo "-";
                }
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                $total = $fleet_obj['m'] + $fleet_obj['k'] + $fleet_obj['d'];
                if ($total > 0) {
                    echo "М: " . nicenum($fleet_obj['m']) . "<br>";
                    echo "К: " . nicenum($fleet_obj['k']) . "<br>";
                    echo "Д: " . nicenum($fleet_obj['d']);
                } else {
                    echo "-";
                }
                ?>
        </th>
        <th <?php 
                echo $style;
                ?>
 >
<?php 
                if ($fleet_obj['union_id']) {
                    echo $fleet_obj['union_id'];
                } else {
                    echo "-";
                }
                ?>
        </th>

        </tr>
<?php 
                $bxx++;
            }
            echo "<script language=javascript>anz={$anz};t();</script>\n";
        } else {
            ?>

    <tr><td class=c colspan=3>Логи полётов</td></tr>
    <tr><td>Задание</td><td>от <?php 
            echo $user['oname'];
            ?>
</td><td>на <?php 
            echo $user['oname'];
            ?>
</td></tr>
    <tr><td>Все</td><td><?php 
            echo LinkFleetsFrom($user, 0);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 0);
            ?>
</td></tr>
    <tr><td>Атака</td><td><?php 
            echo LinkFleetsFrom($user, 1);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 1);
            ?>
</td></tr>
    <tr><td>Совместная атака</td><td><?php 
            echo LinkFleetsFrom($user, 2);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 2);
            ?>
</td></tr>
    <tr><td>Транспорт</td><td><?php 
            echo LinkFleetsFrom($user, 3);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 3);
            ?>
</td></tr>
    <tr><td>Оставить</td><td><?php 
            echo LinkFleetsFrom($user, 4);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 4);
            ?>
</td></tr>
    <tr><td>Держаться</td><td><?php 
            echo LinkFleetsFrom($user, 5);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 5);
            ?>
</td></tr>
    <tr><td>Шпионаж</td><td><?php 
            echo LinkFleetsFrom($user, 6);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 6);
            ?>
</td></tr>
    <tr><td>Колонизировать</td><td><?php 
            echo LinkFleetsFrom($user, 7);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 7);
            ?>
</td></tr>
    <tr><td>Переработать</td><td><?php 
            echo LinkFleetsFrom($user, 8);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 8);
            ?>
</td></tr>
    <tr><td>Уничтожить</td><td><?php 
            echo LinkFleetsFrom($user, 9);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 9);
            ?>
</td></tr>
    <tr><td>Экспедиция</td><td><?php 
            echo LinkFleetsFrom($user, 15);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 15);
            ?>
</td></tr>
    <tr><td>Ракетная атака</td><td><?php 
            echo LinkFleetsFrom($user, 20);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 20);
            ?>
</td></tr>
    <tr><td>Атака (САБ)</td><td><?php 
            echo LinkFleetsFrom($user, 21);
            ?>
</td><td><?php 
            echo LinkFleetsTo($user, 21);
            ?>
</td></tr>
    </table>

<?php 
        }
        ?>

<?php 
    } else {
        $query = "SELECT * FROM " . $db_prefix . "users ORDER BY regdate DESC LIMIT 25";
        $result = dbquery($query);
        AdminPanel();
        echo "    </th> \n";
        echo "   </tr> \n";
        echo "</table> \n";
        echo "Новые пользователи:<br>\n";
        echo "<table>\n";
        echo "<tr><td class=c>Дата регистрации</td><td class=c>Главная планета</td><td class=c>Имя игрока</td></tr>\n";
        $rows = dbrows($result);
        while ($rows--) {
            $user = dbarray($result);
            $hplanet = GetPlanet($user['hplanetid']);
            echo "<tr><th>" . date("Y-m-d H:i:s", $user['regdate']) . "</th>";
            echo "<th>[" . $hplanet['g'] . ":" . $hplanet['s'] . ":" . $hplanet['p'] . "] <a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $hplanet['planet_id'] . "\">" . $hplanet['name'] . "</a></th>";
            echo "<th>" . AdminUserName($user) . "</th></tr>\n";
        }
        echo "</table>\n";
        ?>

    <br>
    <table>
<?php 
        $when = time() - 24 * 60 * 60;
        $query = "SELECT * FROM " . $db_prefix . "users WHERE lastclick >= {$when} ORDER BY oname ASC";
        $result = dbquery($query);
        $rows = dbrows($result);
        ?>
    <tr><td class=c>Активные за последние 24 часа (<?php 
        echo $rows;
        ?>
)</td></tr>
    <tr><td>
<?php 
        $first = true;
        while ($rows--) {
            $user = dbarray($result);
            if ($first) {
                $first = false;
            } else {
                echo ", ";
            }
            echo AdminUserName($user);
        }
        ?>
    </td></tr>
    </table>

<?php 
    }
    // Поиск пользователей
}
Example #6
0
?>
:<?php 
echo $aktplanet['p'];
?>
]</a> (<?php 
echo $GlobalUser['oname'];
?>
)  </td>

 </tr>
 <tr>
  <td colspan="4" class="c">Передвижения флота</td>
 </tr>

<?php 
$target = GetPlanet(intval($_GET['spid']));
$outofrange = false;
// Проверить радиус фаланги
if ($aktplanet['g'] != $target['g'] || $aktplanet["b42"] <= 0) {
    $outofrange = true;
} else {
    $range = $aktplanet["b42"] * $aktplanet["b42"] - 1;
    if (abs($aktplanet['s'] - $target['s']) > $range) {
        $outofrange = true;
    }
}
/*
    if ( $GlobalUser['vacation'] )            // Игрок в режиме отпуска.
    {
        echo "<font color=#FF0000><center>Режим отпуска минимум до  ".date ("Y-m-d H:i:s", $GlobalUser['vacation_until'])."</center></font>";
    }
function Admin_Broadcast()
{
    global $session;
    global $db_prefix;
    global $GlobalUser;
    $write_error = "";
    // Обработка POST-запроса.
    if (method() === "POST") {
        $cat = $_POST['cat'];
        $subj = $_POST['subj'];
        if ($subj === "") {
            $write_error = "<center><font color=#FF0000>Заполните тему</font><br/></center>\n";
        }
        $text = $_POST['text'];
        if ($text === "") {
            $write_error = "<center><font color=#FF0000>Введите текст сообщения</font><br/></center>\n";
        }
        if ($write_error === "") {
            if ($cat == 1) {
                $query = "SELECT * FROM " . $db_prefix . "users WHERE score1 < 5000;";
            } else {
                if ($cat == 2) {
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE place1 < 100;";
                } else {
                    if ($cat == 3) {
                        $query = "SELECT * FROM " . $db_prefix . "users WHERE admin = 1;";
                    } else {
                        $query = "SELECT * FROM " . $db_prefix . "users;";
                    }
                }
            }
            // Всем
            $ownhome = GetPlanet($GlobalUser['hplanetid']);
            $from = $GlobalUser['oname'] . " <a href=\"index.php?page=galaxy&galaxy=" . $ownhome['g'] . "&system=" . $ownhome['s'] . "&position=" . $ownhome['p'] . "&session={PUBLIC_SESSION}\">[" . $ownhome['g'] . ":" . $ownhome['s'] . ":" . $ownhome['p'] . "]</a>\n";
            $subj = $subj . " <a href=\"index.php?page=writemessages&session={PUBLIC_SESSION}&messageziel=" . $GlobalUser['player_id'] . "&re=1&betreff=Re:" . $subj . "\">\n" . "</a>\n";
            $text = str_replace('\\"', "&quot;", bb($text));
            $text = str_replace('\'', "&rsquo;", $text);
            $text = str_replace('\\`', "&lsquo;", $text);
            $result = dbquery($query);
            $usernum = $rows = dbrows($result);
            while ($rows--) {
                $user = dbarray($result);
                SendMessage($user['player_id'], $from, $subj, $text, 5);
            }
            if ($usernum > 0) {
                $write_error = "<center><font color=#00FF00>Сообщение отправлено {$usernum} пользователям.</font><br/></center>\n";
            } else {
                $write_error = "<center><font color=#00FF00>Адресаты не найдены.</font><br/></center>\n";
            }
        }
    }
    ?>

<?php 
    echo AdminPanel();
    ?>

<?php 
    echo $write_error;
    ?>

<table>
<form action="index.php?page=admin&session=<?php 
    echo $session;
    ?>
&mode=Broadcast" method="POST">

<tr><td>
Кому: <select name="cat">
<option value="0">Всем</option>
<option value="1">Новичкам (менее 5.000 очков)</option>
<option value="2">Игрокам из топ100</option>
<option value="3">Операторам</option>
</select>
</td></tr>

<tr><td>
Тема : <input name="subj" size=80>
</td></tr>

<tr><td>
<textarea cols='100' rows='20' name='text'></textarea>
</td></tr>

<tr><td>
<center><input type="submit" value="Отправить"></center>
</td></tr>

</form>
</table>

<?php 
}
Example #8
0
function RecalcFields($planet_id)
{
    global $db_prefix;
    $buildmap = array(1, 2, 3, 4, 12, 14, 15, 21, 22, 23, 24, 31, 33, 34, 41, 42, 43, 44);
    $planet = GetPlanet($planet_id);
    $fields = 0;
    if ($planet['type'] == 0 || $planet['type'] == 10003) {
        $maxfields = 1;
    } else {
        $maxfields = floor(pow($planet['diameter'] / 1000, 2));
    }
    // планета
    foreach ($buildmap as $i => $gid) {
        $fields += $planet["b{$gid}"];
    }
    $maxfields += 5 * $planet["b33"] + 3 * $planet["b41"];
    // терраформер и ЛБ
    $query = "UPDATE " . $db_prefix . "planets SET fields={$fields}, maxfields={$maxfields} WHERE planet_id={$planet_id};";
    dbquery($query);
}
if ($num) {
    if ($num > 1) {
        $msgs = loca("OVERVIEW_MSGS");
    } else {
        $msgs = "";
    }
    echo "<tr><th colspan=\"4\"><a href=\"index.php?page=messages&dsp=1&session={$session}\">  " . va(loca("OVERVIEW_NEWMSG"), $num, $msgs) . "   </th></tr>\n";
}
// Время сервера и список событий.
echo "<tr><th>    " . loca("OVERVIEW_TIME") . "   </th> <th colspan=3>" . date("D M j G:i:s", $now) . "</th></tr>\n";
echo "<tr><td colspan='4' class='c'>  " . loca("OVERVIEW_EVENTS") . "   </td> </tr>\n\n";
EventList();
// Показать, если у планеты есть луна.
$moonid = PlanetHasMoon($aktplanet['planet_id']);
if ($moonid) {
    $moonobj = GetPlanet($moonid);
    echo "<th>    " . $moonobj['name'] . "     <br>\n";
    echo "<a href=\"index.php?page=overview&session={$session}&cp=" . $moonid . "\"><img src=\"" . GetPlanetSmallImage(UserSkin(), $moonobj) . "\" width=\"50\" alt=\"" . loca("MOON") . "\" height=\"50\" ></a>\n";
    echo "</th>\n";
} else {
    echo "<th>\n</th>\n";
}
// Показать картинку планеты.
echo "<th colspan=\"2\">\n<img src=\"" . GetPlanetImage(UserSkin(), $aktplanet) . "\" width=\"200\" height=\"200\">\n";
$result = GetBuildQueue($aktplanet['planet_id']);
$cnt = dbrows($result);
if ($cnt > 0) {
    $queue = dbarray($result);
    $left = $queue['end'] - time();
    echo "<br><center>" . loca("NAME_" . $queue['tech_id']) . " ";
    if ($queue['destroy']) {
Example #10
0
 }
 echo "  <tr> \n";
 echo "    <!-- rank --> \n";
 echo "    <th> \n";
 echo "      {$place}&nbsp;&nbsp;\n\n";
 if ($diff < 0) {
     echo "      <a href='#' onmouseover='return overlib(\"<font color=lime>+" . abs($diff) . "</font><br/><font color=white>С " . date("Y-m-d H:i:s", $user['scoredate']) . "\");' onmouseout='return nd();'><font color='lime'>+</font></a> \n";
 } else {
     if ($diff > 0) {
         echo "      <a href='#' onmouseover='return overlib(\"<font color=red>-" . abs($diff) . "</font><br/><font color=white>С " . date("Y-m-d H:i:s", $user['scoredate']) . "\");' onmouseout='return nd();'><font color='red'>-</font></a> \n";
     } else {
         echo "      <a href='#' onmouseover='return overlib(\"<font color=87CEEB>*</font><br/><font color=white>С " . date("Y-m-d H:i:s", $user['scoredate']) . "\");' onmouseout='return nd();'><font color='87CEEB'>*</font></a> \n";
     }
 }
 echo "    </th> \n\n";
 $home = GetPlanet($user['hplanetid']);
 echo "    <!-- nick --> \n";
 echo "    <th> \n";
 if ($user['player_id'] == $GlobalUser['player_id']) {
     echo "<a href=\"#\" style='color:lime;'>\n";
     echo $user['oname'] . "</a>\n";
 } else {
     echo "       <a href=\"index.php?page=galaxy&no_header=1&session={$session}&p1=" . $home['g'] . "&p2=" . $home['s'] . "&p3=" . $home['p'] . "\" style='color:FFFFFF' >      \n\n";
     echo $user['oname'] . "</a> \n";
 }
 echo "    </th> \n\n";
 echo "    <!--  message-icon --> \n";
 echo "    <th> \n";
 if ($user['player_id'] != $GlobalUser['player_id']) {
     echo "      <a href=\"index.php?page=writemessages&session={$session}&messageziel=" . $user['player_id'] . "\"> \n";
     echo "        <img src=\"" . UserSkin() . "img/m.gif\" border=\"0\" alt=\"Написать сообщение\" /> \n";
function FleetSpan($fleet_entry)
{
    $mission = $fleet_entry['mission'];
    $assign = $fleet_entry['assign'];
    $dir = $fleet_entry['dir'];
    $dir = $dir | $assign << 4;
    $origin = GetPlanet($fleet_entry['origin_id']);
    $target = GetPlanet($fleet_entry['target_id']);
    $fleet = $fleet_entry;
    $owner = LoadUser($origin['owner_id']);
    $m = $fleet_entry['m'];
    $k = $fleet_entry['k'];
    $d = $fleet_entry['d'];
    if (0) {
    } else {
        if ($mission == 1) {
            if ($dir == 0) {
                echo "<span class='flight ownattack'>Ваш " . OverFleet($fleet, 0, "ownattack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownattack") . " отправлен на " . PlanetTo($target, "ownattack") . ". Задание: " . Cargo($m, $k, $d, "ownattack", "Атаковать") . "</span>";
            } else {
                if ($dir == 1) {
                    echo "<span class='return ownattack'>Ваш " . OverFleet($fleet, 0, "ownattack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownattack") . ", возвращается на " . PlanetTo($target, "ownattack") . ". Задание: " . Cargo($m, $k, $d, "ownattack", "Атаковать") . "</span>";
                } else {
                    if ($dir == 0x10) {
                        echo "<span class='attack'>Боевой " . OverFleet($fleet, 1, "attack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "attack") . " отправлен на " . PlanetTo($target, "attack") . ". Задание: Атаковать</span>";
                    }
                }
            }
        } else {
            if ($mission == 2) {
                if ($dir == 0) {
                    echo "<span class='federation'>Ваш " . OverFleet($fleet, 0, "ownfederation") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownfederation") . " отправлен на " . PlanetTo($target, "ownfederation") . ". Задание: " . Cargo($m, $k, $d, "ownfederation", "Совместная атака") . "</span>";
                } else {
                    if ($dir == 1) {
                        echo "<span class='return ownfederation'>Ваш " . OverFleet($fleet, 0, "ownfederation") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownfederation") . ", возвращается на " . PlanetTo($target, "ownfederation") . ". Задание: " . Cargo($m, $k, $d, "ownfederation", "Совместная атака") . "</span>";
                    } else {
                        if ($dir == 0x10) {
                            echo "<span class='attack'>Мирный " . OverFleet($fleet, 1, "attack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "attack") . " отправлен на " . PlanetTo($target, "attack") . ". Задание: Совместная атака</span>";
                        }
                    }
                }
            } else {
                if ($mission == 3) {
                    if ($dir == 0) {
                        echo "<span class='flight owntransport'>Ваш " . OverFleet($fleet, 0, "owntransport") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "owntransport") . " отправлен на " . PlanetTo($target, "owntransport") . ". Задание: " . Cargo($m, $k, $d, "owntransport", "Транспорт") . "</span>";
                    } else {
                        if ($dir == 1) {
                            echo "<span class='return owntransport'>Ваш " . OverFleet($fleet, 0, "owntransport") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "owntransport") . ", возвращается на " . PlanetTo($target, "owntransport") . ". Задание: " . Cargo($m, $k, $d, "owntransport", "Транспорт") . "</span>";
                        } else {
                            if ($dir == 0x10) {
                                echo "<span class='flight transport'>Мирный " . OverFleet($fleet, 1, "transport") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "transport") . " отправлен на " . PlanetTo($target, "transport") . ". Задание: Транспорт</span>";
                            }
                        }
                    }
                } else {
                    if ($mission == 4) {
                        if ($dir == 0) {
                            echo "<span class='flight owndeploy'>Ваш " . OverFleet($fleet, 0, "owndeploy") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "owndeploy") . " отправлен на " . PlanetTo($target, "owndeploy") . ". Задание: " . Cargo($m, $k, $d, "owndeploy", "Оставить") . "</span>";
                        } else {
                            if ($dir == 1) {
                                echo "<span class='return owndeploy'>Ваш " . OverFleet($fleet, 0, "owndeploy") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "owndeploy") . " отправлен на " . PlanetTo($target, "owndeploy") . ". Задание: " . Cargo($m, $k, $d, "owndeploy", "Оставить") . "</span>";
                            }
                        }
                    } else {
                        if ($mission == 5) {
                            if ($dir == 0) {
                                echo "<span class='flight ownhold'>Ваш " . OverFleet($fleet, 0, "ownhold") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownhold") . " отправлен на " . PlanetTo($target, "ownhold") . ". Задание: " . Cargo($m, $k, $d, "ownhold", "Держаться") . "</span>";
                            } else {
                                if ($dir == 1) {
                                    echo "<span class='return ownhold'>Ваш " . OverFleet($fleet, 0, "ownhold") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownhold") . ", возвращается на " . PlanetTo($target, "ownhold") . ". Задание: " . Cargo($m, $k, $d, "ownhold", "Держаться") . "</span>";
                                } else {
                                    if ($dir == 2) {
                                        echo "<span class='holding ownhold'>Ваш " . OverFleet($fleet, 0, "ownhold") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownhold") . ", находится на орбите " . PlanetFrom($target, "ownhold") . ". Задание: " . Cargo($m, $k, $d, "ownhold", "Держаться") . "</span>";
                                    } else {
                                        if ($dir == 0x20) {
                                            echo "<span class='flight hold'>Мирный " . OverFleet($fleet, 1, "hold") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "hold") . " отправлен на " . PlanetTo($target, "hold") . ". Задание: <span class='ownclass'>Держаться</span></span>";
                                        } else {
                                            if ($dir == 0x22) {
                                                echo "<span class='holding hold'>" . PlayerDetails($owner) . " удерживает альянсовый " . OverFleet($fleet, 1, "hold") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> с " . PlanetFrom($origin, "hold") . " на орбите " . PlanetFrom($target, "hold") . ". Задание: Держаться</span>";
                                            }
                                        }
                                    }
                                }
                            }
                        } else {
                            if ($mission == 6) {
                                if ($dir == 0) {
                                    echo "<span class='flight ownespionage'>Ваш " . OverFleet($fleet, 0, "ownespionage") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownespionage") . " отправлен на " . PlanetTo($target, "ownespionage") . ". Задание: " . Cargo($m, $k, $d, "ownespionage", "Шпионаж") . "</span>";
                                } else {
                                    if ($dir == 1) {
                                        echo "<span class='return ownespionage'>Ваш " . OverFleet($fleet, 0, "ownespionage") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownespionage") . ", возвращается на " . PlanetTo($target, "ownespionage") . ". Задание: " . Cargo($m, $k, $d, "ownespionage", "Шпионаж") . "</span>";
                                    } else {
                                        if ($dir == 0x10) {
                                            echo "<span class='flight espionage'>Боевой " . OverFleet($fleet, 1, "espionage") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "espionage") . " отправлен на " . PlanetTo($target, "espionage") . ". Задание: Шпионаж</span>";
                                        }
                                    }
                                }
                            } else {
                                if ($mission == 7) {
                                    if ($dir == 0) {
                                        echo "<span class='flight owncolony'>Ваш " . OverFleet($fleet, 0, "owncolony") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "owncolony") . " отправлен на позицию " . PlanetTo($target, "owncolony") . ". Задание: " . Cargo($m, $k, $d, "owncolony", "Колонизировать") . "</span>";
                                    } else {
                                        if ($dir == 1) {
                                            echo "<span class='return owncolony'>Ваш " . OverFleet($fleet, 0, "owncolony") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с позиции " . PlanetFrom($origin, "owncolony") . ", возвращается на " . PlanetTo($target, "owncolony") . ". Задание: " . Cargo($m, $k, $d, "owncolony", "Колонизировать") . "</span>";
                                        }
                                    }
                                } else {
                                    if ($mission == 8) {
                                        if ($dir == 0) {
                                            echo "<span class='flight ownharvest'>Ваш " . OverFleet($fleet, 0, "ownharvest") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownharvest") . " отправлен на " . PlanetTo($target, "ownharvest") . ". Задание: " . Cargo($m, $k, $d, "ownharvest", "Переработать") . "</span>";
                                        } else {
                                            if ($dir == 1) {
                                                echo "<span class='return ownharvest'>Ваш " . OverFleet($fleet, 0, "ownharvest") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownharvest") . " отправлен на " . PlanetTo($target, "ownharvest") . ". Задание: " . Cargo($m, $k, $d, "ownharvest", "Переработать") . "</span>";
                                            }
                                        }
                                    } else {
                                        if ($mission == 9) {
                                            if ($dir == 0) {
                                                echo "<span class='flight owndestroy'>Ваш " . OverFleet($fleet, 0, "owndestroy") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "owndestroy") . " отправлен на " . PlanetTo($target, "owndestroy") . ". Задание: " . Cargo($m, $k, $d, "owndestroy", "Уничтожить") . "</span>";
                                            } else {
                                                if ($dir == 1) {
                                                    echo "<span class='return owndestroy'>Ваш " . OverFleet($fleet, 0, "owndestroy") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "owndestroy") . ", возвращается на " . PlanetTo($target, "owndestroy") . ". Задание: " . Cargo($m, $k, $d, "owndestroy", "Уничтожить") . "</span>";
                                                } else {
                                                    if ($dir == 0x10) {
                                                        echo "<span class='flight destroy'>Боевой " . OverFleet($fleet, 1, "destroy") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "destroy") . " отправлен на " . PlanetTo($target, "destroy") . ". Задание: Уничтожить</span>";
                                                    }
                                                }
                                            }
                                        } else {
                                            if ($mission == 21) {
                                                if ($dir == 0) {
                                                    echo "<span class='attack'>Ваш " . OverFleet($fleet, 0, "ownattack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> с " . PlanetFrom($origin, "ownattack") . " отправлен на " . PlanetTo($target, "ownattack") . ". Задание: " . Cargo($m, $k, $d, "ownattack", "Атаковать") . "</span>";
                                                } else {
                                                    if ($dir == 1) {
                                                        echo "<span class='return ownattack'>Ваш " . OverFleet($fleet, 0, "ownattack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownattack") . ", возвращается на " . PlanetTo($target, "ownattack") . ". Задание: " . Cargo($m, $k, $d, "ownattack", "Атаковать") . "</span>";
                                                    } else {
                                                        if ($dir == 0x10) {
                                                            echo "<span class='attack'>Боевой " . OverFleet($fleet, 1, "attack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "attack") . " отправлен на " . PlanetTo($target, "attack") . ". Задание: Атаковать</span>";
                                                        } else {
                                                            if ($dir == 0x20) {
                                                                echo "<span class='ownattack'>Альянсовый " . OverFleet($fleet, 1, "ownattack") . "флот</a><a href='#' title='" . TitleFleet($fleet, 1) . "'></a> игрока " . PlayerDetails($owner) . " с " . PlanetFrom($origin, "ownattack") . " отправлен на " . PlanetTo($target, "ownattack") . ". Задание: Атаковать</span>";
                                                            }
                                                        }
                                                    }
                                                }
                                            } else {
                                                if ($mission == 15) {
                                                    if ($dir == 0) {
                                                        echo "<span class='flight owntransport'>Ваш " . OverFleet($fleet, 0, "ownexpedition") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> отправленный с " . PlanetFrom($origin, "ownexpedition") . " достигает позиции " . PlanetTo($target, "ownexpedition") . ". Задание: " . Cargo($m, $k, $d, "ownexpedition", "Экспедиция") . "</span>";
                                                    } else {
                                                        if ($dir == 1) {
                                                            echo "<span class='return owntransport'>Ваш " . OverFleet($fleet, 0, "ownexpedition") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a> возвращается на " . PlanetTo($target, "ownexpedition") . " после приказа " . Cargo($m, $k, $d, "ownexpedition", "Экспедиция") . "</span>";
                                                        } else {
                                                            if ($dir == 2) {
                                                                echo "<span class='holding owntransport'>Ваш " . OverFleet($fleet, 0, "ownexpedition") . "флот</a><a href='#' title='" . TitleFleet($fleet, 0) . "'></a>, отправленный с " . PlanetFrom($origin, "ownexpedition") . " исследует позицию " . PlanetFrom($target, "ownexpedition") . ". Задание: " . Cargo($m, $k, $d, "ownexpedition", "Экспедиция") . "</span>";
                                                            }
                                                        }
                                                    }
                                                } else {
                                                    if ($mission == 20) {
                                                        if ($dir == 0) {
                                                            echo "<span class='ownmissile'>Ракетная атака (" . $fleet_entry['ipm_amount'] . ") с " . PlanetFrom($origin, "") . " на " . PlanetTo($target, "own") . " ";
                                                            if ($fleet_entry['ipm_target'] > 0) {
                                                                echo "Основная цель " . loca("NAME_" . $fleet_entry['ipm_target']);
                                                            }
                                                            echo "</span>";
                                                        } else {
                                                            if ($dir == 0x10) {
                                                                echo "<span class='missile'>Ракетная атака (" . $fleet_entry['ipm_amount'] . ") с " . PlanetFrom($origin, "") . " на " . PlanetTo($target, "") . " ";
                                                                if ($fleet_entry['ipm_target'] > 0) {
                                                                    echo "Основная цель " . loca("NAME_" . $fleet_entry['ipm_target']);
                                                                }
                                                                echo "</span>";
                                                            }
                                                        }
                                                    } else {
                                                        echo "Задание Тип:{$mission}, Dir:{$dir}, Флот: " . TitleFleet($fleet, 0) . ", с " . PlanetFrom($origin, "") . " на " . PlanetTo($target, "") . ", " . Cargo($m, $k, $d, "", "Груз");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
Example #12
0
function Queue_Research_End($queue)
{
    global $db_prefix, $GlobalUser;
    $id = $queue['obj_id'];
    $lvl = $queue['level'];
    $planet_id = $queue['sub_id'];
    $player_id = $queue['owner_id'];
    // Рассчитать производство планеты с момента последнего обновления.
    $planet = GetPlanet($planet_id);
    $planet = ProdResources($planet, $planet['lastpeek'], $queue['end']);
    // Обновить уровень исследования в базе данных.
    $query = "UPDATE " . $db_prefix . "users SET " . ('r' . $id) . " = {$lvl} WHERE player_id = {$player_id}";
    dbquery($query);
    RemoveQueue($queue['task_id']);
    // Добавить очки.
    $res = ResearchPrice($id, $lvl);
    $m = $res['m'];
    $k = $res['k'];
    $d = $res['d'];
    $e = $res['e'];
    $points = $m + $k + $d;
    AdjustStats($queue['owner_id'], $points, 0, 1, '+');
    RecalcRanks();
    Debug("Исследование " . loca("NAME_{$id}") . " уровня {$lvl} для пользователя {$player_id} завершено.");
    if ($GlobalUser['player_id'] == $player_id) {
        InvalidateUserCache();
        $GlobalUser = LoadUser($player_id);
        // обновить данные текущего пользователя
    }
}
Example #13
0
function RocketAttack($fleet_id, $planet_id)
{
    global $UnitParam;
    $fleet = LoadFleet($fleet_id);
    $amount = $fleet['ipm_amount'];
    $primary = $fleet['ipm_target'];
    $origin = GetPlanet($fleet['start_planet']);
    $target = GetPlanet($planet_id);
    $origin_user = LoadUser($origin['owner_id']);
    $target_user = LoadUser($target['owner_id']);
    // Отбить атаку МПР перехватчиками
    $ipm = $amount;
    $abm = $target['d502'];
    $ipm = max(0, $ipm - $abm);
    $ipm_destroyed = $amount - $ipm;
    $target['d502'] -= $ipm_destroyed;
    $maxdamage = $ipm * 12000 * (1 + $origin_user['r109'] / 10);
    // Произвести атаку первичной цели
    if ($primary > 0 && $ipm > 0) {
        $armor = $UnitParam[$primary][0] * (1 + 0.1 * $target_user['r111']) / 10;
        $count = $target["d{$primary}"];
        $destroyed = min(floor($maxdamage / $armor), $count);
        $target["d{$primary}"] -= $destroyed;
        $maxdamage -= $destroyed * $armor;
        $maxdamage -= $destroyed;
    }
    // Расчитать потери обороны, если еще остались МПР
    if ($maxdamage > 0) {
        $defmap = array(401, 402, 403, 404, 405, 406, 407, 408, 502, 503);
        foreach ($defmap as $i => $id) {
            if ($id == $primary) {
                continue;
            }
            $armor = $UnitParam[$id][0] * (1 + 0.1 * $target_user['r111']) / 10;
            $count = $target["d{$id}"];
            if ($count == 0) {
                continue;
            }
            $destroyed = min(floor($maxdamage / $armor), $count);
            $target["d{$id}"] -= $destroyed;
            $maxdamage -= $destroyed * $armor;
            $maxdamage -= $destroyed;
            if ($maxdamage <= 0) {
                break;
            }
        }
    }
    // Записать назад потери обороны.
    SetPlanetDefense($planet_id, $target);
    // Изменить статистику игроков
    RecalcRanks();
    $text = "{$amount} ракетам из общего числа выпущенных ракет с планеты " . $origin['name'] . " <a href=# onclick=showGalaxy(" . $origin['g'] . "," . $origin['s'] . "," . $origin['p'] . "); >[" . $origin['g'] . ":" . $origin['s'] . ":" . $origin['p'] . "]</a>  ";
    $text .= "удалось попасть на Вашу планету " . $target['name'] . " <a href=# onclick=showGalaxy(" . $target['g'] . "," . $target['s'] . "," . $target['p'] . "); >[" . $target['g'] . ":" . $target['s'] . ":" . $target['p'] . "]</a> !<br>";
    if ($ipm_destroyed) {
        $text .= "{$ipm_destroyed} ракет(-ы) было уничтожено Вашими ракетами-перехватчиками<br>:<br>";
    }
    $defmap = array(503, 502, 408, 407, 406, 405, 404, 403, 402, 401);
    $text .= "<table width=400><tr><td class=c colspan=4>Поражённая оборона</td></tr>";
    $n = 0;
    foreach ($defmap as $i => $gid) {
        if ($n % 2 == 0) {
            $text .= "</tr>";
        }
        if ($target["d{$gid}"]) {
            $text .= "<td>" . loca("NAME_{$gid}") . "</td><td>" . nicenum($target["d{$gid}"]) . "</td>";
            $n++;
        }
    }
    $text .= "</table><br>\n";
    // Обновить активность на планете.
    $queue = GetFleetQueue($fleet_id);
    UpdatePlanetActivity($planet_id, $queue['end']);
    SendMessage($target_user['player_id'], "Командование флотом", "Ракетная атака", $text, 2);
}
Example #14
0
    $source_id = 0;
}
if (key_exists('zm', $_POST)) {
    $target_id = intval($_POST['zm']);
} else {
    $target_id = 0;
}
$total = 0;
foreach ($fleetmap as $i => $gid) {
    if (!key_exists("c{$gid}", $_POST)) {
        $_POST["c{$gid}"] = 0;
    }
    $total += floor(abs(intval($_POST["c{$gid}"])));
}
$source = GetPlanet($source_id);
$target = GetPlanet($target_id);
if ($source['type'] != 0) {
    $GateError .= "<center>\nС какой луны?<br></center>\n";
}
if ($target['type'] != 0) {
    $GateError .= "<center>\nНа какую луну?<br></center>\n";
}
if ($GateError === "") {
    if ($source["b43"] == 0) {
        $GateError .= "<center>\nНа исходной луне нет ворот<br></center>\n";
    }
    if ($target["b43"] == 0) {
        $GateError .= "<center>\nНа целевой луне нет ворот<br></center>\n";
    }
}
if ($GateError === "") {
Example #15
0
function Buddy_Outcome()
{
    global $GlobalUser;
    echo "<table width=\"519\">\n";
    echo " <tr><td class=\"c\" colspan=\"6\">" . loca("BUDDY_YOUR_REQUESTS") . "</td></tr>\n";
    $result = EnumOutcomeBuddy($GlobalUser['player_id']);
    $num = dbrows($result);
    if ($num) {
        $i = 1;
        echo " <tr>\n";
        echo " <th></th>\n";
        echo " <th>" . loca("BUDDY_USER") . "</th>\n";
        echo "  <th>" . loca("BUDDY_ALLY") . "</th>\n";
        echo "  <th>" . loca("BUDDY_COORD") . "</th>\n";
        echo "  <th>" . loca("BUDDY_TEXT") . "</th>\n";
        echo "  <th></th>\n";
        echo " </tr>\n";
        while ($num--) {
            $buddy = dbarray($result);
            $userto = LoadUser($buddy['request_to']);
            $home = GetPlanet($userto['hplanetid']);
            echo "  <tr>\n";
            echo " <th width=\"20\">{$i}</th>\n";
            echo "  <th><a href=\"index.php?page=writemessages&session=" . $_GET['session'] . "&messageziel=" . $userto['player_id'] . "\">" . $userto['oname'] . "</a></th>\n";
            if ($userto['ally_id'] > 0) {
                $ally = LoadAlly($userto['ally_id']);
                echo "    <th><a href=index.php?page=ainfo&session=" . $_GET['session'] . "&allyid=" . $userto['ally_id'] . " target='_ally'> ";
                echo $ally['tag'];
                if ($userto['allyrank'] == 0) {
                    echo "  (G)";
                }
                echo "</a></th>\n";
            } else {
                echo "    <th><a href=index.php?page=allianzen&session=" . $_GET['session'] . ">  </a></th>\n";
            }
            echo "  <th><a href=\"index.php?page=galaxy&galaxy=" . $home['g'] . "&system=" . $home['s'] . "&position=" . $home['p'] . "&session=" . $_GET['session'] . "\" >[" . $home['g'] . ":" . $home['s'] . ":" . $home['p'] . "]</a></th>\n";
            echo "  <th>" . $buddy['text'] . "</th>\n";
            echo "    <th width=\"100\"><a href=?page=buddy&session=" . $_GET['session'] . "&action=4&buddy_id=" . $buddy['buddy_id'] . ">" . loca("BUDDY_RECALL") . "</a></th>\n";
            echo "  </tr>\n";
            $i++;
        }
    } else {
        echo " <tr>   <th colspan=\"6\">" . loca("BUDDY_NO_REQUESTS") . "</th>  </tr>\n";
    }
    echo " <tr>  <td class=\"c\" colspan=\"6\"><a href=\"?page=buddy&session=" . $_GET['session'] . "\">" . loca("BUDDY_BACK") . "</a></td> </tr>\n";
    echo "</table><br><br><br><br>\n";
}
Example #16
0
     $SearchResult .= "<td class=\"c\">" . loca("SEARCH_PLACE") . "</td>\n";
     $SearchResult .= "</tr>\n";
 } else {
     if ($_POST['type'] === "allytag" || $_POST['type'] === "allyname") {
         $SearchResult .= "<tr>\n";
         $SearchResult .= "<td class=\"c\">" . loca("SEARCH_TAG") . "</td>\n";
         $SearchResult .= "<td class=\"c\">" . loca("SEARCH_NAME") . "</td>\n";
         $SearchResult .= "<td class=\"c\">" . loca("SEARCH_MEMBERS") . "</td>\n";
         $SearchResult .= "<td class=\"c\">" . loca("SEARCH_POINTS") . "</td>\n";
         $SearchResult .= "</tr>\n";
     }
 }
 while ($rows--) {
     if ($_POST['type'] === "playername") {
         $user = dbarray($result);
         $homeplanet = GetPlanet(intval($user['hplanetid']));
         $ally = LoadAlly(intval($user['ally_id']));
         $name = $user['oname'];
         $buttons = "<a href=\"index.php?page=writemessages&session={$session}&messageziel=" . $user['player_id'] . "\" alt=\"" . loca("SEARCH_MESSAGE") . "\" ><img src=\"" . UserSkin() . "/img/m.gif\" alt=\"" . loca("SEARCH_MESSAGE") . "\" title=\"" . loca("SEARCH_MESSAGE") . "\" /></a><a href='index.php?page=buddy&session={$session}&action=7&buddy_id=" . $user['player_id'] . "' alt='" . loca("SEARCH_BUDDY") . "'><img src='" . UserSkin() . "/img/b.gif' border=0 alt='" . loca("SEARCH_BUDDY") . "' title='" . loca("SEARCH_BUDDY") . "'></a>";
         $allyurl = "ainfo.php?allyid=" . $user['ally_id'];
         if ($user['player_id'] == $GlobalUser['player_id']) {
             $name = "<font color=\"lime\">{$name}</font>";
             $buttons = "&nbsp;";
             $allyurl = "index.php?page=allianzen&session={$session}";
         } else {
             if ($user['ally_id'] == $GlobalUser['ally_id'] && $user['ally_id'] != 0) {
                 $name = "<font color=\"#87CEEB\">{$name}</font>";
                 $allyurl = "index.php?page=allianzen&session={$session}";
             }
         }
         $SearchResult .= "<tr>\n";
function PhalanxEventList($planet_id)
{
    $planet = GetPlanet($planet_id);
    $user = LoadUser($planet['owner_id']);
    $fleetmap = array(202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215);
    $result = EnumPlanetFleets($planet_id);
    $rows = dbrows($result);
    $task = array();
    $tasknum = 0;
    $unions = array();
    while ($rows--) {
        $fleet_obj = dbarray($result);
        $queue = GetFleetQueue($fleet_obj['fleet_id']);
        // Союзные флоты собираются отдельно
        if ($fleet_obj['union_id'] > 0 && $fleet_obj['target_planet'] == $planet_id && !$unions[$fleet_obj['union_id']]) {
            $task[$tasknum]['end_time'] = $queue['end'];
            // Флоты
            $acs_result = EnumUnionFleets($fleet_obj['union_id']);
            $task[$tasknum]['fleets'] = $acs_rows = dbrows($acs_result);
            $f = 0;
            while ($acs_rows--) {
                $fleet_obj = dbarray($acs_result);
                $task[$tasknum]['fleet'][$f] = array();
                foreach ($fleetmap as $id => $gid) {
                    $task[$tasknum]['fleet'][$f][$gid] = $fleet_obj["ship{$gid}"];
                }
                $task[$tasknum]['fleet'][$f]['owner_id'] = $fleet_obj['owner_id'];
                $task[$tasknum]['fleet'][$f]['origin_id'] = $fleet_obj['start_planet'];
                $task[$tasknum]['fleet'][$f]['target_id'] = $fleet_obj['target_planet'];
                $task[$tasknum]['fleet'][$f]['mission'] = GetMission($fleet_obj);
                $task[$tasknum]['fleet'][$f]['dir'] = 1;
                // на планету
                $f++;
            }
            $unions[$fleet_obj['union_id']] = 1;
            $tasknum++;
            continue;
        }
        if ($fleet_obj['union_id'] > 0 && $fleet_obj['target_planet'] == $planet_id && $fleet_obj['mission'] != 21) {
            continue;
        }
        // Не показывать отправление и возврат Оставить.
        if ($fleet_obj['mission'] == 104) {
            continue;
        }
        if ($fleet_obj['mission'] == 4 && $fleet_obj['start_planet'] == $planet_id) {
            continue;
        }
        // Не показывать возвращающиеся с целевой планеты флоты.
        if ($fleet_obj['mission'] > 100 && $fleet_obj['mission'] < 200 && $fleet_obj['target_planet'] == $planet_id) {
            continue;
        }
        // Время прибытия
        if ($fleet_obj['mission'] < 100 && $fleet_obj['start_planet'] == $planet_id) {
            if ($fleet_obj['mission'] != 15) {
                $task[$tasknum]['end_time'] = $queue['end'] + $fleet_obj['flight_time'];
            } else {
                $task[$tasknum]['end_time'] = $queue['end'];
            }
        } else {
            $task[$tasknum]['end_time'] = $queue['end'];
        }
        // Флот
        $task[$tasknum]['fleets'] = 1;
        $task[$tasknum]['fleet'][0] = array();
        foreach ($fleetmap as $i => $gid) {
            $task[$tasknum]['fleet'][0][$gid] = $fleet_obj["ship{$gid}"];
        }
        $task[$tasknum]['fleet'][0]['owner_id'] = $fleet_obj['owner_id'];
        $task[$tasknum]['fleet'][0]['origin_id'] = $fleet_obj['start_planet'];
        $task[$tasknum]['fleet'][0]['target_id'] = $fleet_obj['target_planet'];
        $task[$tasknum]['fleet'][0]['mission'] = GetMission($fleet_obj);
        if (GetMission($fleet_obj) == 15) {
            if ($fleet_obj['mission'] < 100) {
                $task[$tasknum]['fleet'][0]['dir'] = 1;
            } else {
                if ($fleet_obj['mission'] < 200) {
                    $task[$tasknum]['fleet'][0]['dir'] = 0;
                } else {
                    $task[$tasknum]['fleet'][0]['dir'] = 2;
                }
            }
        } else {
            if (GetMission($fleet_obj) == 5) {
                if ($fleet_obj['mission'] < 100) {
                    $task[$tasknum]['fleet'][0]['dir'] = 1;
                } else {
                    if ($fleet_obj['mission'] < 200) {
                        $task[$tasknum]['fleet'][0]['dir'] = 0;
                    } else {
                        $task[$tasknum]['fleet'][0]['dir'] = 2;
                    }
                }
            } else {
                if ($fleet_obj['target_planet'] == $planet_id) {
                    $task[$tasknum]['fleet'][0]['dir'] = 1;
                } else {
                    $task[$tasknum]['fleet'][0]['dir'] = 0;
                }
                // возврат
            }
        }
        if ($fleet_obj['mission'] == 20) {
            $task[$tasknum]['fleet'][0]['ipm_amount'] = $fleet_obj['ipm_amount'];
            $task[$tasknum]['fleet'][0]['ipm_target'] = $fleet_obj['ipm_target'];
        }
        $tasknum++;
        // Для убывающей экспедиции добавить псевдозадание удерживания.
        // Не показывать чужие флоты.
        if ($fleet_obj['mission'] == 15 && $fleet_obj['owner_id'] == $user['player_id']) {
            // Время отправления и прибытия
            $task[$tasknum]['end_time'] = $queue['end'] + $fleet_obj['deploy_time'];
            // Флот
            $task[$tasknum]['fleets'] = 1;
            $task[$tasknum]['fleet'][0] = array();
            foreach ($fleetmap as $i => $gid) {
                $task[$tasknum]['fleet'][0][$gid] = $fleet_obj["ship{$gid}"];
            }
            $task[$tasknum]['fleet'][0]['owner_id'] = $fleet_obj['owner_id'];
            $task[$tasknum]['fleet'][0]['origin_id'] = $fleet_obj['start_planet'];
            $task[$tasknum]['fleet'][0]['target_id'] = $fleet_obj['target_planet'];
            $task[$tasknum]['fleet'][0]['mission'] = GetMission($fleet_obj);
            $task[$tasknum]['fleet'][0]['dir'] = 2;
            $tasknum++;
        }
        // Для прибывающего задания Держаться добавить псевдозадание удерживания.
        if ($fleet_obj['mission'] == 5 && $fleet_obj['owner_id'] != $user['player_id']) {
            // Время отправления и прибытия
            $task[$tasknum]['end_time'] = $queue['end'] + $fleet_obj['deploy_time'];
            // Флот
            $task[$tasknum]['fleets'] = 1;
            $task[$tasknum]['fleet'][0] = array();
            foreach ($fleetmap as $i => $gid) {
                $task[$tasknum]['fleet'][0][$gid] = $fleet_obj["ship{$gid}"];
            }
            $task[$tasknum]['fleet'][0]['owner_id'] = $fleet_obj['owner_id'];
            $task[$tasknum]['fleet'][0]['origin_id'] = $fleet_obj['start_planet'];
            $task[$tasknum]['fleet'][0]['target_id'] = $fleet_obj['target_planet'];
            $task[$tasknum]['fleet'][0]['mission'] = GetMission($fleet_obj);
            $task[$tasknum]['fleet'][0]['dir'] = 2;
            $tasknum++;
        }
        // Для убывающих или удерживаемых экспедиций добавить псевдозадание возврата.
        if (($fleet_obj['mission'] == 15 || $fleet_obj['mission'] == 215) && $fleet_obj['owner_id'] == $user['player_id']) {
            // Время отправления и прибытия
            if ($fleet_obj['mission'] > 200) {
                $task[$tasknum]['end_time'] = $queue['end'] + $fleet_obj['deploy_time'];
            } else {
                $task[$tasknum]['end_time'] = $queue['end'] + $fleet_obj['deploy_time'] + $fleet_obj['flight_time'];
            }
            // Флот
            $task[$tasknum]['fleets'] = 1;
            $task[$tasknum]['fleet'][0] = array();
            foreach ($fleetmap as $i => $gid) {
                $task[$tasknum]['fleet'][0][$gid] = $fleet_obj["ship{$gid}"];
            }
            $task[$tasknum]['fleet'][0]['owner_id'] = $fleet_obj['owner_id'];
            $task[$tasknum]['fleet'][0]['origin_id'] = $fleet_obj['target_planet'];
            $task[$tasknum]['fleet'][0]['target_id'] = $fleet_obj['start_planet'];
            $task[$tasknum]['fleet'][0]['mission'] = GetMission($fleet_obj);
            $task[$tasknum]['fleet'][0]['dir'] = 0;
            $tasknum++;
        }
    }
    $anz = 0;
    if ($tasknum > 0) {
        sksort($task, 'end_time', true);
        // Сортировать по времени прибытия.
        $now = time();
        foreach ($task as $i => $t) {
            $seconds = max($t['end_time'] - $now, 0);
            if ($seconds <= 0) {
                continue;
            }
            if ($t['fleets'] > 1) {
                echo "<tr class=''>\n";
            } else {
                if ($t['direction'] == 1) {
                    echo "<tr class='flight'>\n";
                } else {
                    if ($t['direction'] == 0) {
                        echo "<tr class='return'>\n";
                    } else {
                        if ($t['direction'] == 2) {
                            echo "<tr class='holding'>\n";
                        }
                    }
                }
            }
            echo "<th><div id='bxx" . ($i + 1) . "' title='" . $seconds . "'star='" . $t['end_time'] . "'></div></th>\n";
            echo "<th colspan='3'>";
            for ($fl = 0; $fl < $t['fleets']; $fl++) {
                echo FleetSpan($t['fleet'][$fl]);
                if ($t['fleets'] > 1) {
                    echo "<br /><br />";
                }
            }
            echo "</th></tr>\n\n";
            $anz++;
        }
        if ($anz) {
            echo "<script language=javascript>anz=" . $anz . ";t();</script>\n\n";
        }
    }
}
    echo " </head>\n\n";
    echo " <body>\n";
    echo "  <center><font size=\"3\"><b>\n";
    echo "    <br /><br />\n";
    echo "    <font color=\"#FF0000\">Произошла ошбка</font>\n";
    echo "    <br /><br />\n";
    echo "    Эта функция доступна только после активации аккаунта.    \n";
    echo "    <br /><br />\n";
    echo "    Error-ID: 123456  </b></font></center>\n\n";
    echo " </body>\n";
    echo "</html>\n\n";
}
// *******************************************************************
$user = LoadUser(intval($_GET['messageziel']));
$home = GetPlanet($user['hplanetid']);
$ownhome = GetPlanet($GlobalUser['hplanetid']);
// Обработать POST-запрос.
if (key_exists('gesendet', $_GET)) {
    if ($_GET['gesendet'] == 1) {
        // Проверить активацию аккаунта.
        if (!$GlobalUser['validated']) {
            ob_clean();
            SendNotActivated();
            ob_end_flush();
            exit;
        }
        $subj = $_POST['betreff'];
        $text = $_POST['text'];
        if ($subj === "") {
            $write_error = "<center><font color=#FF0000>Не хватает темы</font><br/><br/></center>\n";
        } else {
Example #19
0
function ResearchNetwork($planetid, $id)
{
    global $db_prefix;
    $planet = GetPlanet($planetid);
    $player_id = $planet['owner_id'];
    $user = LoadUser($player_id);
    $ign = $user["r123"];
    $reslab = $planet["b31"];
    $labs = array();
    $labnum = 0;
    // Перечислить планеты игрока (луны и прочие спец-объекты не перечислять). Также пропускать планеты у которых нет ИЛ.
    $query = "SELECT * FROM " . $db_prefix . "planets WHERE owner_id = {$player_id} AND type < 10000 AND type > 0 AND b31 > 0";
    $result = dbquery($query);
    $pnum = dbrows($result);
    // Получить все доступные лабы, отсортированные по убыванию.
    while ($pnum--) {
        $p = dbarray($result);
        if ($p['planet_id'] == $planetid) {
            continue;
        }
        // Пропустить текущую планету.
        if (ResearchMeetRequirement($user, $p, $id)) {
            $labs[$labnum++] = $p["b31"];
        }
    }
    rsort($labs);
    //print_r ($labs ); echo "";
    // Присоединить +МИС доступных лабораторий.
    for ($i = 0; $i < $ign && $i < $labnum; $i++) {
        $reslab += $labs[$i];
    }
    //echo "$reslab <br>";
    return $reslab;
}
Example #20
0
$moons = $num = 0;
if ($planettype == 1 || $planettype == 3) {
    $result = EnumPlanets();
    $rows = dbrows($result);
    while ($rows--) {
        $planet = dbarray($result);
        if ($planet['type'] == 0) {
            $moons++;
        }
        if ($planettype == 1 && $planet['type'] == 0) {
            continue;
        }
        if ($planettype == 3 && $planet['type'] != 0) {
            continue;
        }
        $plist[$num] = GetPlanet($planet['planet_id']);
        $plist[$num] = ProdResources($plist[$num], $plist[$num]['lastpeek'], $now);
        $num++;
    }
}
$unitab = $GlobalUni;
$speed = $unitab['speed'];
$buildmap = array(1, 2, 3, 4, 12, 14, 15, 21, 22, 23, 24, 31, 33, 34, 41, 42, 43, 44);
$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, 502, 503);
$resmap = array(106, 108, 109, 110, 111, 113, 114, 115, 117, 118, 120, 121, 122, 123, 124, 199);
?>

<!-- CONTENT AREA -->
<div id='content'>
<center>
Example #21
0
function AddUnionMember($union_id, $name)
{
    global $db_prefix;
    global $GlobalUser;
    $union = LoadUnion($union_id);
    // Пустое имя, ничего не делаем.
    if ($name === "") {
        return "";
    }
    // Достигнуто максимальное количество пользователей
    if ($union['players'] >= 5) {
        return "Участвовать могут максимум 5 игроков!";
    }
    // Найти пользователя
    $name = mb_strtolower($name, 'UTF-8');
    $query = "SELECT * FROM " . $db_prefix . "users WHERE name = '" . $name . "' LIMIT 1";
    $result = dbquery($query);
    if (dbrows($result) == 0) {
        return "Пользователь не найден";
    }
    $user = dbarray($result);
    // Проверить есть ли уже такой пользователь в САБе.
    for ($i = 0; $i <= $union['players']; $i++) {
        if ($union["player"][$i] == $user['player_id']) {
            return "Такой пользователь уже добавлен в союз";
        }
        // есть.
    }
    // Проверить является ли пользователем другом или соалом.
    if (!IsBuddy($GlobalUser['player_id'], $user['player_id'])) {
        if ($user['ally_id']) {
            if ($user['ally_id'] != $GlobalUser['ally_id']) {
                return "Пользователь должен быть в списке друзей или одном альянсе";
            }
        } else {
            return "Пользователь должен быть в списке друзей или одном альянсе";
        }
    }
    // Добавить пользователя в САБ и послать ему сообщение о приглашении.
    $union['player'][$union['players']] = $user['player_id'];
    $query = "UPDATE " . $db_prefix . "union SET players = '" . implode(",", $union['player']) . "' WHERE union_id = {$union_id}";
    dbquery($query);
    $target_player = LoadUser($union['target_player']);
    $head_fleet = LoadFleet($union['fleet_id']);
    $target_planet = GetPlanet($head_fleet['target_planet']);
    $queue = GetFleetQueue($union['fleet_id']);
    $text = va("#1 приглашает Вас на миссию #2 против игрока #3 на планете <a href=\"#\" onClick=showGalaxy(#4,#5,#6)><b><u>[#7:#8:#9]</u></b></a>. ", $GlobalUser['oname'], $union['name'], $target_player['oname'], $target_planet['g'], $target_planet['s'], $target_planet['p'], $target_planet['g'], $target_planet['s'], $target_planet['p']) . va("Прибытие флота назначено на #1. ВНИМАНИЕ: время прибытия может измениться из-за скорости других задействованных флотов!", date("D M Y H:i:s", $queue['end']));
    SendMessage($user['player_id'], $GlobalUser['oname'], "Приглашение к совместной атаке", $text, 5);
    return "";
}
            // не считать зонды.
        }
        $expnum = GetExpeditionsCount($GlobalUser['player_id']);
        // Количество экспедиций
        $maxexp = floor(sqrt($GlobalUser['r124']));
        if ($expnum >= $maxexp) {
            FleetError("Слишком много одновременных экспедиций");
        } else {
            if ($manned == 0) {
                FleetError("Экспедиция должна состоять как минимум из одного управляемого людьми корабля.");
            } else {
                if (intval($_POST['planet']) != 16) {
                    FleetError("Цель экспедиции недействительна!");
                } else {
                    $id = CreateOuterSpace(intval($_POST['galaxy']), intval($_POST['system']), intval($_POST['planet']));
                    $target = GetPlanet($id);
                }
            }
        }
        break;
    default:
        FleetError("Необходимо выбрать задание!");
        break;
}
//Ваши флоты ввязались в бой.
if ($FleetError) {
    PageHeader("flottenversand", false, true, "flotten1", 1);
    ?>

<!-- CONTENT AREA -->
<div id='content'>
Example #23
0
function Admin_Bans()
{
    global $session;
    global $db_prefix;
    global $GlobalUser;
    // Обработка POST-запроса.
    if (method() === "POST" && $GlobalUser['admin'] >= 1) {
        if ($_GET['action'] === 'search') {
            // Результаты поиска
            switch (intval($_POST['searchby'])) {
                case 0:
                    // Забаненных с РО
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE banned = 1 AND vacation = 1";
                    break;
                case 1:
                    // Забаненных без РО
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE banned = 1 AND vacation = 0";
                    break;
                case 2:
                    // Блокировка атак
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE noattack = 1";
                    break;
                case 3:
                    // Зарегистрированных недавно (дней)
                    $when = time() - intval($_POST['text']) * 24 * 60 * 60;
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE regdate >= {$when}";
                    break;
                case 4:
                    // Имя пользователя (примерное)
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE oname LIKE '" . $_POST['text'] . "%' ";
                    break;
                case 5:
                    // Тег альянса
                    $query = "SELECT ally_id FROM " . $db_prefix . "ally WHERE tag LIKE '%" . $_POST['text'] . "%' ";
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE ally_id = ANY ({$query}) ";
                    break;
                case 6:
                    // Одинаковый адрес email
                    $query = "SELECT * FROM " . $db_prefix . "users WHERE email = LIKE '%" . $_POST['text'] . "%' OR pemail = LIKE '%" . $_POST['text'] . "%' ";
                    break;
                case 7:
                    // Одинаковый IP
                    $query = "SELECT * FROM " . $db_prefix . "users AS t1 INNER JOIN ( \r\nSELECT ip_addr,COUNT(*) FROM " . $db_prefix . "users GROUP BY ip_addr HAVING COUNT(*)>1) as t2 \r\nON t1.ip_addr = t2.ip_addr ORDER BY t1.ip_addr ASC, t1.name ASC";
                    break;
                default:
                    $query = '';
            }
            $result = dbquery($query);
            $rows0 = $rows = dbrows($result);
            echo AdminPanel();
            ?>

<script>

function SetClearCheckbox (status)
{
    var theForm = document.getElementById('banform');
    for (i=0,n=theForm.elements.length;i<n;i++)
    {
        if (theForm.elements[i].className.indexOf('ids') !=-1) {
            theForm.elements[i].checked = status;
        }
    }
}

</script>

<!-- Результаты поиска -->
<table>
<form id="banform" action="index.php?page=admin&session=<?php 
            echo $session;
            ?>
&mode=Bans&action=ban" method="POST" >

<tr> <td class=c> <input type="checkbox" onclick="SetClearCheckbox(this.checked);"> ID</td> <td class=c>Имя</td> <td class=c>Главная планета</td> <td class=c>Постоянный адрес</td> <td class=c>Временный адрес</td> <td class=c>IP адрес</td> <td class=c>Дата регистрации</td> </td>
<?php 
            if ($rows == 0) {
                echo "<tr><td colspan=7>Ничего не найдено. <a href=\"index.php?page=admin&session={$session}&mode=Bans\">Назад</a></td></tr>";
            }
            while ($rows--) {
                $user = dbarray($result);
                $hp = GetPlanet($user['hplanetid']);
                ?>
<tr> <th><input type="checkbox" name="id[<?php 
                echo $user['player_id'];
                ?>
]" class="ids"/><?php 
                echo $user['player_id'];
                ?>
</th> 
        <th><a><?php 
                echo AdminUserName($user);
                ?>
</a></th> 
        <th><?php 
                echo AdminPlanetCoord($hp);
                ?>
 <?php 
                echo AdminPlanetName($hp);
                ?>
</th> 
        <th><a><?php 
                echo $user['pemail'];
                ?>
</a></th> 
        <th><a><?php 
                echo $user['email'];
                ?>
</a></th> 
        <th><?php 
                echo $user['ip_addr'];
                ?>
</th> 
        <th><?php 
                echo date("m-d-Y H:i:s", $user['regdate']);
                ?>
</th> </tr>
<?php 
            }
            // while
            if ($rows0 > 0) {
                ?>
<tr><td class=c colspan=7>Действия</td></tr>
<tr> 
    <td colspan=6>
        <input type="radio" name="banmode" value="0"> <font color=firebrick><b>Бан без РО</b></font>
         <input type="radio" name="banmode" value="1" checked > <font color=red><b>Бан с РО</b></font> 
         <input type="radio" name="banmode" value="2"> <font color=yellow><b>Блок атак</b></font>
         <input type="radio" name="banmode" value="3"> <font color=lime><b>Разбанить</b></font>
         <input type="radio" name="banmode" value="4"> <font color=lime><b>Разрешить атаки</b></font>
    </td>
    <td><input name="days" type="text" size="5"> дней  <input name="hours" type="text" size="3"> часов</td> 

</tr>
<tr><th colspan=6> Причина: <textarea cols=40 rows=4 name="reason"><?php 
                echo "[url=mailto:" . $GlobalUser['pemail'] . "]контакт[/url]";
                ?>
</textarea></th><th><input type="submit" value="Отправить"></th></tr>
</form>
</table>
<?php 
            }
            die;
        }
        if ($_GET['action'] === 'ban') {
            // Забанить / разбанить
            $now = time();
            $reason = str_replace('\\"', "&quot;", bb($_POST['reason']));
            $reason = str_replace('\'', "&rsquo;", $reason);
            $reason = str_replace('\\`', "&lsquo;", $reason);
            $seconds = intval($_POST['days']) * 24 * 60 * 60 + intval($_POST['hours']) * 60 * 60;
            foreach ($_POST['id'] as $player_id => $checked) {
                $user = LoadUser($player_id);
                switch (intval($_POST['banmode'])) {
                    case 0:
                        // Добавить пользователя на столб позора
                        $entry = array(null, $GlobalUser['oname'], $user['oname'], $GlobalUser['player_id'], $user['player_id'], $now, $now + $seconds, $reason);
                        AddDBRow($entry, "pranger");
                        BanUser($player_id, $seconds, 0);
                        break;
                    case 1:
                        // Добавить пользователя на столб позора
                        $entry = array(null, $GlobalUser['oname'], $user['oname'], $GlobalUser['player_id'], $user['player_id'], $now, $now + $seconds, $reason);
                        AddDBRow($entry, "pranger");
                        BanUser($player_id, $seconds, 1);
                        break;
                    case 2:
                        // Добавить пользователя на столб позора
                        $entry = array(null, $GlobalUser['oname'], $user['oname'], $GlobalUser['player_id'], $user['player_id'], $now, $now + $seconds, $reason);
                        AddDBRow($entry, "pranger");
                        BanUserAttacks($player_id, $seconds);
                        break;
                    case 3:
                        UnbanUser($player_id);
                        break;
                    case 4:
                        UnbanUserAttacks($player_id);
                        break;
                }
            }
            // for
        }
    }
    ?>

<!-- Форма поиска -->

<?php 
    echo AdminPanel();
    ?>

<table>
<form action="index.php?page=admin&session=<?php 
    echo $session;
    ?>
&mode=Bans&action=search" method="POST" >

<tr><td class="c" colspan=2>Найти пользователей</td></tr>
<tr>
    <td>
            <select name="searchby">
                <option value="0">Забаненных с РО</option>
                <option value="1">Забаненных без РО</option>
                <option value="2">Блокировка атак</option>
                <option value="3">Зарегистрированных недавно (дней)</option>
                <option value="4">Имя пользователя (примерное)</option>
                <option value="5">Тег альянса</option>
                <option value="6">Одинаковый адрес email</option>
                <option value="7">Одинаковый IP</option>
            </select>
    </td>
    <td> <input type="text" name="text" size=20></td>
</tr>
<tr><td class="c" colspan=2> <input type="submit" value="Отправить" /></td></tr>

</form>
</table>

<?php 
}
Example #24
0
function QueueDesc($queue)
{
    global $session, $db_prefix;
    $type = $queue['type'];
    $sub_id = $queue['sub_id'];
    $obj_id = $queue['obj_id'];
    $level = $queue['level'];
    switch ($type) {
        case "Build":
            $query = "SELECT * FROM " . $db_prefix . "buildqueue WHERE id = " . $queue['sub_id'] . " LIMIT 1";
            $result = dbquery($query);
            $bqueue = dbarray($result);
            $planet_id = $bqueue['planet_id'];
            $planet = GetPlanet($planet_id);
            return "Постройка '" . loca("NAME_{$obj_id}") . "' ({$level}) на планете " . AdminPlanetName($planet);
        case "Demolish":
            $query = "SELECT * FROM " . $db_prefix . "buildqueue WHERE id = " . $queue['sub_id'] . " LIMIT 1";
            $result = dbquery($query);
            $bqueue = dbarray($result);
            $planet_id = $bqueue['planet_id'];
            $planet = GetPlanet($planet_id);
            return "Снос '" . loca("NAME_{$obj_id}") . "' ({$level}) на планете " . AdminPlanetName($planet);
        case "Shipyard":
            $planet = GetPlanet($sub_id);
            return "Задание на верфи: '" . loca("NAME_{$obj_id}") . "' ({$level}) на планете <a href=\"index.php?page=admin&session={$session}&mode=Planets&cp={$sub_id}\">" . $planet['name'] . "</a>";
        case "Research":
            $planet = GetPlanet($sub_id);
            return "Ведется исследование '" . loca("NAME_{$obj_id}") . "' ({$level}) с планеты <a href=\"index.php?page=admin&session={$session}&mode=Planets&cp={$sub_id}\">" . $planet['name'] . "</a>";
        case "UpdateStats":
            return "Сохранить старую статистику";
        case "RecalcPoints":
            return "Пересчитать статистику";
        case "RecalcAllyPoints":
            return "Пересчитать статистику альянсов";
        case "AllowName":
            return "Разрешить сменить имя";
        case "ChangeEmail":
            return "Обновить постоянный адрес почты";
        case "UnloadAll":
            return "Отгрузить всех игроков";
        case "CleanDebris":
            return "Чистка виртуальных ПО";
        case "CleanPlanets":
            return "Чистка уничтоженных планет";
        case "CleanPlayers":
            return "Удаление неактивных игроков и поставленных на удаление";
        case "UnbanPlayer":
            return "Разбанить игрока";
        case "AllowAttacks":
            return "Разрешить атаки";
        case "AI":
            $strat_id = $queue['sub_id'];
            $block_id = $queue['obj_id'];
            $query = "SELECT * FROM " . $db_prefix . "botstrat WHERE id = {$strat_id} LIMIT 1;";
            $result = dbquery($query);
            $strat = dbarray($result);
            $source = json_decode($strat['source'], true);
            foreach ($source['nodeDataArray'] as $i => $arr) {
                if ($arr['key'] == $block_id) {
                    $block_text = $arr['text'];
                    break;
                }
            }
            return "Задание бота (стратегия " . $strat['name'] . ") : <br>{$block_text}";
        case "CommanderOff":
            return "Заканчивается офицер: Командир";
        case "AdmiralOff":
            return "Заканчивается офицер: Адмирал";
        case "EngineerOff":
            return "Заканчивается офицер: Инженер";
        case "GeologeOff":
            return "Заканчивается офицер: Геолог";
        case "TechnocrateOff":
            return "Заканчивается офицер: Технократ";
    }
    return "Неизвестный тип задания (type={$type}, sub_id={$sub_id}, obj_id={$obj_id}, level={$level})";
}
Example #25
0
function SelectPlanet($player_id, $cp)
{
    global $db_prefix;
    $planet = GetPlanet($cp);
    // Нельзя выбирать чужие планеты.
    if ($planet['owner_id'] != $player_id) {
        return;
    }
    $query = "UPDATE " . $db_prefix . "users SET aktplanet = '" . $cp . "' WHERE player_id = '" . $player_id . "'";
    dbquery($query);
    InvalidateUserCache();
}
Example #26
0
function SelectPlanet($player_id, $cp)
{
    global $db_prefix;
    $planet = GetPlanet($cp);
    // Нельзя выбирать чужие планеты.
    if ($planet['owner_id'] != $player_id || $planet['type'] >= 10000) {
        Hacking("HACK_SELECT_PLANET");
        return;
    }
    $query = "UPDATE " . $db_prefix . "users SET aktplanet = '" . $cp . "' WHERE player_id = '" . $player_id . "'";
    dbquery($query);
    InvalidateUserCache();
}
Example #27
0
    echo "    <td class=\"l\"><input type=\"button\" name=\"systemLeft\" value=\"<-\" onClick=\"galaxy_submit('systemLeft')\"></td>\n";
    echo "    <td class=\"l\"><input type=\"text\" name=\"system\" value=\"" . $coord_s . "\" size=\"5\" maxlength=\"3\" tabindex=\"2\"></td>\n";
    echo "    <td class=\"l\"><input type=\"button\" name=\"systemRight\" value=\"->\" onClick=\"galaxy_submit('systemRight')\"></td>\n";
    echo "    </tr></table></td>\n";
    echo "</tr>\n\n";
    echo "<tr class='header'>\n";
    echo "    <td class='header' style=\"background-color:transparent;border:0px;\" colspan=\"2\" align=\"center\"> <input type=\"submit\" value=\"Показать\"></td>\n";
    echo "</tr>\n";
    echo "</table>\n";
    echo "</form>\n";
    /***** Форма запуска межпланетных ракет *****/
    $system_radius = abs($aktplanet['s'] - $coord_s);
    $ipm_radius = max(0, 5 * $GlobalUser['r117'] - 1);
    $show_ipm_button = $system_radius <= $ipm_radius && $aktplanet["d503"] > 0 && $aktplanet['g'] == $coord_g;
    if (isset($_GET['mode'])) {
        $target = GetPlanet(intval($_GET['pdd']));
        ?>

   <form action="index.php?page=galaxy&session=<?php 
        echo $session;
        ?>
&p1=<?php 
        echo $coord_g;
        ?>
&p2=<?php 
        echo $coord_s;
        ?>
&p3=<?php 
        echo $coord_p;
        ?>
&zp=<?php 
function Admin_Fleetlogs()
{
    global $session;
    global $db_prefix;
    global $GlobalUser;
    $now = time();
    // Обработка POST-запросов.
    $player_id = 0;
    if (method() === "POST" && $GlobalUser['admin'] >= 2) {
        if (key_exists("order_2min", $_POST)) {
            // -2 минуты до оконачания задания
            $id = intval($_POST['order_2min']);
            $queue = LoadQueue($id);
            $fleet_obj = LoadFleet($queue['sub_id']);
            if ($fleet_obj['union_id']) {
                UpdateUnionTime($fleet_obj['union_id'], $now + 2 * 60, 0, true);
            } else {
                $query = "UPDATE " . $db_prefix . "queue SET end=" . ($now + 2 * 60) . " WHERE task_id={$id}";
                dbquery($query);
            }
        }
        if (key_exists("order_end", $_POST)) {
            // Завершить задание
            $id = intval($_POST['order_end']);
            $queue = LoadQueue($id);
            $fleet_obj = LoadFleet($queue['sub_id']);
            if ($fleet_obj['union_id']) {
                UpdateUnionTime($fleet_obj['union_id'], $now, 0, true);
            } else {
                $query = "UPDATE " . $db_prefix . "queue SET end={$now} WHERE task_id={$id}";
                dbquery($query);
            }
        }
        if (key_exists("order_return", $_POST)) {
            // Развернуть флот
            $queue = LoadQueue(intval($_POST['order_return']));
            RecallFleet($queue['sub_id']);
        }
    }
    $query = "SELECT * FROM " . $db_prefix . "queue WHERE type='Fleet' ORDER BY end ASC";
    $result = dbquery($query);
    $anz = $rows = dbrows($result);
    $bxx = 1;
    AdminPanel();
    echo "<table>\n";
    echo "<tr><td class=c>N</td> <td class=c>Таймер</td> <td class=c>Задание</td> <td class=c>Отправлен</td> <td class=c>Прибывает</td><td class=c>Время полёта</td> <td class=c>Старт</td> <td class=c>Цель</td> <td class=c>Флот</td> <td class=c>Груз</td> <td class=c>Топливо</td> <td class=c>САБ</td> <td class=c colspan=3>Приказ</td> </tr>\n";
    while ($rows--) {
        $queue = dbarray($result);
        $fleet_obj = LoadFleet($queue['sub_id']);
        $fleet_price = FleetPrice($fleet_obj);
        $points = $fleet_price['points'];
        $fpoints = $fleet_price['fpoints'];
        $style = "";
        if ($points >= 100000000) {
            if ($fleet_obj['mission'] <= 2) {
                $style = " style=\"background-color: FireBrick;\" ";
            } else {
                $style = " style=\"background-color: DarkGreen;\" ";
            }
        }
        ?>

        <tr <?php 
        echo $style;
        ?>
 >

        <th <?php 
        echo $style;
        ?>
 > <?php 
        echo $bxx;
        ?>
 </th>

        <th <?php 
        echo $style;
        ?>
 >
<?php 
        echo "<table><tr {$style} ><th {$style} ><div id='bxx" . $bxx . "' title='" . ($queue['end'] - $now) . "' star='" . $queue['start'] . "'> </th>";
        echo "<tr><th {$style} >" . date("d.m.Y H:i:s", $queue['end']) . "</th></tr></table>";
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        echo FleetlogsMissionText($fleet_obj['mission']);
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 ><?php 
        echo date("d.m.Y", $queue['start']);
        ?>
 <br> <?php 
        echo date("H:i:s", $queue['start']);
        ?>
</th>
        <th <?php 
        echo $style;
        ?>
 ><?php 
        echo date("d.m.Y", $queue['end']);
        ?>
 <br> <?php 
        echo date("H:i:s", $queue['end']);
        ?>
</th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        echo "<nobr>" . BuildDurationFormat($fleet_obj['flight_time']) . "</nobr><br>";
        echo "<nobr>" . $fleet_obj['flight_time'] . " сек.</nobr>";
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        $planet = GetPlanet($fleet_obj['start_planet']);
        $user = LoadUser($planet['owner_id']);
        echo AdminPlanetName($planet) . " " . AdminPlanetCoord($planet) . " <br>";
        echo AdminUserName($user);
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        $planet = GetPlanet($fleet_obj['target_planet']);
        $user = LoadUser($planet['owner_id']);
        echo AdminPlanetName($planet) . " " . AdminPlanetCoord($planet) . " <br>";
        echo AdminUserName($user);
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        $fleetmap = array(202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215);
        foreach ($fleetmap as $i => $gid) {
            $amount = $fleet_obj["ship" . $gid];
            if ($amount > 0) {
                echo loca("NAME_{$gid}") . ":" . nicenum($amount) . " ";
            }
        }
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        $total = $fleet_obj['m'] + $fleet_obj['k'] + $fleet_obj['d'];
        if ($total > 0) {
            echo "М: " . nicenum($fleet_obj['m']) . "<br>";
            echo "К: " . nicenum($fleet_obj['k']) . "<br>";
            echo "Д: " . nicenum($fleet_obj['d']);
        } else {
            echo "-";
        }
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
        <?php 
        echo nicenum($fleet_obj['fuel']);
        ?>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
<?php 
        if ($fleet_obj['union_id']) {
            echo $fleet_obj['union_id'];
        } else {
            echo "-";
        }
        ?>
        </th>

        <th <?php 
        echo $style;
        ?>
 >
         <form action="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Fleetlogs" method="POST">
    <input type="hidden" name="order_2min" value="<?php 
        echo $queue['task_id'];
        ?>
" />
        <input type="submit" value="2m" />
     </form>
        </th>
        <th <?php 
        echo $style;
        ?>
 >
         <form action="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Fleetlogs" method="POST">
    <input type="hidden" name="order_end" value="<?php 
        echo $queue['task_id'];
        ?>
" />
        <input type="submit" value="F" />
     </form>
        </th><th <?php 
        echo $style;
        ?>
 >
         <form action="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Fleetlogs" method="POST">
    <input type="hidden" name="order_return" value="<?php 
        echo $queue['task_id'];
        ?>
" />
        <input type="submit" value="R" />
     </form>
        </th>
        </tr>

<?php 
        $bxx++;
    }
    echo "<script language=javascript>anz={$anz};t();</script>\n";
    echo "</table>\n";
}
Example #29
0
<?php

// Сообщения (пока вариант без Командира).
loca_add("menu", $GlobalUni['lang']);
if (key_exists('cp', $_GET)) {
    SelectPlanet($GlobalUser['player_id'], intval($_GET['cp']));
}
$GlobalUser['aktplanet'] = GetSelectedPlanet($GlobalUser['player_id']);
$now = time();
UpdateQueue($now);
$aktplanet = GetPlanet($GlobalUser['aktplanet']);
$aktplanet = ProdResources($aktplanet, $aktplanet['lastpeek'], $now);
UpdatePlanetActivity($aktplanet['planet_id']);
UpdateLastClick($GlobalUser['player_id']);
PageHeader("messages");
// *******************************************************************
$MAXMSG = 25;
// Количество сообщений на странице.
$uni = LoadUniverse();
DeleteExpiredMessages($GlobalUser['player_id']);
// Удалить сообщения которые хранятся дольше 24 часов.
// Заголовок таблицы
echo "<!-- CONTENT AREA -->\n";
echo "<div id='content'>\n";
echo "<center>\n";
//echo "GET: "; print_r ($_GET); echo "<br>";
//echo "POST: "; print_r ($_POST); echo "<br>";
if (method() === "POST") {
    //print_r ($_POST);
    $player_id = $GlobalUser['player_id'];
    if ($_POST['deletemessages'] === "deleteall") {
function Admin_Planets()
{
    global $loca_lang, $Languages;
    global $session;
    global $db_prefix;
    global $GlobalUser;
    $SearchResult = "";
    $buildmap = array(1, 2, 3, 4, 12, 14, 15, 21, 22, 23, 24, 31, 33, 34, 41, 42, 43, 44);
    $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, 502, 503);
    // Обработка POST-запроса.
    if (method() === "POST" && $GlobalUser['admin'] >= 2) {
        $cp = intval($_GET['cp']);
        $action = $_GET['action'];
        $now = time();
        //print_r ( $_POST);
        if ($action === "update") {
            $param = array('b1', 'b2', 'b3', 'b4', 'b12', 'b14', 'b15', 'b21', 'b22', 'b23', 'b24', 'b31', 'b33', 'b34', 'b41', 'b42', 'b43', 'b44', 'd401', 'd402', 'd403', 'd404', 'd405', 'd406', 'd407', 'd408', 'd502', 'd503', 'f202', 'f203', 'f204', 'f205', 'f206', 'f207', 'f208', 'f209', 'f210', 'f211', 'f212', 'f213', 'f214', 'f215', 'm', 'k', 'd', 'g', 's', 'p', 'diameter', 'type', 'temp', 'mprod', 'kprod', 'dprod', 'sprod', 'fprod', 'ssprod');
            $moon_param = array('g', 's', 'p');
            $query = "UPDATE " . $db_prefix . "planets SET lastpeek={$now}, ";
            foreach ($param as $i => $p) {
                if (strpos($p, "prod")) {
                    $query .= ", {$p}='" . $_POST[$p] . "'";
                } else {
                    if ($i == 0) {
                        $query .= "{$p}=" . intval($_POST[$p]);
                    } else {
                        $query .= ", {$p}=" . intval($_POST[$p]);
                    }
                }
            }
            $query .= " WHERE planet_id={$cp};";
            if (key_exists("delete_planet", $_POST)) {
                $planet = GetPlanet($cp);
                $user = LoadUser($planet['owner_id']);
                if ($user['hplanetid'] != $cp) {
                    DestroyPlanet($cp);
                    $_GET['cp'] = $user['hplanetid'];
                    // перенаправить на главную планету.
                }
            } else {
                // Обновить данные планеты
                $moon_id = PlanetHasMoon($cp);
                // Переместить луну за планетой.
                if ($moon_id) {
                    $mquery = "UPDATE " . $db_prefix . "planets SET lastpeek={$now}, ";
                    foreach ($moon_param as $i => $p) {
                        if ($i == 0) {
                            $mquery .= "{$p}=" . intval($_POST[$p]);
                        } else {
                            $mquery .= ", {$p}=" . intval($_POST[$p]);
                        }
                    }
                    $mquery .= " WHERE planet_id={$moon_id};";
                    dbquery($mquery);
                }
                dbquery($query);
                RecalcFields($cp);
            }
        } else {
            if ($action === "search") {
                $searchtype = $_POST['type'];
                if ($_POST['searchtext'] === "") {
                    $SearchResult .= "Укажите строку для поиска<br>\n";
                    $searchtype = "none";
                }
                if ($searchtype === "playername") {
                    $query = "SELECT player_id FROM " . $db_prefix . "users WHERE oname LIKE '" . $_POST['searchtext'] . "%'";
                    $query = "SELECT * FROM " . $db_prefix . "planets WHERE owner_id = ANY ({$query});";
                } else {
                    if ($searchtype === "planetname") {
                        $query = "SELECT * FROM " . $db_prefix . "planets WHERE name LIKE '" . $_POST['searchtext'] . "%';";
                    } else {
                        if ($searchtype === "allytag") {
                            $query = "SELECT ally_id FROM " . $db_prefix . "ally WHERE tag LIKE '" . $_POST['searchtext'] . "%'";
                            $query = "SELECT player_id FROM " . $db_prefix . "users WHERE ally_id <> 0 AND ally_id = ANY ({$query})";
                            $query = "SELECT * FROM " . $db_prefix . "planets WHERE owner_id = ANY ({$query});";
                        }
                    }
                }
                if ($query) {
                    $result = dbquery($query);
                }
                $SearchResult .= "<table>\n";
                $rows = dbrows($result);
                if ($rows > 0) {
                    while ($rows--) {
                        $planet = dbarray($result);
                        $user = LoadUser($planet['owner_id']);
                        $SearchResult .= "<tr><th>" . date("Y-m-d H:i:s", $planet['date']) . "</th><th>" . AdminPlanetCoord($planet) . "</th>";
                        $SearchResult .= "<th><a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $planet['planet_id'] . "\">" . $planet['name'] . "</a></th>";
                        $SearchResult .= "<th><a href=\"index.php?page=admin&session={$session}&mode=Users&player_id=" . $user['player_id'] . "\">" . $user['oname'] . "</a></th></tr>\n";
                    }
                } else {
                    $SearchResult .= "Ничего не найдено<br>\n";
                }
                $SearchResult .= "</table>\n";
            }
        }
    }
    // Обработка GET-запроса.
    if (method() === "GET" && $GlobalUser['admin'] >= 2) {
        if (key_exists('cp', $_GET)) {
            $cp = intval($_GET['cp']);
        } else {
            $cp = 0;
        }
        if (key_exists('action', $_GET) && $cp) {
            $action = $_GET['action'];
        } else {
            $action = "";
        }
        $now = time();
        if ($action === "create_moon") {
            $planet = GetPlanet($cp);
            if ($planet['type'] > 0 && $planet['type'] < 10000) {
                if (PlanetHasMoon($cp) == 0) {
                    CreatePlanet($planet['g'], $planet['s'], $planet['p'], $planet['owner_id'], 0, 1, 20);
                }
            }
        } else {
            if ($action === "create_debris") {
                $planet = GetPlanet($cp);
                if ($planet['type'] > 0 && $planet['type'] < 10000) {
                    if (HasDebris($planet['g'], $planet['s'], $planet['p']) == 0) {
                        CreateDebris($planet['g'], $planet['s'], $planet['p'], $planet['owner_id']);
                    }
                }
            } else {
                if ($action === "cooldown_gates") {
                    $planet = GetPlanet($cp);
                    if ($planet['type'] == 0) {
                        $query = "UPDATE " . $db_prefix . "planets SET gate_until=0 WHERE planet_id=" . $planet['planet_id'];
                        dbquery($query);
                    }
                } else {
                    if ($action === "warmup_gates") {
                        $planet = GetPlanet($cp);
                        if ($planet['type'] == 0) {
                            $query = "UPDATE " . $db_prefix . "planets SET gate_until=" . ($now + 59 * 60 + 59) . " WHERE planet_id=" . $planet['planet_id'];
                            dbquery($query);
                        }
                    } else {
                        if ($action === "recalc_fields") {
                            RecalcFields($cp);
                        } else {
                            if ($action === "random_diam") {
                                $planet = GetPlanet($cp);
                                if (GetPlanetType($planet) == 1) {
                                    $p = $planet['p'];
                                    if ($p <= 3) {
                                        $diam = mt_rand(50, 120) * 72;
                                    } else {
                                        if ($p >= 4 && $p <= 6) {
                                            $diam = mt_rand(50, 150) * 120;
                                        } else {
                                            if ($p >= 7 && $p <= 9) {
                                                $diam = mt_rand(50, 120) * 120;
                                            } else {
                                                if ($p >= 10 && $p <= 12) {
                                                    $diam = mt_rand(50, 120) * 96;
                                                } else {
                                                    if ($p >= 13 && $p <= 15) {
                                                        $diam = mt_rand(50, 150) * 96;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    $query = "UPDATE " . $db_prefix . "planets SET diameter={$diam} WHERE planet_id=" . $planet['planet_id'];
                                    dbquery($query);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    if (key_exists("cp", $_GET)) {
        // Информация о планете.
        $planet = GetPlanet(intval($_GET['cp']));
        $user = LoadUser($planet['owner_id']);
        $moon_id = PlanetHasMoon($planet['planet_id']);
        $debris_id = HasDebris($planet['g'], $planet['s'], $planet['p']);
        $now = time();
        // Парсер шпионских докладов.
        ?>
<script>

function php_str_replace(search, replace, subject) {
    // http://kevin.vanzonneveld.net
    var s = subject;
    var ra = r instanceof Array, sa = s instanceof Array;
    var f = [].concat(search);
    var r = [].concat(replace);
    var i = (s = [].concat(s)).length;
    var j = 0;
    while (j = 0, i--) {
        if (s[i]) {
            while (s[i] = (s[i]+'').split(f[j]).join(ra ? r[j] || '' : r[0]), ++j in f){};
        }
    }
    return sa ? s : s[0];
}

function spio ()
{
    global $GlobalUni;

    //
    // Перечислить все технологии для всех языков, а также ресурсы
    //

    var TechNames = {
<?php 
        foreach ($Languages as $lang => $langname) {
            loca_add("common", $lang);
            loca_add("technames", $lang);
        }
        $old_lang = $loca_lang;
        foreach ($Languages as $lang => $langname) {
            $loca_lang = $lang;
            foreach ($buildmap as $i => $gid) {
                echo "\"" . loca("NAME_{$gid}") . "\": {$gid}, ";
            }
            foreach ($fleetmap as $i => $gid) {
                echo "\"" . loca("NAME_{$gid}") . "\": {$gid}, ";
            }
            foreach ($defmap as $i => $gid) {
                echo "\"" . loca("NAME_{$gid}") . "\": {$gid}, ";
            }
        }
        ?>
    };
    var ResNames = {
<?php 
        foreach ($Languages as $lang => $langname) {
            $loca_lang = $lang;
            echo "\"" . loca("METAL") . "\": 'm', ";
            echo "\"" . loca("CRYSTAL") . "\": 'k', ";
            echo "\"" . loca("DEUTERIUM") . "\": 'd', ";
        }
        $loca_lang = $old_lang;
        ?>
    };

    var text = document.getElementById ("spiotext" ).value;
    text = php_str_replace (".", "", text);
    text = php_str_replace (":", "", text);

    for ( var name in TechNames ) {
        var id = TechNames[name];
        pos = text.indexOf ( name );
        if ( pos > 0 ) {
            obj = text.substr ( pos );
            found = obj.match ("("+name+"[\\s]+)([0-9]{1,})");
            document.getElementById ( "obj" + id ) . value = parseInt(found[2]);
        }
    }

    for ( var name in ResNames ) {
        var id = ResNames[name];
        pos = text.indexOf ( name );
        if ( pos > 0 ) {
            obj = text.substr ( pos );
            found = obj.match ("("+name+"[\\s]+)([0-9]{1,})");
            document.getElementById ( "obj" + id ) . value = parseInt(found[2]);
        }
    }

}

function reset ()
{
    var ids = [
<?php 
        foreach ($buildmap as $i => $gid) {
            echo "{$gid}, ";
        }
        foreach ($fleetmap as $i => $gid) {
            echo "{$gid}, ";
        }
        foreach ($defmap as $i => $gid) {
            echo "{$gid}, ";
        }
        ?>
    ];

    for ( var i in ids ) {
        document.getElementById ( "obj" + ids[i] ) . value = 0;
    }
}
</script>

<?php 
        AdminPanel();
        echo "<table>\n";
        echo "<form action=\"index.php?page=admin&session={$session}&mode=Planets&action=update&cp=" . $planet['planet_id'] . "\" method=\"POST\" >\n";
        echo "<tr><td class=c colspan=2>Планета \"" . $planet['name'] . "\" (<a href=\"index.php?page=admin&session={$session}&mode=Users&player_id=" . $user['player_id'] . "\">" . $user['oname'] . "</a>)</td>\n";
        echo "       <td class=c >Постройки</td> <td class=c >Флот</td> <td class=c >Оборона</td> </tr>\n";
        echo "<tr><th><img src=\"" . GetPlanetImage(UserSkin(), $planet) . "\"> <br>Тип: " . $planet['type'];
        $pp = PlanetPrice($planet);
        echo "<br>Стоимость : " . nicenum($pp['points'] / 1000);
        echo "<br>Постройки : " . nicenum(($pp['points'] - ($pp['fleet_pts'] + $pp['defense_pts'])) / 1000);
        echo "<br>Флот : " . nicenum($pp['fleet_pts'] / 1000);
        echo "<br>Оборона : " . nicenum($pp['defense_pts'] / 1000);
        if ($planet['type'] == 10000) {
            echo "<br>М: " . nicenum($planet['m']) . "<br>К: " . nicenum($planet['k']) . "<br>";
        }
        echo "</th><th>";
        if ($planet['type'] > 0 && $planet['type'] < 10000) {
            if ($moon_id) {
                $moon = GetPlanet($moon_id);
                echo "<a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $moon['planet_id'] . "\"><img src=\"" . GetPlanetSmallImage(UserSkin(), $moon) . "\"><br>\n";
                echo $moon['name'] . "</a>";
            } else {
                echo "<a href=\"index.php?page=admin&session={$session}&mode=Planets&action=create_moon&cp=" . $planet['planet_id'] . "\" >Создать луну</a>\n";
            }
            echo "<br/><br/>\n";
            if ($debris_id) {
                $debris = GetPlanet($debris_id);
                echo "<a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $debris['planet_id'] . "\"><img src=\"" . UserSkin() . "planeten/debris.jpg\"><br>\n";
                echo $debris['name'] . "</a>";
                echo "<br>М: " . nicenum($debris['m']) . "<br>К: " . nicenum($debris['k']) . "<br>";
            } else {
                echo "<a href=\"index.php?page=admin&session={$session}&mode=Planets&action=create_debris&cp=" . $planet['planet_id'] . "\" >Создать поле обломков</a>\n";
            }
        } else {
            $parent = LoadPlanet($planet['g'], $planet['s'], $planet['p'], 1);
            echo "<a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $parent['planet_id'] . "\"><img src=\"" . GetPlanetSmallImage(UserSkin(), $parent) . "\"><br>\n";
            echo $parent['name'] . "</a>";
        }
        ?>
        <br><br><textarea rows=10 cols=10 id="spiotext"></textarea>
        <a href="#" onclick="javascript:spio();">Разобрать данные доклада</a> <br>
        <a href="#" onclick="javascript:reset();">Сбросить</a>
<?php 
        echo "</th>";
        echo "<th valign=top><table>\n";
        foreach ($buildmap as $i => $gid) {
            echo "<tr><th>" . loca("NAME_{$gid}");
            if ($gid == 43 && $planet['type'] == 0) {
                // управление воротами.
                if ($now >= $planet["gate_until"]) {
                    // ворота готовы
                    echo " <a href=\"index.php?page=admin&session={$session}&mode=Planets&action=warmup_gates&cp=" . $planet['planet_id'] . "\" >нагреть</a>";
                } else {
                    // ворота НЕ готовы
                    $delta = $planet["gate_until"] - $now;
                    echo " " . date('i\\m s\\s', $delta) . " <a href=\"index.php?page=admin&session={$session}&mode=Planets&action=cooldown_gates&cp=" . $planet['planet_id'] . "\">остудить</a>";
                }
            }
            echo "</th><th><nobr><input id=\"obj{$gid}\" type=\"text\" size=3 name=\"b{$gid}\" value=\"" . $planet["b{$gid}"] . "\" />";
            // управление шахтами и выработкой энергии.
            if ($gid == 1 && $planet['type'] != 0) {
                echo "<select name='mprod'>\n";
                for ($prc = 0; $prc <= 1; $prc += 0.1) {
                    echo "<option value='{$prc}' ";
                    if ($planet["mprod"] == $prc . "") {
                        echo " selected";
                    }
                    echo ">" . $prc * 100 . "</option>\n";
                }
                echo "</select>\n";
            }
            if ($gid == 2 && $planet['type'] != 0) {
                echo "<select name='kprod'>\n";
                for ($prc = 0; $prc <= 1; $prc += 0.1) {
                    echo "<option value='{$prc}' ";
                    if ($planet["kprod"] == $prc . "") {
                        echo " selected";
                    }
                    echo ">" . $prc * 100 . "</option>\n";
                }
                echo "</select>\n";
            }
            if ($gid == 3 && $planet['type'] != 0) {
                echo "<select name='dprod'>\n";
                for ($prc = 0; $prc <= 1; $prc += 0.1) {
                    echo "<option value='{$prc}' ";
                    if ($planet["dprod"] == $prc . "") {
                        echo " selected";
                    }
                    echo ">" . $prc * 100 . "</option>\n";
                }
                echo "</select>\n";
            }
            if ($gid == 4 && $planet['type'] != 0) {
                echo "<select name='sprod'>\n";
                for ($prc = 0; $prc <= 1; $prc += 0.1) {
                    echo "<option value='{$prc}' ";
                    if ($planet["sprod"] == $prc . "") {
                        echo " selected";
                    }
                    echo ">" . $prc * 100 . "</option>\n";
                }
                echo "</select>\n";
            }
            if ($gid == 12 && $planet['type'] != 0) {
                echo "<select name='fprod'>\n";
                for ($prc = 0; $prc <= 1; $prc += 0.1) {
                    echo "<option value='{$prc}' ";
                    if ($planet["fprod"] == $prc . "") {
                        echo " selected";
                    }
                    echo ">" . $prc * 100 . "</option>\n";
                }
                echo "</select>\n";
            }
            echo "</nobr></th></tr>\n";
        }
        echo "</table></th>\n";
        echo "<th valign=top><table>\n";
        foreach ($fleetmap as $i => $gid) {
            echo "<tr><th>" . loca("NAME_{$gid}") . "</th><th><nobr><input id=\"obj{$gid}\" type=\"text\" size=6 name=\"f{$gid}\" value=\"" . $planet["f{$gid}"] . "\" />";
            if ($gid == 212 && $planet['type'] != 0) {
                echo "<select name='ssprod'>\n";
                for ($prc = 0; $prc <= 1; $prc += 0.1) {
                    echo "<option value='{$prc}' ";
                    if ($planet["ssprod"] == $prc . "") {
                        echo " selected";
                    }
                    echo ">" . $prc * 100 . "</option>\n";
                }
                echo "</select>\n";
            }
            echo "</nobr></th></tr>\n";
        }
        echo "</table></th>\n";
        echo "<th valign=top><table>\n";
        foreach ($defmap as $i => $gid) {
            echo "<tr><th>" . loca("NAME_{$gid}") . "</th><th><input id=\"obj{$gid}\" type=\"text\" size=6 name=\"d{$gid}\" value=\"" . $planet["d{$gid}"] . "\" /></th></tr>\n";
        }
        echo "</table></th>\n";
        echo "</tr>\n";
        echo "<tr><th>Дата создания</th><th>" . date("Y-m-d H:i:s", $planet['date']) . "</th> <td colspan=10 class=c>Очередь построек</td></tr>";
        echo "<tr><th>Дата удаления</th><th>" . date("Y-m-d H:i:s", $planet['remove']) . "</th> <th colspan=3 rowspan=12 valign=top style='text-align: left;'> ";
        $query = "SELECT * FROM " . $db_prefix . "buildqueue WHERE planet_id = " . $planet['planet_id'] . " ORDER BY list_id ASC";
        $result = dbquery($query);
        $anz = dbrows($result);
        echo "<table>";
        $bxx = 1;
        $duration = 0;
        while ($row = dbarray($result)) {
            echo "<tr><td> <table><tr><th><div id='bxx" . $bxx . "' title='" . ($row['end'] - $row['start'] - ($now - ($row['start'] + $duration))) . "' star='" . $duration . "'></th>";
            echo "<tr><th>" . date("d.m.Y H:i:s", $row['end'] + $duration) . "</th></tr></table></td>";
            echo "<td><img width='32px' src='" . UserSkin() . "gebaeude/" . $row['tech_id'] . ".gif'></td>";
            echo "<td><b>" . loca("NAME_" . $row['tech_id']) . "</b><br>уровень " . $row['level'] . "</td></tr>";
            $bxx++;
            $duration += $row['end'] - $row['start'];
        }
        echo "</table>";
        echo "<script language=javascript>anz={$anz};t();</script>\n";
        ?>

<?php 
        echo "</th> </tr>";
        echo "<tr><th>Последняя активность</th><th>" . date("Y-m-d H:i:s", $planet['lastakt']) . "</th>  \n";
        echo "<input type=\"hidden\" name=\"type\" value=\"" . $planet['type'] . "\" >\n";
        echo "</th> </tr>\n";
        echo "<tr><th>Последнее обновление</th><th>" . date("Y-m-d H:i:s", $planet['lastpeek']) . "</th></tr>\n";
        echo "<tr><th>Диаметр <br><a href=\"index.php?page=admin&session={$session}&mode=Planets&action=random_diam&cp=" . $planet['planet_id'] . "\" >новый диаметр</a>  </th><th><input size=5 type=\"text\" name=\"diameter\" value=\"" . $planet['diameter'] . "\" /> км (" . $planet['fields'] . " из " . $planet['maxfields'] . " полей) ";
        echo "<a href=\"index.php?page=admin&session={$session}&mode=Planets&action=recalc_fields&cp=" . $planet['planet_id'] . "\" >пересчитать поля</a> ";
        echo "</th></tr>\n";
        echo "<tr><th>Температура</th><th>от <input size=5 type=\"text\" name=\"temp\" value=\"" . $planet['temp'] . "\" />°C до " . ($planet['temp'] + 40) . "°C</th></tr>\n";
        echo "<tr><th>Координаты</th><th>[<input type=\"text\" name=\"g\" value=\"" . $planet['g'] . "\" size=1 />:<input type=\"text\" name=\"s\" value=\"" . $planet['s'] . "\" size=2 />:<input type=\"text\" name=\"p\" value=\"" . $planet['p'] . "\" size=1 />]</th></tr>\n";
        echo "<tr><td class=c colspan=2>Ресурсы</td></tr>\n";
        echo "<tr><th>Металл</th><th><input id=\"objm\" type=\"text\" name=\"m\" value=\"" . ceil($planet['m']) . "\" /></th></tr>\n";
        echo "<tr><th>Кристалл</th><th><input id=\"objk\" type=\"text\" name=\"k\" value=\"" . ceil($planet['k']) . "\" /></th></tr>\n";
        echo "<tr><th>Дейтерий</th><th><input id=\"objd\" type=\"text\" name=\"d\" value=\"" . ceil($planet['d']) . "\" /></th></tr>\n";
        echo "<tr><th>Энергия</th><th>" . $planet['e'] . " / " . $planet['emax'] . "</th></tr>\n";
        echo "<tr><th>Коэффициент производства</th><th>" . $planet['factor'] . "</th></tr>\n";
        echo "<tr><th colspan=8><input type=\"submit\" value=\"Сохранить\" />  <input type=\"submit\" name=\"delete_planet\" value=\"Удалить\" /> </th></tr>\n";
        echo "</form>\n";
        echo "</table>\n";
    } else {
        $query = "SELECT * FROM " . $db_prefix . "planets ORDER BY date DESC LIMIT 25";
        $result = dbquery($query);
        AdminPanel();
        echo "    </th> \n";
        echo "   </tr> \n";
        echo "</table> \n";
        echo "Новые планеты:<br>\n";
        echo "<table>\n";
        echo "<tr><td class=c>Дата создания</td><td class=c>Координаты</td><td class=c>Планета</td><td class=c>Игрок</td></tr>\n";
        $rows = dbrows($result);
        while ($rows--) {
            $planet = dbarray($result);
            $user = LoadUser($planet['owner_id']);
            echo "<tr><th>" . date("Y-m-d H:i:s", $planet['date']) . "</th><th>" . AdminPlanetCoord($planet) . "</th>";
            echo "<th><a href=\"index.php?page=admin&session={$session}&mode=Planets&cp=" . $planet['planet_id'] . "\">" . $planet['name'] . "</a></th>";
            echo "<th>" . AdminUserName($user) . "</th></tr>\n";
        }
        echo "</table>\n";
        ?>
       </th> 
       </tr> 
    </table>
    Искать:<br>
 <form action="index.php?page=admin&session=<?php 
        echo $session;
        ?>
&mode=Planets&action=search" method="post">
 <table>
  <tr>
   <th>
    <select name="type">
     <option value="playername">Имя игрока</option>
     <option value="planetname" >Имя планеты</option>
     <option value="allytag" >Аббревиатура альянса</option>
    </select>
    &nbsp;&nbsp;
    <input type="text" name="searchtext" value=""/>
    &nbsp;&nbsp;
    <input type="submit" value="Искать" />
   </th>
  </tr>
 </table>
 </form>
<?php 
        if ($SearchResult !== "") {
            ?>
       </th> 
       </tr> 
    </table>
    Результаты поиска:<br>
    <?php 
            echo $SearchResult;
        }
    }
}