'групповые', 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 '
' . $zi[$r] . '
Подать заявку на бой Таймаут Тип боя ' . $dv . '
'; } elseif ($r == 4) { //групповые echo ' '; } elseif ($r == 5) { //хаотичные echo 'Хаотичный бой - разновидность группового, где группы формируются автоматически. Бой не начнется, если собралось меньше 4-х человек.
Подать заявку на хаотичный бой
'; } } elseif ($r == 6) { //текущие echo 'Текущие бои...'; } elseif ($r == 7) { //завершенные $btl = ''; $dt = time(); $slogin = $u->info['login']; $see = '
 « Предыдущий день

Записи о завершенных боях за ' . date('d.m.Y', $dt) . '

Следующий день » 
Показать только бои персонажа: за
'; 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 '

' . $zvb . '
'; } 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(); //проверяем заявки ?>