game/modules_data/_zv.php

291 lines
10 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
use Core\Config;
use Core\Db;
require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . '_incl_data/autoload.php';
if (!defined('GAME')) {
die();
}
if (isset($_GET['r'])) {
$_GET['r'] = (int)$_GET['r'];
} else {
$_GET['r'] = null;
}
if ($_GET['r'] == 3 || $_GET['r'] == 8 || !isset($_GET['r'])) {
$_GET['r'] = 2;
}
/** @var User $u */
if ($u->info['inTurnir'] > 0 && $u->info['inUser'] == 0 && $u->info['room'] == 318) {
die('<script>location="main.php";</script>');
}
$zv = new FightRequest();
$js_5356 = sprintf(
"top.lafstReg[%d] = 0; top.startHpRegen(\"main\",%d,%d,%d,%d,%d,%d,%d,%d,%d,1);",
$u->info['id'], $u->info['id'], 0 + $u->stats['hpNow'], 0 + $u->stats['hpAll'],
0 + $u->stats['mpNow'], 0 + $u->stats['mpAll'], time() - $u->info['regHP'], time() - $u->info['regMP'],
0 + $u->rgd[0], 0 + $u->rgd[1]
);
$code ??= PassGen::intCode();
?>
<script type="text/javascript" src="js/jquery.js"></script>
<script>
var zv_Priem = 0;
function openfizrmk() {
$('#hidezv1_btn').slideUp(300, function () {
$('#hidezv1').slideDown(700);
});
}
<?= $js_5356 ?>
</script>
<style>
table.wfix {
table-layout: fixed;
width: 100%;
}
.m {
background: #99CCCC;
text-align: center;
}
.s {
background: #BBDDDD;
text-align: center;
}
.firsttd {
width: 70px;
}
</style>
<TABLE class="wfix" cellspacing=1 cellpadding=3>
<TR>
<TD colspan=<?= $u->info['level'] == 0 ? '4' : '6' ?> align=right>
<div style="float:left"><?= $zv->userInfo() ?></div>
<div style="float:right;">
<INPUT class="btn" onClick="location='main.php?zayvka&r=<?= $_GET['r'] ?>&rnd=<?= $code ?>';"
TYPE=button name=tmp value="Обновить">
<INPUT class="btn" TYPE=button value="Вернуться" onClick="location.href='main.php?rnd=<?= $code ?>';">
</div>
</td>
</tr>
<tr>
<td class="firsttd m">&nbsp;<b>Бои:</b>&nbsp;</td>
<?php if ($u->info['level'] == 0): ?>
<td class="<?= $_GET['r'] == 1 ? 's' : 'm' ?>"><a href="/main.php?zayvka=1&r=1&rnd=<?= $code ?>">Новички</a>
</td>
<?php else: ?>
<td class="<?= $_GET['r'] == 2 ? 's' : 'm' ?>"><a href="/main.php?zayvka=1&r=2&rnd=<?= $code ?>">Турниры</a>
</td>
<td class="<?= $_GET['r'] == 4 ? 's' : 'm' ?>"><a
href="main.php?zayvka=1&r=4&rnd=<?= $code ?>">Групповые</a></td>
<td class="<?= $_GET['r'] == 5 ? 's' : 'm' ?>"><a
href="main.php?zayvka=1&r=5&rnd=<?= $code ?>">Хаотичные</a></td>
<?php endif; ?>
<td class="<?= $_GET['r'] == 6 ? 's' : 'm' ?>"><a href="/main.php?zayvka=1&r=6&rnd=<?= $code ?>">Текущие</a>
</td>
<td class="<?= $_GET['r'] == 7 ? 's' : 'm' ?>"><a href="/main.php?zayvka=1&r=7&rnd=<?= $code ?>">Завершенные</a>
</td>
</tr>
</table>
<script>
function console_clonelogin() {
var s = prompt("Введите логин персонажа с которым хотите сразиться:", "");
if ((s !== null) && (s !== '')) {
location.href = "main.php?zayvka=1&r=2&bot_clone=" + s + "&rnd=1";
}
}
</script>
<div style="padding:2px;">
<?php
$zi = false;
if ($u->info['battle'] == 0) {
if (isset($_POST['add_new_zv'])) {
$zv->add();
} elseif (isset($_GET['bot']) && ($u->info['level'] <= 7 || $u->info['admin'] > 0)) {
$zv->addBot();
} elseif (isset($_GET['bot_clone'])) {
$zvclone = Db::getValue(
'select id from users where admin = 0 and `real` = 1 and login = ?',
[$_GET['bot_clone']]
);
$zv->addBotClone($zvclone['id']);
} elseif (isset($_GET['add_group'])) {
$zv->add();
} elseif (isset($_GET['start_haot'])) {
$zv->add();
}
}
if ($u->info['zv'] != 0) {
$zi = Db::getRow('select id, razdel from zayvki where id = ? and start = 0 and cancel = 0 and time > unix_timestamp() - 60 * 60 * 2 or razdel > 3', [$u->info['zv']]);
if (!isset($zi['id'])) {
$zi = false;
$u->info['zv'] = 0;
Db::sql('update stats set zv = 0 where id = ?', [$u->info['id']]);
}
}
if ($u->info['battle'] == 0) {
if (isset($_POST['groupClick']) && !isset($zi['id'])) {
$zg = Db::getRow('select * from zayvki where id = ? and start = 0 and cancel = 0 and time > unix_timestamp() - 60 * 60 * 2 and btl_id = 0 and razdel = 4', [(int)$_POST['groupClick']]);
if (!isset($zg['id'])) {
echo '<div style="text-align: center;"><br><br>Заявка на групповой бой не найдена.</div>';
} else {
$tm_start = floor(($zg['time'] + $zg['time_start'] - time()) / 6) / 10;
$tm_start = $zv->rzv($tm_start);
$tm1 = '';
$tm2 = '';
$tm3 = '';
$users = Db::getRow('select users.id, login, level, align, clan, admin, team from users left join stats on users.id = stats.id where zv = ?', [$zg['id']]);
foreach ($users as $user) {
${'tm' . $user['team']} .= '<b>' . $user['login'] . '</b> [' . $user['level'] . ']<a href="info/' . $user['id'] . '" target="_blank"><img src="//' . Config::get('img') . '/i/inf_capitalcity.gif" title="Инф. о ' . $user['login'] . '" alt="inf"></a><br>';
}
if (empty($tm1)) {
$tm1 = 'группа пока не набрана';
} else {
$tm1 = rtrim($tm1, '<br />');
}
if (empty($tm2)) {
$tm2 = 'группа пока не набрана';
} else {
$tm2 = rtrim($tm2, '<br />');
}
//
if ($zg['teams'] == 3) {
if (empty($tm3)) {
$tm3 = 'группа пока не набрана';
} else {
$tm3 = rtrim($tm3, '<br />');
}
}
$sv1 = Db::getValue('select count(*) from stats where zv = ? and team = 1');
$sv2 = Db::getValue('select count(*) from stats where zv = ? and team = 2');
$sv3 = Db::getValue('select count(*) from stats where zv = ? and team = 3');
$sv1 = $zg['tm1max'] - $sv1;
$sv2 = $zg['tm2max'] - $sv2;
if ($zg['teams'] == 3) {
$sv3 = $zg['tm2max'] - $sv3;
}
?>
</div>
<table style="margin-top:2px;" width="100%">
<tr>
<td> Бой начнется через <?= $tm_start; ?> мин.</td>
<td align="right">
<INPUT class="btn" onClick="location='main.php?zayvka&r=<?= $_GET['r']; ?>&rnd=<?= $code; ?>';"
TYPE=button name=tmp value="Обновить">
<input class="btn" type="button" value="Вернуться"
onclick="location.href='main.php?zayvka&r=<?= $_GET['r']; ?>&rnd=<?= $code; ?>';">
</td>
</tr>
</table>
<h3 align="center">На чьей стороне будете сражаться?</h3>
<table align="center" cellspacing="4" cellpadding="1">
<tr>
<td bgcolor="99CCCC"><b>Группа один:</b><br/>
Максимальное кол-во: <?= $zg['tm1max']; ?><br/>
Ограничения по уровню: <?= $zg['min_lvl_1'] . ' - ' . $zg['max_lvl_1']; ?></td>
<td bgcolor="99CCCC"><b>Группа два:</b><br/>
Максимальное кол-во: <?= $zg['tm2max']; ?><br/>
Ограничения по уровню: <?= $zg['min_lvl_2'] . ' - ' . $zg['max_lvl_2']; ?> </td>
<?php
if ($zg['teams'] == 3) {
?>
<td bgcolor="99CCCC"><b>Группа три:</b><br/>
Максимальное кол-во: <?= $zg['tm2max']; ?><br/>
Ограничения по уровню: <?= $zg['min_lvl_2'] . ' - ' . $zg['max_lvl_2']; ?> </td>
<?php
}
?>
</tr>
<tr>
<td align="center"><?= $tm1; ?>
<br/>
</td>
<td align="center"><?= $tm2; ?>
<br/>
</td>
<?php
if ($zg['teams'] == 3) {
?>
<td align="center"><?= $tm3; ?>
<br/>
</td>
<?php
}
?>
</tr>
<tr>
<td align="center">
<input class="btn" title="На данный момент свободно мест: <?= $sv1 ?>"
onclick="location='main.php?r=<?= $_GET['r'] ?>&zayvka&btl_go=<?= $zg['id'] ?>&tm1=<?= $code ?>'"
type="submit" name="confirm1" value="Я за этих!"/>
</td>
<td align="center">
<input class="btn" title="На данный момент свободно мест: <?= $sv2 ?>"
onclick="location='main.php?r=<?= $_GET['r'] ?>&zayvka&btl_go=<?= $zg['id'] ?>&tm2=<?= $code ?>'"
type="submit" name="confirm2" value="Я за этих!"/>
</td>
<?php
if ($zg['teams'] == 3) {
?>
<td align="center">
<input class="btn" title="На данный момент свободно мест: <?= $sv3 ?>"
onclick="location='main.php?r=<?= $_GET['r'] ?>&zayvka&btl_go=<?= $zg['id'] ?>&tm3=<?= $code ?>'"
type="submit" name="confirm3" value="Я за этих!"/>
</td>
<?php
}
?>
</tr>
</table>
<?php
}
} elseif (isset($_GET['cancelzv']) && !isset($_POST['add_new_zv'])) {
$zv->cancelzv();
} elseif (isset($_GET['startBattle']) && isset($zi['id']) && ($zi['razdel'] >= 1 && $zi['razdel'] <= 3)) {
$zv->startBattle($zi['id']);
}
}
if (isset($_POST['btl_go'])) {
$zv->go($_POST['btl_go']);
} elseif (isset($_GET['btl_go'])) {
$zv->go($_GET['btl_go']);
}
if ($zv->error) {
echo '<b style="color: red">' . $zv->error . '</b><br>';
}
if ($zv->test_s) {
echo '<b style="color: red">' . $zv->test_s . '</b><br>';
}
?>
<table style="padding:2px;" width="100%" border="0" cellspacing="0" cellpadding="2">
<tr>
<td><?php $zv->see(); ?></td>
</tr>
<tr>
<td><?php $zv->seeZv(); ?></td>
</tr>
</table><br/>
<div style="text-align: right">
<?= Config::get('counters') ?>
</div>