battles/clan.php

238 lines
12 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;
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($_POST['login']) AND $_POST['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"', $_POST['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 = 'Персонаж «' . $_POST['login'] . '» успешно принят в клан.';
} else $status = 'Не хватает денег, или персонажа не существует.';
}
if (!empty($_POST['login']) AND $_POST['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'], $_POST['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 = 'Персонаж «' . $_POST['login'] . '» покинул клан.';
}
}
if (!empty($_POST['login']) AND $_POST['action'] == 'change_owner' AND $klan['glava'] == $_SESSION['uid']) { //смена главы
$sok = db::c()->query('SELECT `id` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $_POST['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'];
}
$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 id=hint3 class=ahint><?php if (!empty($status)) err($status); ?></div>
<table style="width: 100%">
<tr>
<td style="width: 50%; vertical-align: top;" rowspan=2>
<h3><img src="./i/klan/<?= $klan['short'] ?>.gif"><?= $klan['name'] ?></h3>
Количество рейтинговых очков клана: <b><?= $klan['rating'] ?></b><br>
<?php if ($klan['zamok'] == 2): ?>
У Вашего клана есть Замок<br><br>
<?php else: ?>
У клана пока нет Замка<br><br>
<?php endif; ?>
<?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']): ?>
<div>
<span id="edit_status">
<input type="submit" onclick="use('edit_status')" value="Редактировать статус">
</span>
</div>
<?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 endif; ?>
<hr>
<?php
if ($klan['glava'] == $user['id'] OR $polno[$user['id']][0] == 1 OR $polno[$user['id']][1] == 1) {
echo "<form method=post>";
if (($klan['glava'] == $user['id']) AND ($klan['zamok'] == '0')) {
if ($klan['rating'] < '1000000')
echo 'Недостаточно рейтинга для постройки замка. ' . showProgressBar($klan['rating'], 1000000);
else {
echo '
<form method="post">
<button type="submit" name="zamok" value="zamok">Построить Замок</button>
(25000 кр.)<BR>
</form>';
}
}
if (($klan['zbor'] >= '25000') AND ($klan['zamok'] == '1') AND ($klan['glava'] == $user['id'])) {
err('Рабочие уже приступили к строительству…');
}
if ($klan['rating'] >= '1000000' AND $klan['zamok'] == 1 AND $klan['zbor'] < '25000') {
echo "Сбор средств на постройку кланового замка: " . showProgressBar($klan['zbor'], 25000) . "<BR>";
echo '
<FORM method="post">
<input name="kolv" size="10">
<button type="submit" name="kr" value="kr">Пожертвовать</button>
</FORM>';
}
if (!empty($_POST['login']) AND $_POST['action'] == 'edit_status') {
$sok = db::c()->query('SELECT `id`, `status` FROM `users` WHERE `klan` = "?s" AND `login` = "?s"', $klan['id'], $_POST['login'])->fetch_assoc();
if (!empty($_POST['status'])) {
$st = strip_tags(str_replace("&lt;", "<", str_replace("&gt;", ">", $_POST['status'])), "<B><I><U>");
}
if ($sok AND $sok['id'] != $klan['glava']) {
if (!empty($_POST['save'])) {
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 `users` SET `status` = "?s" WHERE `id` = ?i', $st, $sok['id']);
if ($klan['glava'] == $user['id']) {
db::c()->query('UPDATE `clans` SET `vozm` = "?s" WHERE `id` = ?i', serialize($polno), $klan['id']);
}
$sok['status'] = $st;
}
echo '<BR><fieldset ><legend>Редактирование статуса "', $_POST['login'], '"</legend>
Звание в клане <input value="', $sok['status'], '" name=status><BR>';
if ($klan['glava'] == $user['id']) {
echo '<input type=checkbox name=vin ';
if ($polno[$sok['id']][0] == 1) {
echo ' checked ';
}
echo '>Может принимать/выгонять членов клана<BR>
<input type=checkbox name=tus ';
if ($polno[$sok['id']][1] == 1) {
echo ' checked ';
}
echo '>Может менять статус членов клана<BR>';
}
echo '<input type=hidden value="', $sok['login'], '" name=login><input type=submit value="Сохранить" name=save></fieldset>';
} elseif ($sok['id'] == $klan['glava']) {
echo '<fieldset ><legend>Редактирование статуса "', $_POST['login'], '"</legend>
Звание в клане <input disabled value="Глава клана"><BR>
<input type=checkbox disabled checked> Может принимать/выгонять членов клана <br>
<input type=checkbox disabled checked> Может менять статус членов клана <br>';
} else $status = 'Персонаж не найден или не состоит в клане!';
}
} else {
echo 'У вашего клана нет реликтов, или глава клана вам их не предоставил. ;)';
}
?>
</td>
<td style="horiz-align: right;" align=right>
<INPUT TYPE="button" onClick="location.href='main.php';" value="Вернуться" title="Вернуться">
</td>
</tr>
<tr>
<td style="vertical-align: top;">
<h3>Соклановцы</h3>
<div style="background-color: #eee; padding: 5px;">
<?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 ($row['online'] > 0) {
echo '<div style="color: gray;">';
echo '💡 <A HREF="javascript:top.AddToPrivate(\'', nick::id($row['id'])->short(), '\', top.CtrlPress)" target=refreshed><img src="i/lock.gif"></A>';
} else echo '<div>';
echo nick::id($row['id'])->full();
echo ' — ', $row['status'];
if ($row['room'] > 500 AND $row['room'] < 561 AND $row['online'] > 0) $rrm = 'Башня смерти';
else $rrm = $rooms[$row['room']];
echo ' <i>', $rrm, '</i><BR>';
echo '</div>';
}
?>
</div>
</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>