Example #1
0
function AllyPage_SearchResult($result)
{
    global $SearchResults;
    $SearchResults = "";
    $rows = dbrows($result);
    if ($rows == 0) {
        return;
    }
    $SearchResults .= "<table width=519>\n";
    $SearchResults .= "<tr><td class=c colspan=3>Результаты поиска альянса</th></tr>\n";
    $SearchResults .= "<tr><th><center>Аббревиатура альянса</center></th><th><center>Название альянса</center></th><th><center>Количество членов</center></th></tr>\n";
    if ($rows > 30) {
        $rows = 30;
    }
    for ($i = 0; $i < $rows; $i++) {
        $ally = dbarray($result);
        $enum = EnumerateAlly($ally['ally_id']);
        $players = dbrows($enum);
        $SearchResults .= "<tr><th><center>[<a href=\"index.php?page=bewerben&session=" . $_GET['session'] . "&allyid=" . $ally['ally_id'] . "\">" . $ally['tag'] . "</a>]</center></th>\n";
        $SearchResults .= "<th><center>" . $ally['name'] . "</center></th>\n";
        $SearchResults .= "<th><center>" . $players . "</center></th></tr>\n";
    }
    $SearchResults .= "</table><br>\n";
}
$ally = LoadAlly($GlobalUser['ally_id']);
$show = 0;
if (key_exists('show', $_GET)) {
    $show = intval($_GET['show']);
}
$sort = 1;
if (key_exists('sort', $_GET)) {
    $sort = intval($_GET['sort']) & 1;
}
if (method() === "POST") {
    if ($_POST['aktion'] === "Принять" && $show > 0) {
        $app = LoadApplication($show);
        $ally_id = $ally['ally_id'];
        $player_id = $app['player_id'];
        $newcomer = LoadUser($player_id);
        $result = EnumerateAlly($ally_id);
        // Разослать сообщения членам альянса и игроку о принятии.
        $rows = dbrows($result);
        while ($rows--) {
            $user = dbarray($result);
            SendMessage($user['player_id'], va("Альянс [#1]", $ally['tag']), "Общее сообщение", va("Игрок #1 был принят в наш альянс.", $newcomer['oname']), 0);
        }
        SendMessage($player_id, va("Альянс [#1]", $ally['tag']), va("Регистрация [#1] принята", $ally['tag']), va("Сердечно поздравляем, Вы теперь член альянса [#1]", $ally['tag']), 0);
        $query = "UPDATE " . $db_prefix . "users SET ally_id = {$ally_id}, allyrank = 1, joindate = {$now} WHERE player_id = {$player_id}";
        dbquery($query);
        RemoveApplication($show);
    }
    if ($_POST['aktion'] === "Отклонить" && $show > 0) {
        $app = LoadApplication($show);
        RemoveApplication($show);
        // Выслать сообщение об отказе.
Example #3
0
function CountAllyMembers($ally_id)
{
    global $db_prefix;
    if ($ally_id <= 0) {
        return 0;
    }
    $result = EnumerateAlly($ally_id);
    return dbrows($result);
}
function AllyPage_Takeover()
{
    global $GlobalUser;
    global $session;
    global $ally;
    global $AllianzenError;
    // Обменять званиями главу и "правую руку".
    if ($_GET['a'] == 18 && $_REQUEST['s'] == 1) {
        $now = time();
        $myrank = LoadRank($ally['ally_id'], $GlobalUser['allyrank']);
        if (!($myrank['rights'] & 0x100)) {
            $AllianzenError = "<center>\nНедостаточно прав для проведения операции<br></center>";
        } else {
            // Выслать всем участникам сообщение что власть поменялась (кроме самого главы).
            $from = va("Альянс [#1]", $ally['tag']);
            $subj = va("Смена власти в альянсе [#1]", $ally['tag']);
            $text = va("Игрок #1, обладающий титулом основателя альянса, покинул его", $GlobalUser['oname'], $ally['tag']);
            $result = EnumerateAlly($ally['ally_id']);
            $rows = dbrows($result);
            while ($rows--) {
                $user = dbarray($result);
                if ($user['player_id'] != $ally['owner_id']) {
                    SendMessage($user['player_id'], $from, $subj, $text, 0);
                }
            }
            // Поменять звания
            $newhead = LoadUser(intval($_REQUEST['uid']));
            $newhead_rank = LoadRank($ally['ally_id'], $newhead['allyrank']);
            if ($newhead['ally_id'] != $ally['ally_id'] || ($newhead_rank['rights'] & 0x100) == 0) {
                $AllianzenError = "<center>\nНедостаточно прав для проведения операции<br></center>";
                return;
            }
            SetUserRank($newhead['player_id'], $GlobalUser['allyrank']);
            SetUserRank($GlobalUser['player_id'], $newhead['allyrank']);
            // Установить нового хозяина альянса
            AllyChangeOwner($ally['ally_id'], $newhead['player_id']);
            ?>
<table width=519>
<form action="index.php?page=allianzen&session=<?php 
            echo $session;
            ?>
" method="POST">
<tr><td class=c>Вы утратили свой статус</td></tr><tr><th><br><input type="submit" value="OK"></th></tr></form></table><br><br><br><br>
<?php 
        }
        return;
    }
    // Ололош, любой игрок по этому параметру может взять на себя права главы, без всяких проверок.....
    if ($_GET['a'] == 18 && $_REQUEST['s'] == 2) {
        ?>
<table width=519>
<form action="index.php?page=allianzen&session=<?php 
        echo $session;
        ?>
" method="POST">
<tr><td class=c>Звание передано</td></tr><tr><th><br><input type="submit" value="OK"></th></tr></form></table><br><br><br><br>
<?php 
        return;
    }
    // Если открыть у НЕ главы страничку:
    if ($ally['owner_id'] != $GlobalUser['player_id']) {
        ?>
<table width=519>
<form action="index.php?page=allianzen&session=<?php 
        echo $session;
        ?>
&a=5" method=POST>
<tr><td class=c>Глава ещё активен</td></tr><tr><th><input type=submit value="Назад"></th></tr></form></table><br><br><br><br>
<?php 
        return;
    }
    // Перечислить всех игроков альянса с правами "правая рука". Если никого нет, то просто вывести кнопку "назад".
    $users = array();
    $rank_result = EnumRanks($ally['ally_id']);
    while ($rank = dbarray($rank_result)) {
        if ($rank['rights'] & 0x100) {
            $result = LoadUsersWithRank($ally['ally_id'], $rank['rank_id']);
            while ($user = dbarray($result)) {
                if ($user['player_id'] == $ally['owner_id']) {
                    continue;
                }
                // не показывать главу
                $user['rankname'] = $rank['name'];
                $users[] = $user;
            }
        }
    }
    if (count($users) == 0) {
        // Никто не найден, вывести кнопку "назад"
        ?>
<table width=519>
<form action="index.php?page=allianzen&session=<?php 
        echo $session;
        ?>
&a=5" method=POST>
<tr><td class=c></th></tr><tr><th><input type=submit value="Назад"></th></tr></form></table><br><br><br><br>
<?php 
    } else {
        // Перечислить найденных пользователей с рангом "правая рука"
        ?>
<table width=519>
<form action="index.php?page=allianzen&session=<?php 
        echo $session;
        ?>
&a=18" method=POST>
<input type=hidden name=s value=1>
<tr><td class=c colspan=2><?php 
        echo va("Перенять руководство над #1", "\"" . $ally['name'] . "\"");
        ?>
</td></tr>
<tr><th>Передача звания</th><th><select name=uid>
<?php 
        foreach ($users as $i => $user) {
            echo "  <option value=" . $user['player_id'] . ">" . $user['oname'] . " (Rang: " . $user['rankname'] . ")\n";
        }
        ?>
</select></th></tr>
<tr><th colspan=2><input type=submit value="Передать"></th></tr></form></table><br><br><br><br>
<?php 
    }
}
function PageAlly_MemberSettings()
{
    global $db_prefix;
    global $session;
    global $ally;
    global $GlobalUser;
    global $AllianzenError;
    $selected_user = 0;
    if (key_exists('u', $_GET)) {
        $selected_user = intval($_GET['u']);
    }
    if (method() === "GET" && $_GET['a'] == 13 && $selected_user) {
        $leaver = LoadUser($selected_user);
        $query = "UPDATE " . $db_prefix . "users SET ally_id = 0 WHERE player_id = {$selected_user}";
        dbquery($query);
        // Разослать сообщения членам альянса об исключении игрока
        $result = EnumerateAlly($ally['ally_id']);
        $rows = dbrows($result);
        while ($rows--) {
            $user = dbarray($result);
            SendMessage($user['player_id'], va("Альянс [#1]", $ally['tag']), "Общее сообщение", va("Игрок #1 исключён из альянса.", $leaver['oname']), 0);
        }
        // Сообщение игроку об исключении.
        SendMessage($leaver['player_id'], va("Альянс [#1]", $ally['tag']), va("Членство в альянсе [#1] окончено", $ally['tag']), va("Игрок #1 исключает Вас из альянса [#2] .<br>Теперь Вы можете зарегистрироваться снова", $GlobalUser['oname'], $ally['tag']), 0);
    }
    if (method() === "POST" && $_GET['a'] == 16 && $selected_user) {
        $newrank = intval($_POST['newrang']);
        $query = "UPDATE " . $db_prefix . "users SET allyrank = {$newrank} WHERE player_id = {$selected_user}";
        dbquery($query);
    }
    $now = time();
    $members = CountAllyMembers($ally['ally_id']);
    $sort1 = intval($_GET['sort1']);
    $sort2 = intval($_GET['sort2']) ^ 1;
    ?>
<script src="js/cntchar.js" type="text/javascript"></script><script src="js/win.js" type="text/javascript"></script><br>
<a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=5">Назад к обзору</a>
<table width=519>
<tr><td class='c' colspan='10'>Список членов (кол-во: <?php 
    echo $members;
    ?>
)</td></tr>
<tr>
    <th>N</th>
    <th><a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=7&sort1=1&sort2=<?php 
    echo $sort2;
    ?>
">Имя</a></th>
    <th> </th>
    <th><a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=7&sort1=2&sort2=<?php 
    echo $sort2;
    ?>
">Статус</a></th>
    <th><a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=7&sort1=3&sort2=<?php 
    echo $sort2;
    ?>
">Очки</a></th>
    <th><a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=7&sort1=0&sort2=<?php 
    echo $sort2;
    ?>
">Координаты</a></th>
    <th><a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=7&sort1=4&sort2=<?php 
    echo $sort2;
    ?>
">Вступление</a></th>
    <th><a href="index.php?page=allianzen&session=<?php 
    echo $session;
    ?>
&a=7&sort1=5&sort2=<?php 
    echo $sort2;
    ?>
">Неактивный</a></th>
    <th>Функция</th></tr>

<?php 
    $result = EnumerateAlly($ally['ally_id'], intval($_GET['sort1']), intval($_GET['sort2']));
    for ($i = 0; $i < $members; $i++) {
        $user = dbarray($result);
        $rank = LoadRank($user['ally_id'], $user['allyrank']);
        $hplanet = GetPlanet($user['hplanetid']);
        $days = floor(($now - $user['lastclick']) / (60 * 60 * 24));
        echo "<tr>";
        echo "<th>" . ($i + 1) . "</th>";
        echo "<th>" . $user['oname'] . "</th>";
        if ($GlobalUser['player_id'] != $user['player_id']) {
            echo "<th><a href=\"index.php?page=writemessages&session={$session}&messageziel=" . $user['player_id'] . "\"><img src=\"" . UserSkin() . "img/m.gif\" border=0 alt=\"Написать сообщение\"></a></th>";
        } else {
            echo "<th></th>";
        }
        echo "<th>" . $rank['name'] . "</th>";
        echo "<th>" . nicenum($user['score1'] / 1000) . "</th>";
        echo "<th><a href=\"index.php?page=galaxy&galaxy=" . $hplanet['g'] . "&system=" . $hplanet['s'] . "&position=" . $hplanet['p'] . "&session={$session}\" >[" . $hplanet['g'] . ":" . $hplanet['s'] . ":" . $hplanet['p'] . "]</a></th>";
        echo "<th>" . date("Y-m-d H:i:s", $user['joindate']) . "</th>";
        echo "<th>" . $days . "d</th>";
        if ($user['allyrank'] > 0) {
            echo "<th>";
            echo "<a onmouseover='return overlib(\"<font color=white>Выгнать игрока</font>\", WIDTH, 100);' onmouseout='return nd();' alt='Выгнать игрока' href='javascript:if(confirm(\"Вы уверены, что игрок " . $user['oname'] . " должен покинуть альянс?\"))document.location=\"index.php?page=allianzen&session={$session}&a=13&u=" . $user['player_id'] . "\"';>";
            echo "<img src='" . UserSkin() . "pic/abort.gif' alt='Выгнать игрока' border='0' ></a>";
            echo "<a onmouseover=\"return overlib('<font color=white>Назначить ранг</font>', WIDTH, 100);\" onmouseout='return nd();' alt='Назначить ранг' href=\"index.php?page=allianzen&session={$session}&a=7&u=" . $user['player_id'] . "\">";
            echo "<img src=\"" . UserSkin() . "pic/key.gif\" alt='Назначить ранг' border=0></a>&nbsp;&nbsp;&nbsp;&nbsp;";
            echo "</th>";
            echo "</tr>\n";
            if ($user['player_id'] == $selected_user) {
                $rank_result = EnumRanks($ally['ally_id']);
                $rows = dbrows($rank_result);
                echo "<form action=\"index.php?page=allianzen&session={$session}&a=16&u={$selected_user}\" method=POST><tr><th colspan=3>Ранг для " . $user['oname'] . ":</th><th><select name=\"newrang\">";
                while ($rows--) {
                    $user_rank = dbarray($rank_result);
                    if ($user_rank['rank_id'] == 0) {
                        continue;
                    }
                    echo "<option value=\"" . $user_rank['rank_id'] . "\"";
                    if ($user_rank['rank_id'] == $user['allyrank']) {
                        echo " SELECTED";
                    }
                    echo ">" . $user_rank['name'] . "\n";
                }
                echo "</th><th colspan=5><input type=submit value=\"Сохранить\"></th></tr></form>\n";
            }
        } else {
            echo "<th>&nbsp;</th></tr>\n";
        }
    }
    ?>

</table>
<?php 
}