battles/clan.php
2019-06-22 17:13:47 +03:00

211 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
ob_start("ob_gzhandler");
session_start();
if ($_SESSION['uid'] == null) header("Location: index.php");
include_once 'config.php';
include_once 'functions.php';
$status = null;
$action = filter_input(INPUT_POST,'action');
$login = filter_input(INPUT_POST,'login');
if (!$user['klan']) {
die(err('Вы не состоите в клане!'));
}
$klan = db::c()->query('SELECT * FROM `clans` WHERE `id` = ?i', $user['klan'])->fetch_assoc();
$polno = [];
$polno = unserialize($klan['vozm']);
if (isset($_POST['zamok'])) {
db::c()->query('UPDATE `clans` SET `zamok` = 1 WHERE `glava` = ?i', $_SESSION['uid']);
$status = "Начат сбор средств на строительство Кланового Замка.";
header("Location: clan.php");
}
if (isset($_POST['kr']) && ($_POST['kolv'] > 0)) {
if ($user['money'] >= $_POST['kolv']) {
db::c()->query('UPDATE `clans` SET `zbor` = `zbor` + ?i WHERE `id` = ?i', $_POST['kolv'], $user['klan']);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $_POST['kolv'], $user['id']);
header("Location: clan.php");
} else $status = 'Не хватает денег!';
}
if (!empty($login) AND $action == 'add_member' AND $polno[$user['id']][0] == 1) {
$sok = db::c()->query('SELECT `id`,`level`,`klan` FROM `users` WHERE `align` = 0 AND `login` = "?s"', $login)->fetch_assoc();
$proverka = db::c()->query('SELECT 1 FROM `effects` WHERE `type` = 20 AND `owner` = ?i', $sok['id'])->getNumRows();
if (!$proverka) echo "Нет проверки!";
elseif (!empty($sok['klan'])) echo 'Персонаж уже состоит в клане!';
elseif ($sok['level'] > 0 && $user['money'] >= 100) {
db::c()->query('UPDATE `users` SET `money` = `money` - 100 WHERE `id` = ?i', $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `status` = "?s", `klan` = "?s", `align` = ?i WHERE `id` = ?i', 'Боец', $klan['id'], $klan['align'], $sok['id']);
$status = 'Персонаж «' . $login . '» успешно принят в клан.';
} else $status = 'Не хватает денег, или персонажа не существует.';
}
if (!empty($login) AND $action == 'remove_member' AND $polno[$user['id']][0] == 1) {
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc();
if ($sok['id'] != $klan['glava'] AND $user['money'] >= 30) {
db::c()->query('UPDATE `users` SET `money` = `money` - 30 WHERE `id` = ?i', $_SESSION['uid']);
db::c()->query('UPDATE `users` SET `klan` = null, `align` = 0 WHERE `id` = ?i', $sok['id']);
$status = 'Персонаж «' . $login . '» покинул клан.';
}
}
if (!empty($login) AND $action == 'change_owner' AND $klan['glava'] == $_SESSION['uid']) {
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc();
db::c()->query('UPDATE `clans` SET `glava` = ?i WHERE `id` = ?i', $sok['id'], $klan['id']);
db::c()->query('UPDATE `users` SET `status` = null WHERE `id` = ?i', $sok['id']);
db::c()->query('UPDATE `users` SET `status` = "?s" WHERE `id` = ?i', 'Боец', $_SESSION['uid']);
$klan['glava'] = $sok['id'];
}
if (!empty($login) AND $action == 'edit_status') {
$sok = db::c()->query('SELECT `id`, `status` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $login)->fetch_assoc();
if ($sok['id'] != $klan['glava']) {
if (!empty($_POST['new_status'])) {
$st = strip_tags(str_replace("&lt;", "<", str_replace("&gt;", ">", $_POST['new_status'])), "<B><I><U>");
db::c()->query('UPDATE `users` SET `status` = "?s" WHERE `id` = ?i', $st, $sok['id']);
$sok['status'] = $st;
}
if ((!empty($_POST['vin']) OR !empty($_POST['tus'])) AND $klan['glava'] == $_SESSION['uid']) {
if ($_POST['vin'] == 'on') $polno[$sok['id']][0] = 1;
else $polno[$sok['id']][0] = 0;
if ($_POST['tus'] == 'on') $polno[$sok['id']][1] = 1;
else $polno[$sok['id']][1] = 0;
db::c()->query('UPDATE `clans` SET `vozm` = "?s" WHERE `id` = ?i', serialize($polno), $klan['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), $klan['id']);
?>
<!doctype html>
<html>
<head>
<link rel=stylesheet href="css/main.css">
<meta charset="utf-8">
</head>
<body>
<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/klan/<?= $klan['short'] ?>.gif"><?= $klan['name'] ?></h3>
Количество рейтинговых очков клана: <span
style="color: #428f21; font-size: larger;"><?= $klan['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>100</B> кр.)
</div>
<div>
<span id="remove_member">
<input type="submit" onclick="use('remove_member')" value="Выгнать из клана">
</span>
(стоимость услуги: <B>30</B> кр.)
</div>
<?php endif; ?>
<?php if ($polno[$user['id']][1] == 1 OR $klan['glava'] == $user['id']): ?>
<?php if (!empty($login) AND $action == 'edit_status'): ?>
<form method='post'>
<input placeholder='Статус' name='new_status'>
<input type="hidden" name="login" value="<?= $login ?>">
<?php if ($klan['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 ($klan['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($klan['zamok'])): ?>
<?php if ($klan['rating'] < 1000000): ?>
Недостаточно рейтинга для постройки замка. <?= showProgressBar($klan['rating'], 1000000) ?>
<?php else: ?>
<form method="post">
<button type="submit" name="zamok" value="zamok">Построить Замок</button>
(собрать силами всего клана 25000 кр.)<BR>
</form>
<?php endif; ?>
<?php endif; ?>
<?php endif; ?>
<?php if ($klan['zamok'] == 1): ?>
<p>
<?php if ($klan['zbor'] < 25000): ?>
Сбор средств на постройку кланового замка:
<?= showProgressBar($klan['zbor'], 25000) ?>
<form method="post">
<input name="kolv" size="10">
<button type="submit" name="kr" value="kr">Пожертвовать</button>
</form>
<?php else: ?>
Средства на постройку кланового замка собраны!
<?= showProgressBar(25000, 25000) ?>
<?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'] == $klan['glava']) $row['status'] = '<b style="color: #008080;">Глава клана</b>';
if (empty($row['status'])) $row['status'] = 'Боец';
if (empty($row['online'])) $rrm = 'Персонаж не в игре';
elseif ($row['room'] > 500 AND $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>
</body>
</html>