<?php ob_start("ob_gzhandler"); session_start(); if (empty($_SESSION['uid'])) { header("Location: index.php"); exit; } include_once 'functions.php'; if (!$user->clan) { exit(err('Вы не состоите в клане!')); } try { $clanRow = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user->clan)->fetch_assoc(); $polno = unserialize($clanRow['vozm']) ?? []; } catch (Exception $e) { echo "MYSQL_ERROR: Таблицы clans не существует! Вся панель — одна сплошная ошибка!"; } define('COST_ADD_MEMBER', 100); define('COST_REMOVE_MEMBER', 30); define('CASTLE_REPUTATION_NEEDED', 1000000); define('CASTLE_COST', 25000); $status = null; $action = $_POST['action'] ?? 0; $login = $_POST['login'] ?? 0; $zamok = $_POST['zamok'] ?? null; $kr = $_POST['kr'] ?? null; $kolv = $_POST['kolv'] ?? null; $newClanStatus = $_POST['new_status'] ?? null; $vin = $_POST['vin'] ?? null; $tus = $_POST['tus'] ?? null; if ($zamok) { db::c()->query('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?i', $_SESSION['uid']); $status = "Начат сбор средств на строительство Кланового Замка."; header("Location: clan.php"); } if ($kr && $kolv > 0) { if ($user->money >= $kolv) { db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $kolv, $user->clan); db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $kolv, $user->id); header("Location: clan.php"); } else { $status = 'Не хватает денег!'; } } if ($login && $action == 'add_member' && $polno[$user->id][0] == 1) { $sok = db::c()->query('SELECT id, level, clan FROM users WHERE align = 0 AND login = "?s"', $login)->fetch_assoc(); $proverka = db::c()->query('SELECT 1 FROM users_effects WHERE type = 20 AND owner_id = ?i', $sok['id'])->getNumRows(); if (!$proverka) { echo "Нет проверки!"; } elseif ($sok['clan']) { echo 'Персонаж уже состоит в клане!'; } elseif ($sok['level'] > 0 && $user->money >= COST_ADD_MEMBER) { db::c()->query('UPDATE users SET money = money - ?i WHERE `id` = ?i', COST_ADD_MEMBER, $_SESSION['uid']); db::c()->query('UPDATE users SET clan = "?s", align = ?i WHERE id = ?i', $clanRow['id'], $clanRow['align'], $sok['id']); $status = 'Персонаж «' . $login . '» успешно принят в клан.'; } else { $status = 'Не хватает денег, или персонажа не существует.'; } } if ($login && $action == 'remove_member' && $polno[$user->id][0] == 1) { $sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc(); if ($sok['id'] != $clanRow['glava'] && $user->money >= COST_REMOVE_MEMBER) { db::c()->query('UPDATE users SET money = money - ?i WHERE id = ?i', COST_REMOVE_MEMBER, $_SESSION['uid']); db::c()->query('UPDATE users SET clan = "?s", align = 0 WHERE id = ?i', '', $sok['id']); $status = 'Персонаж «' . $login . '» покинул клан.'; } } if ($login && $action == 'change_owner' && $clanRow['glava'] == $_SESSION['uid']) { $sok = db::c()->query('SELECT id FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc(); db::c()->query('UPDATE clans SET glava = ?i WHERE id = ?i', $sok['id'], $clanRow['id']); db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', '', $sok['id']); db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', 'Боец', $_SESSION['uid']); $clanRow['glava'] = $sok['id']; } if ($login && $action == 'edit_status') { $sok = db::c()->query('SELECT id, status FROM users WHERE clan = "?s" AND login = "?s"', $clanRow['id'], $login)->fetch_assoc(); if ($sok['id'] != $clanRow['glava']) { if ($newClanStatus) { $st = strip_tags(str_replace("<", "<", str_replace(">", ">", $newClanStatus)), "<B><I><U>"); db::c()->query('UPDATE users SET status = "?s" WHERE id = ?i', $st, $sok['id']); $sok['status'] = $st; } if ($clanRow['glava'] == $_SESSION['uid']) { if ($vin) { $polno[$sok['id']][0] = 1; } else { $polno[$sok['id']][0] = 0; } if ($tus) { $polno[$sok['id']][1] = 1; } else { $polno[$sok['id']][1] = 0; } db::c()->query('UPDATE clans SET vozm = "?s" WHERE id = ?i', serialize($polno), $clanRow['id']); } } else { $status = 'Главу клана редактировать запрещено!'; } } $clan_memberlist = db::c()->query('SELECT `id`, `login`, `status`, `level`, `room`, `align`, (select `id` from `online` WHERE `date` >= ?i AND `id` = users.`id`) AS `online` FROM `users` WHERE `klan` = ?i ORDER BY `online` DESC , `login` ASC', (time() - 60), $clanRow['id']); \Battles\Template::header('clan'); ?> <div> <button onclick="location.href='main.php'">Вернуться</button> <?php if (!empty($status)) {err($status);} ?> </div> <table style="width: 100%"> <tr> <td> <p style="width: 50%; vertical-align: top;" rowspan=2> <h3><img src="./i/clan/<?= $clanRow['short'] ?>.png"><?= $clanRow['name'] ?></h3> Количество рейтинговых очков клана: <span style="color: #428f21; font-size: larger;"><?= $clanRow['rating'] ?></span><br> <?php if ($polno[$user->id][0] == 1): ?> <div> <span id="add_member"> <input type="submit" onclick="use('add_member')" value="Принять в клан"> </span> (стоимость услуги: <B><?= COST_ADD_MEMBER ?></B> кр.) </div> <div> <span id="remove_member"> <input type="submit" onclick="use('remove_member')" value="Выгнать из клана"> </span> (стоимость услуги: <B><?= COST_REMOVE_MEMBER ?></B> кр.) </div> <?php endif; ?> <?php if ($polno[$user->id][1] == 1 || $clanRow['glava'] == $user->id): ?> <?php if ($login && $action == 'edit_status' && $sok['id'] != $clanRow['glava']): ?> <form method='post'> <input placeholder='Статус' name='new_status'> <input type="hidden" name="login" value="<?= $login ?>"> <?php if ($clanRow['glava'] == $user->id): ?> <?php if ($polno[$sok['id']][0] == 1): ?> <br><input type=checkbox name=vin checked> Может принимать/выгонять членов клана <?php else: ?> <br><input type=checkbox name=vin> Может принимать/выгонять членов клана <?php endif; ?> <?php if ($polno[$sok['id']][1] == 1): ?> <br><input type=checkbox name=tus checked> Может менять статус членов клана <?php else: ?> <br><input type=checkbox name=tus> Может менять статус членов клана <?php endif; ?> <?php endif; ?> <button name='action' value='edit_status' type='submit'>Ок</button> <button>×</button> </form> <?php else: ?> <div> <span id="edit_status"> <input type="submit" onclick="use('edit_status')" value="Редактировать статус"> </span> </div> <?php endif; ?> <?php endif; ?> <?php if ($clanRow['glava'] == $user->id): ?> <div> <span id="change_owner"> <input type="submit" onclick="use('change_owner')" value="Сменить главу клана"> </span> (сложить с себя полномочия, назначив <b style="color: teal;">Главой Клана</b> другого персонажа) </div> <?php if (empty($clanRow['zamok'])): ?> <?php if ($clanRow['rating'] < CASTLE_REPUTATION_NEEDED): ?> Недостаточно рейтинга для постройки замка. <?= showProgressBar($clanRow['rating'], CASTLE_REPUTATION_NEEDED) ?> <?php else: ?> <form method="post"> <button type="submit" name="zamok" value="zamok">Построить Замок</button> (собрать силами всего клана <?= CASTLE_COST ?> кр.)<BR> </form> <?php endif; ?> <?php endif; ?> <?php endif; ?> <?php if ($clanRow['zamok'] == 1): ?> <p> <?php if ($clanRow['zbor'] < CASTLE_COST): ?> Сбор средств на постройку кланового замка: <?= showProgressBar($clanRow['zbor'], CASTLE_COST) ?> <form method="post"> <input name="kolv" size="10"> <button type="submit" name="kr" value="kr">Пожертвовать</button> </form> <?php else: ?> Средства на постройку кланового замка собраны! <?= showProgressBar(CASTLE_COST, CASTLE_COST) ?> <?php endif; ?> <?php endif; ?> </td> <td style="vertical-align: top;"> <h3>Соклановцы</h3> <table class="zebra" style="width: 100%;"> <tr> <th>Имя</th> <th>Статус</th> <th>Местонахождение</th> </tr> <?php while ($row = $clan_memberlist->fetch_assoc()): if ($row['id'] == $clanRow['glava']) { $row['status'] = '<b style="color: #008080;">Глава клана</b>'; } if (empty($row['status'])) { $row['status'] = 'Боец'; } if (empty($row['online'])) { $rrm = 'Персонаж не в игре'; } elseif ($row['room'] > 500 && $row['room'] < 561) { $rrm = 'Башня смерти'; } else { $rrm = $rooms[$row['room']]; } ?> <tr> <td><?= Nick::id($row['id'])->full() ?></td> <td><?= $row['status'] ?></td> <td><i style="font-size: smaller;"><?= $rrm ?></i></td> </tr> <?php endwhile; ?> </table> </td> </tr> </table> <script type="text/javascript"> function use(option) { document.getElementById(option).innerHTML = "<form method='post'><input placeholder='Имя персонажа' name='login'><button name='action' value='" + option + "' type='submit'>Ок</button><button>×</button></form>"; } </script>