457 lines
22 KiB
PHP
457 lines
22 KiB
PHP
<?php
|
||
session_start();
|
||
require_once "functions.php";
|
||
$user = $user ?? new \Battles\User($_SESSION['uid']);
|
||
|
||
function secs2hrs($s, $short = 0)
|
||
{
|
||
if ($s < 60) {
|
||
return "$s сек.";
|
||
}
|
||
$retstr = '';
|
||
if ($s < 3600) {
|
||
$min = floor($s / 60);
|
||
if ($min || !$short) {
|
||
$retstr .= "$min мин. ";
|
||
}
|
||
$sec = $s % 60;
|
||
if ($sec || !$short) {
|
||
$retstr .= "$sec сек.";
|
||
}
|
||
return $retstr;
|
||
}
|
||
$ret = floor($s / 3600);
|
||
$s = $s % 3600;
|
||
|
||
$d = floor($ret / 24);
|
||
$h = $ret % 24;
|
||
if ($d && ($d > 1 || $h || $s)) {
|
||
$retstr .= "$d д. ";
|
||
if ($h || !$short) {
|
||
$retstr .= "$h ч. ";
|
||
}
|
||
$min = floor($s / 60);
|
||
if ($min || !$short) {
|
||
$retstr .= "$min мин.";
|
||
}
|
||
return $retstr;
|
||
} elseif ($d) {
|
||
$h += $d * 24;
|
||
}
|
||
if ($h) {
|
||
$retstr = "$h ч. ";
|
||
$min = floor($s / 60);
|
||
if ($min || !$short) {
|
||
$retstr .= "$min мин.";
|
||
}
|
||
return $retstr;
|
||
}
|
||
return floor($s / 60) . " мин. " . ($s % 60) . " сек.";
|
||
}
|
||
|
||
if ($_GET['ext'] == 1) {
|
||
$yas = mysql_fetch_array(mysql_query("SELECT `id` FROM `vxodd` WHERE `login` = '$user[login]' LIMIT 1"));
|
||
$yad = mysql_fetch_array(mysql_query("SELECT `id` FROM `vxod` WHERE `login` = '$user[login]' LIMIT 1"));
|
||
if (isset($yas['id']) || isset($yad['id'])) {
|
||
echo "<b><font color=red>Подали заявку и убегаем? Не хорошо...</font></b>";
|
||
} else {
|
||
mysql_query("UPDATE `users`,`online` SET `users`.`room` = '2111', `online`.`room` = '2111' WHERE `online`.`id` = `users`.`id` AND `online`.`id` = '{$_SESSION['uid']}' ;");
|
||
header('location: main.php');
|
||
}
|
||
}
|
||
|
||
|
||
if (in_array($user->room, Config::$canalenters)) {
|
||
$podzemroom = $user->room + 1;
|
||
$cavedata = [620 => ['x1' => 3, 'y1' => 2, 'dir1' => 2]];
|
||
$podzemdata = [621 => ['name1' => 'Проклятый Рудник', 'name2' => 'Проклятого Рудника']];
|
||
$warning = $_GET["warning"] ?? '';
|
||
\Battles\Template::header('enter_cave');
|
||
if ($warning) {
|
||
echo sprintf('<b style="color: #f80000">%s</b>', $warning);
|
||
}
|
||
?>
|
||
<div id=hint4 class=ahint></div>
|
||
|
||
<TABLE width=100%>
|
||
<TR>
|
||
<TD valign=top width=100%>
|
||
<center><h3><?= $rooms[$user["room"]] ?></h3></center>
|
||
<?php
|
||
$select = mysql_query("SELECT `time` FROM `visit_podzem` WHERE `room` = '$podzemroom' AND `login` = '" . $user['login'] . "' AND `time` > 0 LIMIT 1");
|
||
if ($el = mysql_fetch_array($select)) {
|
||
$wait_sec = $el['time'];
|
||
$new_t = time();
|
||
$left_time = $wait_sec - $new_t;
|
||
$left_min = floor($left_time / 60);
|
||
$left_sec = $left_time - $left_min * 60;
|
||
|
||
if (($user['align'] == '2.99') && $wait_sec > $new_t) {
|
||
$wait_sec = 1;
|
||
mysql_query("UPDATE `visit_podzem` SET `time` = 1 WHERE `login` = '$user[login]' AND `time` > 0 AND `room` = '$user->room' LIMIT 1");
|
||
}
|
||
|
||
if ($wait_sec > $new_t && $_GET['donate']) {
|
||
if ($user['money'] >= $podzemdata[$podzemroom]['passprice']) {
|
||
mysql_query("UPDATE `users` SET `money` = (`money`-" . $podzemdata[$podzemroom]['passprice'] . ") WHERE `id` = '$user[id]' LIMIT 1");
|
||
mysql_query("INSERT INTO `delo` (`id`, `author`, `pers`, `text`, `type`, `date`) VALUES ('', '0', '{$_SESSION['uid']}', '\"" . $user['login'] . "\" пожертвовал на благоустройство пещеры \"" . $podzemdata[$podzemroom]['passprice'] . "\" кр. ($user[money]/$user[ekr]). ', 7, '" . time() . "')");
|
||
$wait_sec = 0;
|
||
} else {
|
||
echo "<b><font color=red>У вас недостаточно денег</font></b>";
|
||
}
|
||
}
|
||
|
||
if ($wait_sec > $new_t) {
|
||
echo " <font style='font-size: 12px;'>Вы можете посетить " . $podzemdata[$podzemroom]['name1'] . " через <font style='font-size: 11px; color: #000;'> " . secs2hrs($left_time) . "</font><br />";
|
||
if ($podzemdata[$podzemroom]['passprice']) {
|
||
echo "Пожертвовав " . $podzemdata[$podzemroom]['passprice'] . " кр. на благоустройство " . $podzemdata[$podzemroom]['name2'] . ", это можно сделать прямо сейчас. <a onclick=\"return confirm('Пожертвовать " . $podzemdata[$podzemroom]['passprice'] . " кр. на благоустройство " . $podzemdata[$podzemroom]['name2'] . "?');\" href=\"enter_cave.php?donate=1\">Пожертвовать</a>.";
|
||
}
|
||
} else {
|
||
mysql_query("DELETE FROM `visit_podzem` WHERE `login` = '" . $user['login'] . "' AND `room` = '$podzemroom' LIMIT 1");
|
||
echo "<script>location.href='main.php?act=none'</script>";
|
||
exit();
|
||
}
|
||
} else {
|
||
$login = $user['login'];
|
||
$ya = mysql_query("SELECT `login` FROM `vxodd` WHERE `login` = '$login' LIMIT 1");
|
||
$wawe = "0";
|
||
if ($daw = mysql_fetch_array($ya)) {
|
||
$wawe = "1";
|
||
}
|
||
$naw = mysql_query("SELECT `login` FROM `vxod` WHERE `login` = '$login' LIMIT 1");
|
||
$nawe = "0";
|
||
if ($ser = mysql_fetch_array($naw)) {
|
||
$nawe = "1";
|
||
}
|
||
$rt = mysql_query("SELECT `id`, `level` FROM `users` WHERE `login` = '$login' LIMIT 1");
|
||
$est = mysql_fetch_array($rt);
|
||
$user_id = $est['id'];
|
||
$user_lvl = $est['level'];
|
||
|
||
if ($wawe == 0) {
|
||
echo "<FORM id='REQUEST'>
|
||
<FIELDSET style='padding-left: 5; width=50%; color:#000000;'><LEGEND><B> Группа </B> </LEGEND>
|
||
<table>
|
||
<tr>
|
||
<td>Комментарий</td>
|
||
<td><INPUT style=\"font-size:12px;\" TYPE=text NAME=cmt maxlength=40 size=40></td>
|
||
</tr>
|
||
<tr>
|
||
<td>Пароль</td>
|
||
<td><INPUT style=\"font-size:12px;\" TYPE=password NAME=pass maxlength=6 size=40></td>
|
||
</tr>
|
||
<tr>
|
||
<td></td>
|
||
<td><INPUT style='font-size:12px;' TYPE=submit name=open value='Создать группу'></td>
|
||
</tr>
|
||
</table>
|
||
</FIELDSET>
|
||
</FORM>";
|
||
} else {
|
||
echo "<FORM id='REQUEST'>
|
||
<FIELDSET style='padding-left: 5; width=50%'>
|
||
<LEGEND><B> Группа </B> </LEGEND>";
|
||
if ($nawe == 1) {
|
||
echo "<INPUT style=\"font-size:12px;\" type='submit' name='start' value='Начать' /> ";
|
||
}
|
||
echo "<INPUT style=\"font-size:12px;\" type='submit' name='del' value='Покинуть группу' /></FIELDSET></FORM>";
|
||
}
|
||
|
||
if ($_GET['warning'] == 1) {
|
||
echo "<font style='color:#CC0000'> Вы покинули группу</font>";
|
||
}
|
||
if ($_GET['warning'] == 2) {
|
||
echo "<font style='color:#CC0000'> Увы! Не угадали пароль!</font>";
|
||
}
|
||
if ($_GET['warning'] == 3) {
|
||
echo "<font style='color:#CC0000'> Вы подали заявку, сначала отзовите её!</font>";
|
||
}
|
||
if ($_GET['warning'] == 4) {
|
||
echo "<font style='color:#CC0000'> Вы уже в группе!</font>";
|
||
}
|
||
if ($_GET['warning'] == 5) {
|
||
echo "<font style='color:#CC0000'> Группа уже собрана!</font>";
|
||
}
|
||
if ($_GET['warning'] == 6) {
|
||
echo "<font style='color:#CC0000'> Максимальная плата для вашего уровня: ";
|
||
if ($user['level'] < 5) {
|
||
echo "1500 кр";
|
||
} elseif ($user['level'] < 7) {
|
||
echo "3500 кр";
|
||
} else {
|
||
echo "6500 кр";
|
||
}
|
||
echo "!</font>";
|
||
}
|
||
if ($_GET['warning'] == 7) {
|
||
echo "<font style='color:#CC0000'> Недостаточно денег для оплаты.</font>";
|
||
}
|
||
if ($_GET['warning'] == 8) {
|
||
echo "<font style='color:#CC0000'> Со склонностью хаос оплата походов запрещена.</font>";
|
||
}
|
||
echo "<TABLE cellpadding=1 cellspacing=0>";
|
||
|
||
$i = 0;
|
||
function isonlinelogin($l)
|
||
{
|
||
$i = mysql_fetch_assoc(mysql_query("SELECT DISTINCT(`users`.`id`) FROM `online` LEFT JOIN `users` ON (`users`.`id` = `online`.`id`) WHERE `date` >= " . (time() - 60) . " AND `users`.`login` = '$l'"));
|
||
return $i;
|
||
}
|
||
|
||
$Q = mysql_query("SELECT * FROM `vxod` WHERE `room` = '$user->room'");
|
||
while ($DATA = mysql_fetch_array($Q)) {
|
||
$cr = $DATA['glav_id'];
|
||
$z_login[$i] = $DATA['login'];
|
||
$date[$i] = $DATA['date'];
|
||
$comment[$i] = $DATA['comment'];
|
||
$password[$i] = $DATA['pass'];
|
||
$mine_z[$i] = 0;
|
||
|
||
$Q2 = mysql_query("SELECT `glav_id` FROM `vxodd` WHERE `glav_id` = '$cr'");
|
||
$t1_all[$i] = 0;
|
||
while ($DATAS = mysql_fetch_array($Q2)) {
|
||
$t1_all[$i]++;
|
||
}
|
||
$creator[$i] = $DATA['glav_id'];
|
||
$i++;
|
||
}
|
||
|
||
for ($n = 0; $n < $i; $n++) {
|
||
echo "<form id='REQUEST'><TR><TD><font class=date>$date[$n]</font><font style='font-size: 12px; color: #000000;'> ";
|
||
|
||
$QUER = mysql_query("SELECT `login`, `lvl`, `fee` FROM `vxodd` WHERE `glav_id` = '$creator[$n]' ORDER BY `id` ASC");
|
||
while ($DATAS = mysql_fetch_array($QUER)) {
|
||
if ($user['id'] == 10022) {
|
||
$ol = isonlinelogin($DATAS['login']);
|
||
if (!$ol) {
|
||
mysql_query("DELETE FROM `vxod` WHERE `login` = '$DATAS[login]'");
|
||
mysql_query("DELETE FROM `vxodd` WHERE `glav_id` = '" . mysql_fetch_assoc(mysql_query("SELECT `id` FROM `users` WHERE `login` = '$DATAS[login]'")) . "'");
|
||
mysql_query("DELETE FROM `vxodd` WHERE `login` = '$DATAS[login]'");
|
||
}
|
||
}
|
||
|
||
$p1 = $DATAS['login'];
|
||
$p_login = $DATAS['login'];
|
||
$p_lvl = $DATAS['lvl'];
|
||
if ($p1 != '') {
|
||
$p1 = "<b>$p1</b> [$p_lvl] <a href='inf.php?login=$p1' target='_blank'><img src='i/inf.gif' border=0></a> ";
|
||
if ($t1_all[$n] == 1) {
|
||
echo "$p1";
|
||
} else {
|
||
echo "$p1,";
|
||
}
|
||
}
|
||
}
|
||
|
||
if (!empty($comment[$n])) {
|
||
echo "| $comment[$n] </font>";
|
||
}
|
||
|
||
if ($wawe == 0) {
|
||
if (!empty($password[$n])) {
|
||
echo "<INPUT style=\"font-size: 12px;\" type='password' name='pass' size='5' /> ";
|
||
}
|
||
echo "<input style=\"font-size: 12px;\" name='naw_id' type='hidden' value='$creator[$n]' /><INPUT style='font-size: 12px;' TYPE='submit' name='add' value='Присоед.' />";
|
||
}
|
||
echo "</TD></TR></FORM>";
|
||
}
|
||
?>
|
||
|
||
<TR>
|
||
<TD>
|
||
</TD>
|
||
</TR>
|
||
<TR height=1>
|
||
<TD height=1 colspan=2><SPAN></SPAN></TD>
|
||
</TR>
|
||
</TABLE>
|
||
<?php
|
||
|
||
///////////////Подача заявки////////////////////
|
||
if ($_GET['open']) {
|
||
$der = mysql_query("SELECT `glav_id` FROM `vxodd` WHERE `login` = '" . $user['login'] . "' LIMIT 1");
|
||
if ($deras = mysql_fetch_array($der)) {
|
||
echo "<script>location.href='?warning=4'</script>";
|
||
exit();
|
||
}
|
||
$time = date("H:i");
|
||
$SQL2 = mysql_query("INSERT INTO `vxod` (`date`, `login`, `glav_id`, `comment`, `pass`, `room`) VALUES('$time', '$login', '$user_id', '" . mysql_real_escape_string($_GET['cmt']) . "', '" . mysql_real_escape_string($_GET['pass']) . "', '$user->room')");
|
||
$SQL2 = mysql_query("INSERT INTO `vxodd` (`login`, `glav_id`, `lvl`) VALUES('$login', '$user_id', '$user_lvl')");
|
||
if ($SQL2) {
|
||
echo "<script>location.href='main.php?act=none'</script>";
|
||
exit();
|
||
} else {
|
||
echo "Ошибка!!! Сообщите администратору!";
|
||
}
|
||
}
|
||
//////////////Удаление заявки//////////////////////
|
||
if ($_GET['del']) {
|
||
$e = mysql_query("DELETE FROM `vxod` WHERE `login` = '$login'");
|
||
$es = mysql_query("DELETE FROM `vxodd` WHERE `glav_id` = '$user_id'");
|
||
$ed = mysql_query("DELETE FROM `vxodd` WHERE `login` = '$login'");
|
||
if ($e) {
|
||
echo "<script>location.href='?warning=1'</script>";
|
||
exit();
|
||
} else {
|
||
echo "Ошибка!!! Сообщите администратору!";
|
||
}
|
||
}
|
||
|
||
if ($_GET['add']) {
|
||
$der = mysql_query("SELECT `glav_id`, `id` FROM `vxodd` WHERE `login` = '" . $user['login'] . "' LIMIT 1");
|
||
if ($deras = mysql_fetch_array($der)) {
|
||
echo "<script>location.href='?warning=4'</script>";
|
||
exit();
|
||
}
|
||
|
||
$den = mysql_query("SELECT `id` FROM `vxodd` WHERE `glav_id` = '" . $_GET['naw_id'] . "'");
|
||
if (mysql_num_rows($den) >= (in_array($user->room + 1, Config::$caverooms) ? 5 : 4)) {
|
||
echo "<script>location.href='?warning=5'</script>";
|
||
exit();
|
||
}
|
||
|
||
if ($_GET['naw_id']) {
|
||
$fee = (int)$_GET['fee'];
|
||
if ($fee < 0) {
|
||
$fee = 0;
|
||
}
|
||
$badfee = 0;
|
||
if ($fee > 1500 && $user['level'] < 5) {
|
||
$badfee = 1;
|
||
} elseif ($fee > 3500 && $user['level'] < 7) {
|
||
$badfee = 1;
|
||
} elseif ($fee > 6500) {
|
||
$badfee = 1;
|
||
} elseif ($fee > $user['money']) {
|
||
$badfee = 2;
|
||
}
|
||
if ($user['align'] == 4 && $fee > 0) {
|
||
$badfee = 3;
|
||
}
|
||
$p = mysql_fetch_assoc(mysql_query("SELECT `pass` FROM `vxod` WHERE `glav_id` = '$_GET[naw_id]' LIMIT 1"));
|
||
if ($badfee) {
|
||
echo "<script>location.href='?warning=" . (5 + $badfee) . "'</script>";
|
||
exit();
|
||
} elseif ($p['pass'] == $_GET['pass']) {
|
||
$rt = mysql_query("SELECT `level` FROM `users` WHERE `login` = '$login' LIMIT 1");
|
||
$est = mysql_fetch_array($rt);
|
||
$s = mysql_query("INSERT INTO `vxodd` (`login`, `glav_id`, `lvl`, `fee`) VALUES('$login', '" . $_GET['naw_id'] . "', '" . $est['level'] . "', '$fee')");
|
||
if ($s) {
|
||
echo "<script>location.href='?act=none'</script>";
|
||
exit();
|
||
} else {
|
||
echo "Ошибка!!! Сообщите администратору!";
|
||
}
|
||
} else {
|
||
echo "<script>location.href='?warning=2'</script>";
|
||
exit();
|
||
}
|
||
} else {
|
||
echo "<script>location.href='?warning=2'</script>";
|
||
exit();
|
||
}
|
||
}
|
||
|
||
if ($_GET['start']) {
|
||
if (in_array($user->room + 1, Config::$caverooms)) {
|
||
$nc = 1;
|
||
$locs = [];
|
||
}
|
||
$zax = mysql_query("SELECT `login`, `fee` FROM `vxodd` WHERE `glav_id` = '" . $user['id'] . "'");
|
||
$level = 0;
|
||
while ($nana = mysql_fetch_array($zax)) {
|
||
$n_login = $nana['login'];
|
||
$rty = mysql_query("SELECT `id`, `level`, `login`, `shadow`, `money`, `hp` FROM `users` WHERE `login` = '$n_login' LIMIT 1");
|
||
$esth = mysql_fetch_array($rty);
|
||
if ($esth['hp'] <= 0) {
|
||
$esth['hp'] = 1;
|
||
mysql_query('UPDATE `users` SET `hp` = "' . $esth['hp'] . '" WHERE `id` = "' . $esth['id'] . '" LIMIT 1');
|
||
}
|
||
if ($nana['fee']) {
|
||
if ($nana['fee'] > $esth['money']) {
|
||
continue;
|
||
}
|
||
mysql_query("UPDATE `users` SET `money` = (`money+$nana[fee]) WHERE `id` = '$user[id]' LIMIT 1");
|
||
mysql_query("update `users` SET `money` = (`money-$nana[fee]) WHERE `id` = '$esth[id]' LIMIT 1");
|
||
$user['money'] += $nana['fee'];
|
||
$esth['money'] -= $nana['fee'];
|
||
adddelo($user['id'], "Персонаж $user[login] получил $nana[fee] кр. за поход по локации \"" . $rooms[$user->room + 1] . "\" от персонажа $esth[login] ($user[money]).", 1);
|
||
adddelo($esth['id'], "Персонаж $esth[login] заплатил $nana[fee] кр. за поход по локации \"" . $rooms[$user->room + 1] . "\" персонажу $user[login] ($esth[money]).", 1);
|
||
}
|
||
if ($esth['level'] > $level) {
|
||
$level = $esth['level'];
|
||
}
|
||
$est_id = $esth['id'];
|
||
$est_login = $esth['login'];
|
||
$vremya = 60 * 60 * 6 + time();
|
||
|
||
mysql_query('INSERT INTO `visit_podzem` (`login`, `time`, `room`) VALUES ("' . $n_login . '", "' . $vremya . '", \'' . $podzemroom . '\')');
|
||
$vrem = 30 * 60 + time();
|
||
|
||
$cavedata = Config::$cavedata ?? [];
|
||
mysql_query("INSERT INTO `caveparties` SET `user` = '$esth[id]', `leader` = '$user[id]', `login` = '$esth[login]', `shadow` = '0.png', `x` = '" . $cavedata[$user->room + 1]['x1'] . "', `y` = '" . $cavedata[$user->room + 1]['y1'] . "', `dir` = '" . $cavedata[$user->room + 1]['dir1'] . "', `floor` = 1");
|
||
mysql_query("UPDATE `users`, `online` SET " . ($nc ? "`users`.`caveleader` = '$user[id]', " : "") . " `users`.`room` = '" . ($user->room + 1) . "', `online`.`room` = '" . ($user->room + 1) . "' WHERE `online`.`id` = `users`.`id` AND `online`.`id` = '" . $esth['id'] . "'");
|
||
}
|
||
|
||
if ($nc) {
|
||
$r = mysql_query("SELECT * FROM `cavemaps` WHERE `room` = '$user->room'");
|
||
while ($rec = mysql_fetch_assoc($r)) {
|
||
$map = unserialize($rec['map']);
|
||
foreach ($map as $k => $v) {
|
||
foreach ($v as $k2 => $v2) {
|
||
$obj = substr($v2, 0, 1);
|
||
if ($obj == "b" || $obj == "a" || $obj == "w") {
|
||
$tmp = explode("/", $v2);
|
||
$i = 1;
|
||
if ($obj == "b") {
|
||
$t = 0;
|
||
} elseif ($obj == "w") {
|
||
$t = 1;
|
||
} else {
|
||
$t = 2;
|
||
}
|
||
while ($tmp[$i]) {
|
||
mysql_query("INSERT INTO `cavebots` SET `leader` = '$user[id]', `x` = '$k2', `y` = '$k', `startx` = '$k2', `starty` = '$k', `bot` = '$tmp[$i]', `cnt` = '" . ($tmp[$i + 1]) . "', `floor` = '$rec[floor]', `type` = '$t'");
|
||
$i += 2;
|
||
}
|
||
$map[$k][$k2] = 2;
|
||
}
|
||
}
|
||
}
|
||
include('cave_add_objects.php');
|
||
mysql_query("INSERT INTO `caves` SET `leader` = '$user[id]', `map` = '" . serialize($map) . "', `level` = '$level', `floor` = '$rec[floor]'");
|
||
savecavedata([], $user['id'], $rec['floor']);
|
||
}
|
||
}
|
||
?>
|
||
<script>top.frames['online'].location = 'ch.php?online=' + Math.round(Math.random() * 100000);</script>
|
||
<?php
|
||
mysql_query("DELETE FROM `vxod` WHERE `login` = '$login'");
|
||
mysql_query("DELETE FROM `vxodd` WHERE `glav_id` = " . $user['id'] . "");
|
||
mysql_query("DELETE FROM `vxodd` WHERE `login` = '$login'");
|
||
print "<script>location.href='cave.php'</script>";
|
||
exit();
|
||
}
|
||
}
|
||
?>
|
||
|
||
<TD nowrap valign=top>
|
||
|
||
<BR>
|
||
<DIV align=right>
|
||
<INPUT style="font-size:12px;" onClick="document.location.href='enter_cave.php?<?= time(); ?>'"
|
||
value=Обновить type=button>
|
||
<input style="font-size: 12px;" type="button" value="Вернуться"
|
||
onclick="document.location.href='enter_cave.php?ext=1';"/>
|
||
</DIV>
|
||
</TD>
|
||
</TR></TBODY></TABLE>
|
||
</TD>
|
||
</TR>
|
||
</TABLE>
|
||
<div id="goto" style="text-align:right;white-space:nowrap"> </div>
|
||
<br><br>
|
||
<?php
|
||
} else {
|
||
header("location: main.php");
|
||
}
|