if (!defined('GAME')) {
die();
}
class zayvki
{
public $zv_see, $error, $z1n = [4 => 'групповые', 5 => 'хаотичные'], $z2n = [4 => 'группового', 5 => 'хаотичного'];
public function test()
{
global $code, $c, $u;
//Проверяем хаотичные и групповые бои в этом городе
$sp = mysql_query('SELECT * FROM `zayvki` AS `z` WHERE `z`.`city` = "' . $u->info['city'] . '" AND `z`.`btl_id` = "0" AND `z`.`cancel` = "0" AND `z`.`start` = "0" AND (`z`.`razdel` = 4 OR `z`.`razdel` = 5) ORDER BY `z`.`id` DESC LIMIT 11');
while ($pl = mysql_fetch_array($sp)) {
$uz = mysql_query('SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $pl['id'] . '"');
$tm1 = [];
$tm2 = [];
$i = [];
$toChat = '';
$toWhere = '';
while ($t = mysql_fetch_array($uz)) {
if (!isset(${'tm' . $t['team']})) {
${'tm' . $t['team']} = [];
}
if (!isset($i[$t['team']])) {
$i[$t['team']] = 0;
}
${'tm' . $t['team']}[$i[$t['team']]] = $t;
$toChat .= '' . $t['login'] . ',';
$toWhere .= 'OR `id` = "' . $t['id'] . '" ';
$i[$t['team']]++;
}
if ($pl['time_start'] < time() - $pl['time'] || ($pl['razdel'] == 4 && $i[1] >= $pl['tm1max'] && $i[2] >= $pl['tm2max'])) {
$toChat = rtrim($toChat, ',');
$toWhere = ltrim($toWhere, 'OR ');
if ($pl['razdel'] == 4) {
//группы
if (!isset($i[1]) || !isset($i[2])) {
//группа не набрана
$this->cancelGroup($pl, $toChat);
} else {
//Начинаем поединок
$this->startBattle($pl['id'], $toChat . '|-|' . $toWhere);
}
} elseif ($pl['razdel'] == 5) {
//хаоты
if ($i[1] + $i[2] < 4) {
//группа не набрана
$this->cancelGroup($pl, $toChat);
} else {
//Начинаем поединок
$this->startBattle($pl['id'], $toChat . '|-|' . $toWhere);
}
}
}
}
}
public function userInfo()
{
global $u, $c;
$r = '';
if ($u->stats['mpAll'] > 0) {
$pm = $u->stats['mpNow'] / $u->stats['mpAll'] * 100;
}
$ph = $u->stats['hpNow'] / $u->stats['hpAll'] * 100;
$dp = '';
if ($u->stats['mpAll'] <= 0) {
$dp = 'margin-top:13px;';
}
$r .= '
' . $u->microLogin($u->info['id'], 1) . '
' . floor($u->stats['hpNow']) . '/' . $u->stats['hpAll'] . '
';
if ($u->stats['mpAll'] > 0) {
$r .= '
' . floor($u->stats['mpNow']) . '/' . $u->stats['mpAll'] . '
';
}
$r .= '
';
unset($stt, $ph, $pm);
return $r;
}
public function cancelGroup($zv, $uids)
{
$upd = mysql_query('UPDATE `stats` SET `zv` = "0" WHERE `zv` = "' . $zv['id'] . '"');
if ($upd) {
$upd = mysql_query('UPDATE `zayvki` SET `cancel` = "' . time() . '" WHERE `id` = "' . $zv['id'] . '"');
if ($upd) {
$text = ' Не удалось начать поединок по причине: Группа не набрана.';
mysql_query("INSERT INTO `chat` (`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('" . $zv['city'] . "','','','" . $uids . "','" . $text . "','" . time() . "','11','0')");
}
}
}
public function add()
{
global $u, $c, $code;
if (isset($_GET['r'])) {
$r = round(intval($_GET['r']));
if ($r >= 1 && $r <= 5) {
$az = 1;
if ($r == 1 && $u->info['level'] > 0) {
$az = 0;
$this->error = 'Вы уже выросли из ползунков ;)';
}
if (($r == 2 || $r == 3) && $u->info['level'] < 1) {
$az = 0;
$this->error = 'Вы еще не выросли из ползунков ;)';
}
if (($r == 4 || $r == 5) && $u->info['level'] < 2) {
$az = 0;
$this->error = 'В ' . $this->z1n[$r] . ' бои только с второго уровня.';
}
if (!isset($_POST['stavkakredit'])) {
$_POST['stavkakredit'] = 0;
}
$money = (int)($_POST['stavkakredit'] * 100);
$money = round(($money / 100), 2);
if ($u->info['hpNow'] < $u->stats['hpAll'] / 100 * 30 && ($r >= 1 || $r <= 3)) {
$this->error = 'Вы еще слишком ослаблены чтобы начать новый бой';
$az = 0;
} elseif ($r == 3 && $money > 0 && $u->info['level'] < 4) {
$this->error = 'Бои на деньги проводятся с 4-го уровня';
$az = 0;
} elseif ($r == 3 && $money < 0.5 && $money > 0) {
$this->error = 'Минимальная ставка 0.50 кр.';
$az = 0;
} elseif ($r == 3 && $money > 30) {
$this->error = 'Максимальная ставка 30.00 кр.';
$az = 0;
} elseif ($r == 3 && $money > $u->info['money']) {
$this->error = 'У Вас недостаточно денег, чтобы подать заявку';
$az = 0;
}
if ($u->info['zv'] > 0) {
$az = 0;
$this->error = 'Вы уже находите в заявке.';
}
if ($az == 1) {
$nz = [];
$nz['city'] = $u->info['city'];
$nz['creator'] = $u->info['id'];
$nz['type'] = 0;
if ($_POST['k'] == 1) {
$nz['type'] = 1;
}
$_POST['timeout'] = round(intval(mysql_real_escape_string($_POST['timeout'])));
if ($_POST['timeout'] == 1 || $_POST['timeout'] == 2 || $_POST['timeout'] == 3 || $_POST['timeout'] == 4 || $_POST['timeout'] == 5) {
$nz['timeout'] = $_POST['timeout'] * 60;
} else {
$nz['timeout'] = 3 * 60;
}
if ($r == 3) {
if ($_POST['onlyfor'] != '') {
$nz['withUser'] = mysql_real_escape_string($_POST['onlyfor']);
}
}
$nz['razdel'] = $r;
$nz['time_start'] = 0;
$nz['min_lvl_1'] = 0;
$nz['min_lvl_2'] = 0;
$nz['max_lvl_1'] = 21;
$nz['max_lvl_2'] = 21;
$nz['tm1max'] = 0;
$nz['tm2max'] = 0;
$nz['travmaChance'] = 0;
$nz['invise'] = 0;
$nz['money'] = 0;
$nz['comment'] = '';
$nz['tm1'] = 0;
$nz['tm2'] = 0;
$gad = 1;
if ($r == 3) {
$nz['money'] = $money;
}
if ($r == 5 && $u->info['level'] > 1) {
//хаотичный бой
if ($_POST['startime2']) {
$nz['time_start'] = (int)$_POST['startime2'];
$nz['comment'] = $_POST['cmt'];
$nz['comment'] = str_replace('"', '"', $nz['comment']);
if ($nz['time_start'] != 300 && $nz['time_start'] != 600 && $nz['time_start'] != 900 && $nz['time_start'] != 1200 && $nz['time_start'] != 1800) {
$nz['time_start'] = 600;
}
if (isset($_POST['mut_hidden'])) {
$nz['invise'] = 1;
}
$nz['timeout'] = (int)$_POST['timeout'];
if ($nz['timeout'] != 1 && $nz['timeout'] != 2 && $nz['timeout'] != 3 && $nz['timeout'] != 4 && $nz['timeout'] != 5) {
$nz['timeout'] = 3;
}
//Генерируем уровни союзника
$lvl = (int)$_POST['levellogin1'];
if ($lvl == 0) {
$nz['min_lvl_1'] = 2;
$nz['max_lvl_1'] = 21;
} elseif ($lvl == 3) {
$nz['min_lvl_1'] = $u->info['level'];
$nz['max_lvl_1'] = $u->info['level'];
} elseif ($lvl == 6) {
$nz['min_lvl_1'] = $u->info['level'] - 1;
$nz['max_lvl_1'] = $u->info['level'] + 1;
} else {
$nz['min_lvl_1'] = 2;
$nz['max_lvl_1'] = 2;
}
if ((int)$_POST['k'] == 1) {
//кулачный бой
$nz['type'] = 1;
}
$nz['timeout'] = $nz['timeout'] * 60;
$nz['tm1'] = 100 * $u->info['level'] + 10 * $u->info['upLevel'] + $u->info['exp'] + $u->stats['reting'];
} else {
$gad = 0;
$this->error = 'Что-то не так... ';
}
} elseif ($r == 4 && $u->info['level'] > 1) {
//групповой бой
//'Array ( [startime] => 300 [timeout] => 1 [nlogin1] => 11 [levellogin1] => 0 [nlogin2] => 11 [levellogin2] => 0 [k] => 1 [travma] => on [mut_clever] => on [cmt] => тест [open] => Начнем месилово! :) )';
//здесь заносим и проверяем данные на гурпповой бой
if ($_POST['startime']) {
$nz['time_start'] = (int)$_POST['startime'];
$nz['comment'] = $_POST['cmt'];
$nz['comment'] = str_replace('"', '"', $nz['comment']);
if ($nz['time_start'] != 300 && $nz['time_start'] != 600 && $nz['time_start'] != 900 && $nz['time_start'] != 1200 && $nz['time_start'] != 1800) {
$nz['time_start'] = 600;
}
$nz['timeout'] = (int)$_POST['timeout'];
if ($nz['timeout'] != 1 && $nz['timeout'] != 2 && $nz['timeout'] != 3 && $nz['timeout'] != 4 && $nz['timeout'] != 5) {
$nz['timeout'] = 3;
}
$nz['timeout'] = $nz['timeout'] * 60;
$nz['tm1max'] = (int)$_POST['nlogin1'];
if ($nz['tm1max'] < 1 || $nz['tm1max'] > 99) {
$this->error .= 'Неверное кол-во союзников ';
$gad = 0;
}
$nz['tm2max'] = (int)$_POST['nlogin2'];
if ($nz['tm2max'] < 1 || $nz['tm2max'] > 99) {
$this->error .= 'Неверное кол-во противников ';
$gad = 0;
}
if ($nz['tm1max'] + $nz['tm2max'] < 3) {
$this->error .= 'Заявки 1 на 1 подаются в разделе физические или договорные бои ';
$gad = 0;
}
//Генерируем уровни союзника
$lvl = (int)$_POST['levellogin1'];
if ($lvl == 0) {
$nz['min_lvl_1'] = 2;
$nz['max_lvl_1'] = 21;
} elseif ($lvl == 1) {
$nz['min_lvl_1'] = 2;
$nz['max_lvl_1'] = $u->info['level'];
} elseif ($lvl == 2) {
$nz['min_lvl_1'] = 2;
$nz['max_lvl_1'] = $u->info['level'] - 1;
} elseif ($lvl == 3) {
$nz['min_lvl_1'] = $u->info['level'];
$nz['max_lvl_1'] = $u->info['level'];
} elseif ($lvl == 4) {
$nz['min_lvl_1'] = $u->info['level'];
$nz['max_lvl_1'] = $u->info['level'] + 1;
} elseif ($lvl == 5) {
$nz['min_lvl_1'] = $u->info['level'] - 1;
$nz['max_lvl_1'] = $u->info['level'];
} elseif ($lvl == 6) {
$nz['min_lvl_1'] = $u->info['level'] - 1;
$nz['max_lvl_1'] = $u->info['level'] + 1;
} elseif ($lvl == 6) {
$nz['min_lvl_1'] = 99;
} else {
$this->error = 'Что-то не так... ';
$gad = 0;
}
//Генерируем уровни противника
$lvl = (int)$_POST['levellogin2'];
if ($lvl == 0) {
$nz['min_lvl_2'] = 2;
$nz['max_lvl_2'] = 21;
} elseif ($lvl == 1) {
$nz['min_lvl_2'] = 2;
$nz['max_lvl_2'] = $u->info['level'];
} elseif ($lvl == 2) {
$nz['min_lvl_2'] = 2;
$nz['max_lvl_2'] = $u->info['level'] - 1;
} elseif ($lvl == 3) {
$nz['min_lvl_2'] = $u->info['level'];
$nz['max_lvl_2'] = $u->info['level'];
} elseif ($lvl == 4) {
$nz['min_lvl_2'] = $u->info['level'];
$nz['max_lvl_2'] = $u->info['level'] + 1;
} elseif ($lvl == 5) {
$nz['min_lvl_2'] = $u->info['level'] - 1;
$nz['max_lvl_2'] = $u->info['level'];
} elseif ($lvl == 6) {
$nz['min_lvl_2'] = $u->info['level'] - 1;
$nz['max_lvl_2'] = $u->info['level'] + 1;
} elseif ($lvl == 6) {
$nz['min_lvl_2'] = 99;
} else {
$this->error = 'Что-то не так... ';
$gad = 0;
}
if ($nz['min_lvl_1'] < 2) {
$nz['min_lvl_1'] = 2;
}
if ($nz['max_lvl_1'] > 21) {
$nz['max_lvl_1'] = 21;
}
if ($nz['min_lvl_2'] < 2) {
$nz['min_lvl_2'] = 2;
}
if ($nz['max_lvl_2'] > 21) {
$nz['max_lvl_2'] = 21;
}
if ((int)$_POST['k'] == 1) {
//кулачный бой
$nz['type'] = 1;
}
} else {
$gad = 0;
$this->error = 'Что-то не так... ';
}
}
if ($gad == 1) {
if (!isset($nz['withUser'])) {
$nz['withUser'] = '';
}
$bt1 = (int)$_POST['bot1'];
$bt2 = (int)$_POST['bot2'];
if ($bt1 > 99) {
$bt1 = 99;
}
if ($bt2 > 99) {
$bt2 = 99;
}
if ($bt1 < 0) {
$bt1 = 0;
}
if ($bt2 < 0) {
$bt2 = 0;
}
$ins = mysql_query('INSERT INTO `zayvki` (`bot1`,`bot2`,`time`,`city`,`creator`,`type`,`time_start`,`timeout`,`min_lvl_1`,`min_lvl_2`,`max_lvl_1`,`max_lvl_2`,`tm1max`,`tm2max`,`travmaChance`,`invise`,`razdel`,`comment`,`money`,`withUser`,`tm1`,`tm2`) VALUES (
"' . ((int)$bt1) . '",
"' . ((int)$bt2) . '",
"' . time() . '",
"' . $nz['city'] . '",
"' . $nz['creator'] . '",
"' . $nz['type'] . '",
"' . $nz['time_start'] . '",
"' . mysql_real_escape_string($nz['timeout']) . '",
"' . mysql_real_escape_string($nz['min_lvl_1']) . '",
"' . mysql_real_escape_string($nz['min_lvl_2']) . '",
"' . mysql_real_escape_string($nz['max_lvl_1']) . '",
"' . mysql_real_escape_string($nz['max_lvl_2']) . '",
"' . mysql_real_escape_string($nz['tm1max']) . '",
"' . mysql_real_escape_string($nz['tm2max']) . '",
"' . $nz['travmaChance'] . '",
"' . $nz['invise'] . '",
"' . $nz['razdel'] . '",
"' . mysql_real_escape_string($nz['comment']) . '",
"' . mysql_real_escape_string($nz['money']) . '",
"' . $nz['withUser'] . '","' . $nz['tm1'] . '","' . $nz['tm2'] . '")');
$zid = mysql_insert_id();
if ($ins) {
mysql_query('UPDATE `stats` SET `zv`="' . $zid . '",`team`="1" WHERE `id`="' . $u->info['id'] . '" LIMIT 1');
$u->info['zv'] = $zid;
$this->error = 'Заявка на бой подана';
} else {
$this->error = 'Вы не смогли подать заявку...';
}
}
}
}
}
}
//тренеровочный бой
public function addBot()
{
global $u, $c, $code;
if ($u->info['level'] > 3 && $u->info['admin'] == 0 && $u->info['id'] != 1011840) {
$bot = false;
} else {
$bot = $u->addNewbot($id['id'], null, $u->info['id']);
}
if ($bot == false) {
$this->error = 'Бои с монстрами, нежитью, клонами и прочими вурдалаками проводятся только для персонажей младше 4 уровня... Со стороны посматривает Общий Враг, ему явно что-то не понравилось... ';
} elseif ($u->info['hpNow'] < $u->stats['hpAll'] / 100 * 30 && ($r >= 1 || $r <= 3)) {
$this->error = 'Вы еще слишком ослаблены чтобы начать новый бой';
$az = 0;
} elseif ($bot == false) {
echo 'Cannot start battle (no prototype "ND0Clone") ';
} else {
//создаем поединок с ботом
$expB = 25;
$btl = ['players' => '', 'timeout' => 60, 'type' => 0, 'invis' => 0, 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0];
$ins = mysql_query('INSERT INTO `battle` (`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"' . $u->info['city'] . '",
"' . time() . '",
"' . $btl['players'] . '",
"' . $btl['timeout'] . '",
"' . $btl['type'] . '",
"' . $btl['invis'] . '",
"' . $btl['noinc'] . '",
"' . $btl['travmChance'] . '",
"' . $btl['typeBattle'] . '",
"' . $btl['addExp'] . '",
"' . $btl['money'] . '")');
if ($ins) {
$btl_id = mysql_insert_id();
//обновляем данные о поединке
$upd2 = mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $u->info['id'] . '" OR `id` = "' . $bot . '" LIMIT 2');
mysql_query('UPDATE `stats` SET `team`="1" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot . '" LIMIT 1');
//Если бой кулачный, то снимаем вещи
if ($btl['type'] == 1) {
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $u->info['id'] . '" AND `inOdet`!=0');
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $bot . '" AND `inOdet`!=0');
}
//обновляем заявку, что бой начался
$u->info['battle'] = $btl_id;
//Отправляем сообщение в чат всем бойцам
mysql_query("INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES ('" . $u->info['city'] . "','" . $u->info['room'] . "','" . $u->info['login'] . "','" . time() . "','11','0','117')");
die('');
} else {
$this->error = 'Cannot start battle (no prototype "ABD0Clone")';
}
}
}
//Изломы
public function startIzlom($id2, $lvl)
{
global $u, $c, $code;
$lvl = (int)$lvl;
$bots = [1 => 'Снеговик Меченосец'];
$id = mysql_fetch_array(mysql_query('SELECT * FROM `test_bot` WHERE `login` = "' . $bots[$id2] . ' [' . $lvl . ']" AND `active` = "1" LIMIT 1'));
$bot = $u->addNewbot($id['id'], null);
if (isset($id['id']) && $bot != false) {
//создаем поединок с ботом
$expB = -$bot['expB'];
$btl = ['players' => '', 'timeout' => 60, 'type' => 9, 'invis' => 0, 'noinc' => 0, 'travmChance' => 0, 'typeBattle' => 0, 'addExp' => $expB, 'money' => 0, 'izlom' => (int)$id2, 'izlomLvl' => (int)$lvl];
$ins = mysql_query('INSERT INTO `battle` (`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`,`izlom`,`izlomLvl`) VALUES (
"' . $u->info['city'] . '",
"' . time() . '",
"' . $btl['players'] . '",
"' . $btl['timeout'] . '",
"' . $btl['type'] . '",
"' . $btl['invis'] . '",
"' . $btl['noinc'] . '",
"' . $btl['travmChance'] . '",
"' . $btl['typeBattle'] . '",
"' . $btl['addExp'] . '",
"' . $btl['money'] . '","' . $btl['izlom'] . '","' . $btl['izlomLvl'] . '")');
if ($ins) {
$btl_id = mysql_insert_id();
//обновляем данные о поединке
$upd2 = mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $u->info['id'] . '" OR `id` = "' . $bot['id'] . '" LIMIT 2');
mysql_query('UPDATE `stats` SET `team`="1" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `stats` SET `team`="2" WHERE `id` = "' . $bot['id'] . '" LIMIT 1');
//Если бой кулачный, то снимаем вещи
if ($btl['type'] == 1) {
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $u->info['id'] . '" AND `inOdet`!=0');
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $bot['id'] . '" AND `inOdet`!=0');
}
//обновляем заявку, что бой начался
$u->info['battle'] = $btl_id;
//Отправляем сообщение в чат всем бойцам
mysql_query("INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES ('" . $u->info['city'] . "','" . $u->info['room'] . "','" . $u->info['login'] . "','" . time() . "','11','0','117')");
die('');
} else {
$this->error = 'Cannot start battle (no prototype "ABD0' . $id['id'] . '")';
}
} else {
echo 'Cannot start battle (no prototype "ND0IZ' . $lvl . '") ';
}
}
public function startBattle($id, $vars = null)
{
global $c, $code, $u;
mysql_query('START TRANSACTION');
$z = mysql_fetch_array(mysql_query('SELECT * FROM `zayvki` WHERE `id`="' . $id . '" AND `start` = "0" AND `cancel` = "0" AND (`time` > "' . (time() - 60 * 60 * 2) . '" OR `razdel` > 3) LIMIT 1'));
if (isset($z['id'])) {
$vars = explode('|-|', $vars);
if ($z['razdel'] >= 4 && $zv['razdel'] <= 5) {
//начало группового или хаотичного боя
$btl_id = 0;
$btl = [
'players' => '',
'timeout' => $z['timeout'],
'type' => $z['type'],
'invis' => 0,
'noinc' => 0,
'travmChance' => 0,
'typeBattle' => 0,
'addExp' => 0,
'money' => 0];
$ins = mysql_query('INSERT INTO `battle` (`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"' . $u->info['city'] . '",
"' . time() . '",
"' . mysql_real_escape_string($btl['players']) . '",
"' . mysql_real_escape_string($btl['timeout']) . '",
"' . mysql_real_escape_string($btl['type']) . '",
"' . mysql_real_escape_string($btl['invis']) . '",
"' . mysql_real_escape_string($btl['noinc']) . '",
"' . mysql_real_escape_string($btl['travmChance']) . '",
"' . mysql_real_escape_string($btl['typeBattle']) . '",
"' . mysql_real_escape_string($btl['addExp']) . '",
"' . mysql_real_escape_string($btl['money'], 2) . '")');
$btl_id = mysql_insert_id();
if ($btl_id > 0) {
//обновляем данные о поединке
$upd1 = mysql_query('UPDATE `stats` SET `zv`="0" WHERE `zv` = "' . $z['id'] . '"');
$upd2 = mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '" WHERE ' . $vars[1] . '');
//Если бой кулачный, то снимаем вещи
if ($z['type'] == 1) {
//mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "'.$u->info['id'].'" AND `inOdet`!=0');
}
//обновляем заявку, что бой начался
$upd = mysql_query('UPDATE `zayvki` SET `start` = "' . time() . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $z['id'] . '" LIMIT 1');
$u->info['battle'] = $btl_id;
//Отправляем сообщение в чат всем бойцам
mysql_query("INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES ('" . $u->info['city'] . "','-1','" . $vars[0] . "','" . time() . "','11','0','117')");
die('');
}
} elseif ($z['razdel'] >= 1 && $z['razdel'] <= 3) {
//начало PvP
if ($u->info['team'] == 1 && $u->info['zv'] == $z['id']) {
$zu = mysql_fetch_array(mysql_query('SELECT * FROM `stats` WHERE `zv`="' . $z['id'] . '" AND `team` = "2" LIMIT 1'));
if (isset($zu['id'])) {
$uz = mysql_fetch_array(mysql_query('SELECT `login`,`money` FROM `users` WHERE `id`="' . $zu['id'] . '" LIMIT 1'));
//создаем поединок
$btl_id = 0;
if ($uz['money'] < $z['money'] || $u->info['money'] < $z['money']) {
$z['money'] = 0;
}
$btl = [
'players' => '',
'timeout' => $z['timeout'],
'type' => $z['type'],
'invis' => 0,
'noinc' => 0,
'travmChance' => 0,
'typeBattle' => 0,
'addExp' => 0,
'money' => round($z['money'], 2)
];
$ins = mysql_query('INSERT INTO `battle` (`city`,`time_start`,`players`,`timeout`,`type`,`invis`,`noinc`,`travmChance`,`typeBattle`,`addExp`,`money`) VALUES (
"' . $u->info['city'] . '",
"' . time() . '",
"' . mysql_real_escape_string($btl['players']) . '",
"' . mysql_real_escape_string($btl['timeout']) . '",
"' . mysql_real_escape_string($btl['type']) . '",
"' . mysql_real_escape_string($btl['invis']) . '",
"' . mysql_real_escape_string($btl['noinc']) . '",
"' . mysql_real_escape_string($btl['travmChance']) . '",
"' . mysql_real_escape_string($btl['typeBattle']) . '",
"' . mysql_real_escape_string($btl['addExp']) . '",
"' . mysql_real_escape_string($btl['money']) . '")');
$btl_id = mysql_insert_id();
if ($ins) {
//обновляем данные о поединке
$upd1 = mysql_query('UPDATE `stats` SET `zv`="0" WHERE `zv` = "' . $z['id'] . '" LIMIT 2');
$upd2 = mysql_query('UPDATE `users` SET `battle`="' . $btl_id . '" WHERE `id` = "' . $u->info['id'] . '" OR `id` = "' . $zu['id'] . '" LIMIT 2');
//Если бой кулачный, то снимаем вещи
if ($z['type'] == 1) {
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $u->info['id'] . '" AND `inOdet`!=0');
mysql_query('UPDATE `items_users` SET `inOdet`="0" WHERE `uid` = "' . $zu['id'] . '" AND `inOdet`!=0');
}
//обновляем заявку, что бой начался
$upd = mysql_query('UPDATE `zayvki` SET `start` = "' . time() . '",`btl_id` = "' . $btl_id . '" WHERE `id` = "' . $z['id'] . '" LIMIT 1');
$u->info['battle'] = $btl_id;
//Отправляем сообщение в чат всем бойцам
mysql_query("INSERT INTO `chat` (`city`,`room`,`to`,`time`,`type`,`toChat`,`sound`) VALUES ('" . $u->info['city'] . "','" . $u->info['room'] . "','" . $uz['login'] . "','" . time() . "','11','0','117')");
die('');
} else {
$this->error = 'Ошибка создания битвы.';
}
} else {
$this->error = 'Вы не можете начать поединок, вашу заявку никто не принял.';
}
} else {
$this->error = 'Вы не можете начать поединок.';
}
}
}
mysql_query('COMMIT');
}
public function cancelzv()
{
global $u, $c, $code, $zi;
if (isset($_GET['cancelzv'], $zi['id']) && $zi['razdel'] >= 1 && $zi['razdel'] <= 3) {
$enemy = mysql_fetch_array(mysql_query('SELECT `u`.*,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi['id'] . '" AND `st`.`team` = "2" LIMIT 1'));
if (isset($enemy['id'])) {
if ($zi['razdel'] >= 1 && $zi['razdel'] <= 3) {
if ($u->info['team'] == 1) {
//выкидываем из заявки + пишем сообщение в чат
$upd = mysql_query('UPDATE `stats` SET `zv` = "0",`team`="0" WHERE `id` = "' . $enemy['id'] . '" LIMIT 1');
if ($upd) {
$this->error = 'Вы отказали ' . $enemy['login'] . ' в поединке';
//отправляем сообщение в чат
$sa = '';
if ($u->info['sex'] == 2) {
$sa = 'а';
}
$text = ' [login:' . $u->info['login'] . '] отказал' . $sa . ' вам в поединке.';
mysql_query("INSERT INTO `chat` (`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('" . $enemy['city'] . "','" . $enemy['room'] . "','','" . $enemy['login'] . "','" . $text . "','" . time() . "','10','0')");
}
} elseif ($u->info['id'] == $enemy['id'] && $zi['start'] == 0) {
//выкидываем из заявки + пишем сообщение в чат
$upd = mysql_query('UPDATE `stats` SET `zv` = "0",`team`="0" WHERE `id` = "' . $enemy['id'] . '" LIMIT 1');
if ($upd) {
$uz = mysql_fetch_array(mysql_query('SELECT `u`.`sex`,`u`.`login`,`u`.`city`,`u`.`room`,`u`.`id`,`st`.`zv`,`st`.`team` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi['id'] . '" AND `st`.`team` = "1" LIMIT 1'));
if (isset($uz['id'])) {
$this->error = 'Вы отозвали свой запрос на бой.';
//отправляем сообщение в чат
$sa = '';
if ($u->info['sex'] == 2) {
$sa = 'а';
}
$text = ' [login:' . $u->info['login'] . '] отозвал' . $sa . ' свой запрос на бой.';
mysql_query("INSERT INTO `chat` (`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('" . $uz['city'] . "','" . $uz['room'] . "','','" . $uz['login'] . "','" . $text . "','" . time() . "','10','0')");
}
$u->info['zv'] = 0;
$u->info['team'] = 0;
}
}
}
} else {
if ($zi['razdel'] >= 1 && $zi['razdel'] <= 3 && $u->info['team'] == 1) {
//удаляем заявку на бой
$upd = mysql_query('UPDATE `zayvki` SET `cancel` = "' . time() . '" WHERE `id` = "' . $zi['id'] . '" LIMIT 1');
if ($upd) {
mysql_query('UPDATE `stats` SET `zv` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
$this->error = 'Вы отозвали свою заявку';
$zi = false;
$u->info['zv'] = 0;
}
}
}
}
}
public function see()
{
global $u, $c, $code, $zi, $cron;
if (isset($_GET['r']) && ((!isset($_GET['new_group']) && !isset($_POST['groupClick'])) || isset($zi['id']))) {
$r = round(intval($_GET['r']));
if ($r >= 1 && $r <= 5) {
$this->zv_see = 1;
if ($u->room['FR'] == 0) {
echo 'Подать заявку можно только в комнатах бойцовского клуба ';
$this->zv_see = 0;
} elseif ($r == 1 && $u->info['level'] > 0) {
echo 'Вы уже выросли из ползунков ;) ';
$this->zv_see = 0;
} elseif ($r > 1 && $r < 6 && $u->info['level'] < 1) {
echo 'Вы еще не выросли из ползунков ;) ';
$this->zv_see = 0;
} elseif ($r > 3 && $r < 6 && $u->info['level'] < 2) {
echo 'В ' . $this->z1n[$r] . ' бои только с второго уровня. ';
$this->zv_see = 0;
} elseif ($r == 1 && $u->info['level'] > 0) {
echo 'Вы уже выросли из ползунков ;) ';
$this->zv_see = 0;
} elseif ($u->info['zv'] > 0 && $u->info['battle'] == 0) {
if ($zi['razdel'] == 1 || $zi['razdel'] == 2 || $zi['razdel'] == 3) {
echo '
';
if ($u->info['team'] == 1) {
$uz = mysql_fetch_array(mysql_query('SELECT `u`.`sex`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi['id'] . '" AND `st`.`team`="2" LIMIT 1'));
if (!isset($uz['id'])) {
//если никто не принял
echo 'Вы уже подали заявку на бой
';
} else {
//если кто-то принял
$sa = '';
if ($uz['sex'] == 2) {
$sa = 'а';
}
echo '
Вашу заявку принял' . $sa . ' ' . $ca . ' ' . $u->microLogin($uz['id'], 1) . '
Хотите подтвердить бой? ';
}
} else {
$uz = mysql_fetch_array(mysql_query('SELECT `u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $zi['id'] . '" AND `st`.`team`="1" LIMIT 1'));
if (isset($uz['id'])) {
echo 'Ожидаем подтверждения боя от ' . $u->microLogin($uz['id'], 1) . '
';
} else {
//удаляем заявку
}
}
echo '
';
} else {
$tm_start = floor(($zi['time'] + $zi['time_start'] - time()) / 6) / 10;
$tm_start = $this->rzv($tm_start);
echo '
Ожидаем начала ' . $this->z2n[$zi['razdel']] . ' боя ';
$sv0 = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `stats` WHERE `zv` = "' . $zi['id'] . '" LIMIT 100'));
if ($sv0[0] <= 1) {
if (isset($_GET['cancelzvnow'])) {
echo ' Заявка на бой отменена ';
$u->info['zv'] = 0;
mysql_query('UPDATE `stats` SET `zv` = "0",`team` = "0" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
} else {
echo ' Отменить ';
}
}
unset($sv0);
echo ' Ваш бой начнется через ' . $tm_start . ' мин.';
}
} elseif ($r == 1 || $r == 2 || $r == 3) {
//новички,физические,договорные
$zi = [1 => 'Если вы не достигли первого уровня, то для вас это единственный способ для проведения битв.', 2 => 'Здесь вы можете найти себе достойного противника для сражения.', 3 => 'Если вы предварительно с кем-то договорились о поединке, то лучше здесь подать заявку.'];
$dv = '';
if ($r == 3) {
$dv = ' Логин противника
Бой на деньги, ставка
';
} else {
$dv = ' ';
if ($u->info['level'] < 4 || $u->info['admin'] > 0 || $u->info['id'] == 1011840) {
$dv .= ' ';
}
}
echo '
';
} elseif ($r == 4) {
//групповые
echo '
';
} elseif ($r == 5) {
//хаотичные
echo 'Хаотичный бой - разновидность группового, где группы формируются автоматически. Бой не начнется, если собралось меньше 4-х человек.
Подать заявку на хаотичный бой
';
}
} elseif ($r == 6) {
//текущие
echo 'Текущие бои...';
} elseif ($r == 7) {
//завершенные
$btl = '';
$dt = time();
$slogin = $u->info['login'];
$see = '';
if ($btl == '') {
$see .= 'В этот день не было боев, или же, летописец опять потерял свитки... ';
} else {
$see .= $btl;
}
echo $see;
} else {
if ((!isset($_GET['new_group']) && !isset($_POST['groupClick'])) || isset($zi['id'])) {
echo 'Выберите раздел ';
}
}
} else {
if ((!isset($_GET['new_group']) && !isset($_POST['groupClick'])) || isset($zi['id'])) {
echo 'Выберите раздел ';
}
}
}
public function rzv($v)
{
$v = explode('.', $v);
if (!isset($v[1])) {
$v = $v[0] . '.0';
} else {
$v = $v[0] . '.' . $v[1];
}
return $v;
}
public function rzInfo($id)
{
global $u;
$r = '';
$w = mysql_num_rows(mysql_query('SELECT * FROM `zayvki` WHERE `time` > ' . (time() - 7200) . ' AND `city` = "' . $u->info['city'] . '" AND `cancel` = "0" AND `start` = "0" AND `razdel` = "' . $id . '" AND (`min_lvl_1` <= ' . $u->info['level'] . ' OR `min_lvl_2` <= ' . $u->info['level'] . ') AND (`max_lvl_1` >= ' . $u->info['level'] . ' OR `max_lvl_2` >= ' . $u->info['level'] . ')'));
if ($w > 0) {
$r = ' (' . $w . ') ';
}
return $r;
}
public function testzvu($id, $tm, $bt)
{
$r = 0;
if ($bt == 0) {
$r = mysql_num_rows(mysql_query('SELECT `id` FROM `stats` WHERE `zv` = "' . $id . '" AND `team` = "' . $tm . '"'));
} else {
$r = mysql_num_rows(mysql_query('SELECT `id` FROM `stats` WHERE `zv` = "' . $id . '" AND `team` = "' . $tm . '" AND `bot` = "2"'));
}
return $r;
}
public function seeZv()
{
global $u, $c, $code, $zi;
if (isset($_GET['r']) && $this->zv_see == 1) {
$r = round(intval($_GET['r']));
if ($r >= 1 && $r <= 5) {
//Список заявок
$i = 0;
$cl = mysql_query('SELECT * FROM `zayvki` WHERE `razdel` = "' . mysql_real_escape_string($r) . '" AND `start` = "0" AND `cancel` = "0" AND `time` > "' . (time() - 60 * 60 * 2) . '" AND `city` = "' . $u->info['city'] . '" ORDER BY `id` DESC');
$zvb = '';
if ($r == 4 || $r == 5) {
/*echo ' ';*/
}
while ($pl = mysql_fetch_array($cl)) {
if ($pl['razdel'] == 5) {
//Заявки хаотичного боя
$tm = '';
$tmStart = floor(($pl['time'] + $pl['time_start'] - time()) / 6) / 10;
$tmStart = $this->rzv($tmStart);
$users = mysql_query('SELECT `u`.`id`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`u`.`admin`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON `u`.`id` = `st`.`id` WHERE `st`.`zv` = "' . $pl['id'] . '"');
while ($s = mysql_fetch_array($users)) {
$tm .= $u->microLogin($uz['id'], 1) . ', ';
}
$rad = '';
$tm = rtrim($tm, ', ');
if (!isset($zi['id'])) {
$rad = ' ';
}
$n1tv = '';
if ($pl['invise'] == 1) {
//невидимый бой
$tm = 'невидимый ';
$n1tv = ' ';
}
$zvb .= '' . $rad . '' . date('H:i', $pl['time']) . ' (' . $tm . ') (' . $pl['min_lvl_1'] . '-' . $pl['max_lvl_1'] . ') ' . $n1tv . ' Бой начнется через ' . $tmStart . ' мин., таймаут ' . ($pl['timeout'] / 60) . ' мин. ';
} elseif ($pl['razdel'] == 4) {
//Заявки группового боя
$tm1 = '';
$tm2 = '';
$tmStart = floor(($pl['time'] + $pl['time_start'] - time()) / 6) / 10;
$tmStart = $this->rzv($tmStart);
//Персонаж в заявке, подключаем ему противника
//Ищем апонента для групповых
$rndo = rand(0, 1000);
if ($rndo < 250) {
$apo = [];
if (rand(0, 100) < 51) {
$apo['team'] = 1;
} else {
$apo['team'] = 2;
}
if ($this->testzvu($pl['id'], $apo['team'], 0) < $pl['tm' . $apo['team'] . 'max'] && $this->testzvu($pl['id'], $apo['team'], 1) < $pl['bot' . $apo['team']]) {
$spj = mysql_fetch_array(mysql_query('SELECT `u`.*,`st`.* FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON (`u`.`id` = `st`.`id`) WHERE (`u`.`level` >= ' . $pl['min_lvl_' . $apo['team']] . ' AND `u`.`level` <= ' . $pl['max_lvl_' . $apo['team']] . ') AND `st`.`bot` = "2" AND `u`.`battle` = "0" AND `st`.`zv` = "0" LIMIT 1'));
if (isset($spj['id'])) {
mysql_query('UPDATE `stats` SET `hpNow` = "3000",`mpNow` = "3000",`zv` = "' . $pl['id'] . '",`team` = "' . $apo['team'] . '" WHERE `id` = "' . $spj['id'] . '" LIMIT 1');
}
}
}
//генерируем команды
$users = mysql_query('SELECT `u`.`id`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`u`.`admin`,`st`.`team` FROM `users` AS `u` LEFT JOIN `stats` AS `st` ON `u`.`id` = `st`.`id` WHERE `st`.`zv` = "' . $pl['id'] . '"');
while ($s = mysql_fetch_array($users)) {
${'tm' . $s['team']} .= $u->microLogin($s['id'], 1) . ', ';
}
if ($tm1 == '') {
$tm1 = 'группа пока не набрана';
} else {
$tm1 = rtrim($tm1, ', ');
}
if ($tm2 == '') {
$tm2 = 'группа пока не набрана';
} else {
$tm2 = rtrim($tm2, ', ');
}
$rad = '';
if (!isset($zi['id'])) {
$rad = ' ';
}
$zvb .= '' . $rad . '' . date('H:i', $pl['time']) . ' ' . $pl['tm1max'] . ' ( ' . $pl['min_lvl_1'] . '-' . $pl['max_lvl_1'] . ') на ' . $pl['tm2max'] . ' ( ' . $pl['min_lvl_2'] . '-' . $pl['max_lvl_2'] . ') (' . $tm1 . ') против (' . $tm2 . ') Бой начнется через ' . $tmStart . ' мин., таймаут ' . ($pl['timeout'] / 60) . ' мин. ';
} elseif ($pl['razdel'] >= 1 && $pl['razdel'] <= 3) {
$uz = mysql_fetch_array(mysql_query('SELECT `u`.`banned`,`u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $pl['id'] . '" AND `st`.`team`="1" LIMIT 1'));
if (isset($uz['id'])) {
$uze = mysql_fetch_array(mysql_query('SELECT `u`.*,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $pl['id'] . '" AND `st`.`team` = "2" LIMIT 1'));
$d1 = '';
if ($uz['id'] == $u->info['id'] || $uze['id'] == $u->info['id']) {
$d1 = 'disabled="disabled"';
}
if (!isset($uze['id']) || $u->info['zv'] == $pl['id']) {
$enm = '';
if (isset($uze['id'])) {
$enm = ' против ' . $u->microLogin($uze['id'], 1) . '';
}
if ($uz['banned'] > 0) {
$pl['id'] = 0;
$d1 = 'disabled="disabled"';
$zvb .= '';
}
$dp1 = '';
if ($pl['money'] > 0) {
$dp1 = ' Бой на деньги, ставка: ' . $u->round2($pl['money']) . ' кр. ';
}
$zvb .= ' ' . date('H:i', $pl['time']) . ' ' . $u->microLogin($uz['id'], 1) . ' ' . $enm . ' тип боя: (таймаут ' . round($pl['timeout'] / 60) . ' мин.' . $dp1 . ') ';
if ($uz['banned'] > 0) {
$zvb .= ' ';
}
}
}
}
$i++;
}
if ($i == 0) {
//заявок нет
} else {
if (!isset($zi['id'])) {
echo '
';
} else {
echo $zvb;
}
}
}
}
}
public function go($id)
{
global $u, $c, $code, $zi, $filter;
if (!isset($zi['id'])) {
if ($u->info['battle'] == 0) {
$z = mysql_fetch_array(mysql_query('SELECT * FROM `zayvki` WHERE `id`="' . mysql_real_escape_string(intval($id)) . '" AND `city` = "' . $u->info['city'] . '" AND `start` = "0" AND `cancel` = "0" AND `time` > "' . (time() - 60 * 60 * 2) . '" LIMIT 1'));
if (isset($z['id'])) {
if ($z['razdel'] >= 1 && $z['razdel'] <= 3) {
//новички, физы, договорные
$uz1 = mysql_fetch_array(mysql_query('SELECT `u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $z['id'] . '" AND `st`.`team`="1" LIMIT 1'));
if (isset($uz1['id'])) {
$uz2 = mysql_fetch_array(mysql_query('SELECT `u`.`id`,`u`.`login`,`u`.`align`,`u`.`clan`,`u`.`admin`,`u`.`city`,`u`.`room`,`u`.`online`,`u`.`level`,`u`.`battle`,`u`.`money`,`st`.* FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv`="' . $z['id'] . '" AND `st`.`team`="2" LIMIT 1'));
if ($u->info['hpNow'] < $u->stats['hpAll'] / 100 * 30 && ($z['razdel'] >= 1 || $z['razdel'] <= 3)) {
$this->error = 'Вы еще слишком ослаблены чтобы начать новый бой';
$az = 0;
} elseif ($uz1['clan'] == $u->info['clan'] && $u->info['clan'] != 0) {
$this->error = 'Вы не можете сражаться против сокланов';
} elseif ($z['money'] > 0 && $u->info['level'] < 4) {
$this->error = 'Бои на деньги проводятся с 4-го уровня';
} elseif ($z['withUser'] != '' && $filter->mystr($u->info['login']) != $filter->mystr($z['withUser']) && $z['razdel'] == 3) {
$this->error = 'Вы не можете принять эту заявку';
} elseif ($z['money'] > 0 && $z['money'] > $u->info['money']) {
$this->error = 'У Вас недостаточно денег, чтобы принять эту заявку';
} elseif ($u->stats['hpNow'] < ceil($u->stats['hpMax'] / 100 * 30)) {
$this->error = 'Вы слишком ослаблены, восстановитесь';
} elseif (!isset($uz2['id'])) {
$upd = mysql_query('UPDATE `stats` SET `zv` = "' . $z['id'] . '",`team` = "2" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
if ($upd) {
$ca = '';
if ($uz1['clan'] != 0) {
$pc = mysql_fetch_array(mysql_query('SELECT * FROM `clan` WHERE `id`="' . $uz1['clan'] . '" LIMIT 1'));
if (isset($pc['id'])) {
$pc['img'] = $pc['name_mini'] . '.gif';
$ca = ' ';
}
}
if ($uz1['align'] != 0) {
$ca = ' ' . $ca;
}
$this->error = 'Ожидаем подтверждения боя от ' . $ca . ' ' . $uz1['login'] . ' [' . $uz1['level'] . '] ';
$sa = '';
if ($u->info['sex'] == 2) {
$sa = 'а';
}
$text = ' [login:' . $u->info['login'] . '] принял' . $sa . ' вашу заявку на бой.[reflesh_main_zv_priem:' . $u->info['id'] . ']';
mysql_query("INSERT INTO `chat` (`city`,`room`,`login`,`to`,`text`,`time`,`type`,`toChat`) VALUES ('" . $uz1['city'] . "','" . $uz1['room'] . "','','" . $uz1['login'] . "','" . $text . "','" . time() . "','10','0')");
$zi = $z;
$u->info['zv'] = $z['id'];
$u->info['team'] = 2;
} else {
$this->error = 'Невозможно принять заявку.';
}
} else {
$this->error = 'Заявку уже кто-то принял до вас.';
}
} else {
$this->error = 'Заявка на бой заблокирована.';
}
} elseif ($z['razdel'] == 4 && $u->info['level'] > 1) {
$tm = 0;
//групповые
if (isset($_GET['tm1'])) {
$tm = 1;
} elseif (isset($_GET['tm2'])) {
$tm = 2;
} else {
$this->error = 'Что-то здесь не так';
}
if ($tm != 0) {
$t1 = $tm;
$t2 = 1;
$tmmax = 0;
if ($tm == 1) {
$t2 = 2;
}
$cl111 = mysql_query('SELECT `u`.`clan`,`st`.`team`,`st`.`id`,`st`.`zv` FROM `stats` AS `st` LEFT JOIN `users` AS `u` ON (`st`.`id` = `u`.`id`) WHERE `st`.`zv` = "' . $z['id'] . '" LIMIT 200');
$cln = 0;
while ($pc111 = mysql_fetch_array($cl111)) {
if ($pc111['clan'] == $u->info['clan'] && $u->info['clan'] != 0 && $pc111['team'] == $t2) {
$cln++;
}
if ($pc111['team'] == $t1) {
$tmmax++;
}
}
if ($cln > 0) {
$this->error = 'Вы не можете сражаться против сокланов';
} elseif ($z['tm' . $t1 . 'max'] > $tmmax) {
if ($z['min_lvl_' . $t1] > $u->info['level'] || $z['max_lvl_' . $t1] < $u->info['level']) {
$this->error = 'Вы не подходите по уровню, за эту команду могут зайти персонажи ' . $z['min_lvl_' . $t1] . ' - ' . $z['max_lvl_' . $t1] . ' уровня';
} elseif ($u->stats['hpNow'] < ceil($u->stats['hpMax'] / 100 * 30)) {
$this->error = 'Вы слишком ослаблены, восстановитесь';
} else {
$upd = mysql_query('UPDATE `stats` SET `zv` = "' . $z['id'] . '",`team` = "' . mysql_real_escape_string((int)$t1) . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
if (!$upd) {
$this->error = 'Ошибка приема заявки...';
} else {
$this->error = 'Вы приняли групповой бой...';
$zi = $z;
$u->info['zv'] = $z['id'];
$u->info['team'] = mysql_real_escape_string((int)$t1);
}
}
} else {
$this->error = 'Группа уже набрана (' . ($z['tm' . $t1 . 'max'] - $tmmax) . ')';
}
}
} elseif ($z['razdel'] == 5 && $u->info['level'] > 1) {
//хаотичные
if ($z['min_lvl_1'] > $u->info['level'] || $z['max_lvl_1'] < $u->info['level']) {
$this->error = 'Вы не подходите по уровню, за эту команду могут зайти персонажи ' . $z['min_lvl_1'] . ' - ' . $z['max_lvl_1'] . ' уровня';
} elseif ($u->stats['hpNow'] < ceil($u->stats['hpMax'] / 100 * 30)) {
$this->error = 'Вы слишком ослаблены, восстановитесь';
} else {
$t1 = 1;
/* считаем баланс */
if ($z['tm1'] > $z['tm2']) {
$t1 = 2;
} elseif ($z['tm1'] < $z['tm2']) {
$t1 = 1;
} else {
$t1 = rand(1, 2);
}
if ($z['invise'] == 1) {
$nxtID = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM `stats` WHERE `zv` = "' . $z['id'] . '"'));
$nxtID = $nxtID[0];
$u->info['login2'] = 'Боец (' . ($nxtID + 1) . ')';
} else {
$u->info['login2'] = '';
}
$blnc = 100 * $u->info['level'] + 10 * $u->info['upLevel'] + $u->info['exp'] + $u->stats['reting'];
$z['tm' . $t1] += $blnc;
$upd = mysql_query('UPDATE `stats` SET `zv` = "' . $z['id'] . '",`team` = "' . $t1 . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
if (!$upd) {
$this->error = 'Ошибка приема заявки...';
} else {
mysql_query('UPDATE `users` SET `login2` = "' . $u->info['login2'] . '" WHERE `id` = "' . $u->info['id'] . '" LIMIT 1');
mysql_query('UPDATE `zayvki` SET `tm1` = "' . $z['tm1'] . '", `tm2` = "' . $z['tm2'] . '" WHERE `id` = "' . $z['id'] . '" LIMIT 1');
$this->error = 'Вы приняли хаотичный бой...';
$zi = $z;
$u->info['zv'] = $z['id'];
$u->info['team'] = mysql_real_escape_string((int)$t1);
}
}
}
} else {
$this->error = 'Заявка на бой не найдена.';
}
}
} else {
$this->error = 'Вы не можете принять бой. Сначала отзовите свою заявку.';
}
}
}
$zv = new zayvki;
$zv->test(); //проверяем заявки
?>