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>
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> </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> </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>&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 = "<font color=lime>Активен</font> ещё " . 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 } // Поиск пользователей }
?> :<?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('\\"', """, bb($text)); $text = str_replace('\'', "’", $text); $text = str_replace('\\`', "‘", $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 }
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']) {
} echo " <tr> \n"; echo " <!-- rank --> \n"; echo " <th> \n"; echo " {$place} \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, "", "Груз"); } } } } } } } } } } } } } }
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); // обновить данные текущего пользователя } }
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); }
$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 === "") {
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"; }
$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 = " "; $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 {
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; }
$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>
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'>
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('\\"', """, bb($_POST['reason'])); $reason = str_replace('\'', "’", $reason); $reason = str_replace('\\`', "‘", $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 }
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})"; }
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(); }
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(); }
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"; }
<?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> <input type="text" name="searchtext" value=""/> <input type="submit" value="Искать" /> </th> </tr> </table> </form> <?php if ($SearchResult !== "") { ?> </th> </tr> </table> Результаты поиска:<br> <?php echo $SearchResult; } } }