battles/clan.php
2019-06-22 13:24:29 +03:00

264 lines
15 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'];
}
?>
<!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) echo 'У Вашего клана есть Замок<br><br>';
else echo 'У клана пока нет Замка<br><br>';
?>
<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>
<div><span id="edit_status">
<input type="submit" onclick="use('edit_status')" value="Редактировать статус">
</span></div>
<div><span id="change_owner">
<input type="submit" onclick="use('change_owner')" value="Сменить главу клана">
</span> (сложить с себя полномочия, назначив <b style="color: teal;">Главой Клана</b> другого персонажа)
</div>
<?php
if ($klan['glava'] == $user['id'] OR $polno[$user['id']][0] == 1 OR $polno[$user['id']][1] == 1) {
echo "<form method=post>";
if ($polno[$user['id']][0] == 1) echo '<INPUT TYPE="button" onclick="findlogin(\'Принять в клан\', \'login2\');" value="Принять в клан" title="Принять в клан"> (это вам обойдется в <B>100</B> кр.)<BR>
<INPUT TYPE="button" onclick="findlogin(\'Выгнать из клана\', \'login1\');" value="Выгнать из клана" title="Выгнать из клана"> (это вам обойдется в <B>30</B> кр.)<BR>';
if ($klan['glava'] == $user['id']) echo '<INPUT TYPE="button" onclick="findlogin(\'Сменить главу клана\', \'login3\');" value="Сменить главу клана" title="Сменить главу клана"> (<b>Вы</b> вправе сложить с себя полномочия, назначив <b>Главой Клана</b> другого персонажа)<BR>';
if ($polno[$user['id']][1] == 1 OR $klan['glava'] == $user['id']) echo '<INPUT TYPE="button" onclick="findlogin(\'Редактировать статус соклановца\', \'login\');" value="Редактировать статус соклановца" title="Редактировать статус соклановца"><BR>';
if (($klan['glava'] == $user['id']) AND ($klan['zamok'] == '0')) {
if ($klan['rating'] < '1000000') {
#echo sprintf('[%s/1000000] Недостаточно рейтинга для постройки кланового замка.', $klan['rating']);
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') {
$ex = $klan['zbor'];
#echo "Сбор средств на постройку кланового замка: $ex кр./25000 кр.<BR>";
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
$data = 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']);
while ($row = $data->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 show(ele) {
var srcElement = document.getElementById(ele);
if (srcElement != null) {
if (srcElement.style.display == "block") {
srcElement.style.display = 'none';
} else {
srcElement.style.display = 'block';
}
}
}
var Hint3Name = '';
// Заголовок, название скрипта, имя поля с логином
function findlogin(title, name) {
document.all("hint3").innerHTML = '<table><tr><td align=center><B>' + title + '</td><td width=20 align=right valign=top style="cursor: pointer" onclick="closehint3();"><BIG><B>x</td></tr><tr><td colspan=2>' +
'<form method=POST><table width=100% cellspacing=0 cellpadding=2 bgcolor=FFF6DD><tr><INPUT TYPE=hidden name=sd4 value="6"><td colspan=2>' +
'Укажите логин персонажа:<small></TD></TR><TR><TD width=50% align=right><INPUT TYPE=text NAME="' + name + '"></TD><TD width=50%><INPUT TYPE="submit" value=" »» "></TD></TR></TABLE></FORM></td></tr></table>';
document.all("hint3").style.visibility = "visible";
document.all("hint3").style.left = 100;
document.all("hint3").style.top = 100;
document.all(name).focus();
Hint3Name = name;
}
function returned2(s) {
if (top.oldlocation != '') {
top.frames['main'].location = top.oldlocation + '?' + s + 'tmp=' + Math.random();
top.oldlocation = '';
} else {
top.frames['main'].location = 'main.php?edit=' + Math.random()
}
}
function closehint3() {
document.all("hint3").style.visibility = "hidden";
Hint3Name = '';
}
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>