' . $_SERVER['SERVER_ADDR']); } function changeSleep($uid, $sleep_action) { $u = User::start(); if ($sleep_action == 1) { // mysql_query('INSERT INTO `sleep` (`uid`,`time`,`sleep`) VALUES ("' . $uid . '","' . time() . '","1")'); // mysql_query( "UPDATE `eff_users` SET `sleeptime`=" . time() . ",`deactiveLast` = ( `deactiveTime` - " . time( ) . " ) WHERE `uid`='" . mysql_real_escape_string($uid) . "' AND `no_Ace` = 0 AND `delete` = 0" ); mysql_query( 'UPDATE `items_users` SET `time_sleep` = "' . time( ) . '" WHERE `uid` = "' . $uid . '" AND `delete` < 1001 AND `data` LIKE "%|sleep_moroz=1%"' ); $u->addAction(time(), 'sleep', $u->info['city']); // } elseif ($sleep_action == 2) { // mysql_query('INSERT INTO `sleep` (`uid`,`time`,`sleep`) VALUES ("' . $uid . '","' . time() . '","2")'); // $sp = mysql_query( 'SELECT * FROM `items_users` WHERE `time_sleep` > 0 AND `uid` = "' . $uid . '" AND `delete` < 1001 AND `data` LIKE "%|sleep_moroz=1%"' ); while ($pl = mysql_fetch_array($sp)) { $tm_add = time() - $pl['time_sleep']; mysql_query( 'UPDATE `items_users` SET `time_sleep` = "0",`time_create` = "' . ($pl['time_create'] + $tm_add) . '" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); } $sp = mysql_query( 'SELECT `id`,`deactiveTime`,`deactiveLast` FROM `eff_users` WHERE `v1` LIKE "pgb%" AND `delete` = "0" AND `deactiveTime` > 0 AND `uid` = "' . $uid . '" ORDER BY `timeUse` DESC' ); while ($pl = mysql_fetch_array($sp)) { mysql_query( "UPDATE `eff_users` SET `deactiveTime` = " . (time( ) + $pl['deactiveLast']) . " WHERE `id`='" . $pl['id'] . "' " ); } $sp = mysql_query( 'SELECT `id`,`sleeptime`,`timeUse` FROM `eff_users` WHERE `uid`="' . mysql_real_escape_string( $uid ) . '" AND `no_Ace` = 0 AND `sleeptime` > 0 AND `delete` = 0' ); while ($pl = mysql_fetch_array($sp)) { $timeUsen = time() - ($pl['sleeptime'] - $pl['timeUse']); mysql_query( "UPDATE `eff_users` SET `timeUse`='" . $timeUsen . "',`sleeptime`='0' WHERE `id`='" . $pl['id'] . "' " ); } mysql_query( 'UPDATE `actions` SET `vars` = "unsleep",`val` = "' . time( ) . '" WHERE `id` = "' . $sleep['id'] . '" LIMIT 1' ); } } //Время рестарта $cnfg = [ 'time_restart' => 1, 'time_puti' => 240, ]; echo '#start#'; define('GAME', true); setlocale(LC_CTYPE, "ru_RU.CP1251"); include('_incl_data/__config.php'); include('_incl_data/class/__db_connect.php'); $magic = new Magic(); $itbs = [ 0 => 558, 1 => 722, 2 => 718, 3 => 700, 4 => 291, 5 => 545, 6 => 533, 7 => 536, 8 => 628, 9 => 710, 10 => 654, 11 => 684, 12 => 689, 13 => 552, 14 => 552, 15 => 716, 16 => 320, 17 => 290, 18 => 543, 19 => 528, 20 => 540, 21 => 627, 22 => 709, 23 => 653, 24 => 681, 25 => 687, 26 => 523, 27 => 523, 28 => 712, 29 => 1151, 30 => 544, 31 => 541, 32 => 525, 33 => 539, 34 => 633, 35 => 707, 36 => 647, 37 => 680, 38 => 685, 39 => 567, 40 => 717, 41 => 706, 42 => 527, 43 => 537, 44 => 626, 45 => 708, 46 => 723, 47 => 651, 48 => 683, 49 => 297, 50 => 485, 51 => 484, 52 => 686, ]; function microLogin2($bus) { $bus['login_BIG'] = ''; if ($bus['align'] > 0) { $bus['login_BIG'] .= ''; } if ($bus['clan'] > 0) { $bus['login_BIG'] .= ''; } $bus['login_BIG'] .= '' . $bus['login'] . '[' . $bus['level'] . ']'; return $bus['login_BIG']; } function addItem($id, $uid, $md = null, $dn = null, $mxiznos = null) { $rt = -1; $i = mysql_fetch_array( mysql_query( 'SELECT `im`.`id`,`im`.`name`,`im`.`img`,`im`.`type`,`im`.`inslot`,`im`.`2h`,`im`.`2too`,`im`.`iznosMAXi`,`im`.`inRazdel`,`im`.`price1`,`im`.`price2`,`im`.`magic_chance`,`im`.`info`,`im`.`massa`,`im`.`level`,`im`.`magic_inci`,`im`.`overTypei`,`im`.`group`,`im`.`group_max`,`im`.`geni`,`im`.`ts`,`im`.`srok`,`im`.`class`,`im`.`class_point`,`im`.`anti_class`,`im`.`anti_class_point`,`im`.`max_text`,`im`.`useInBattle`,`im`.`lbtl`,`im`.`lvl_itm`,`im`.`lvl_exp`,`im`.`lvl_aexp` FROM `items_main` AS `im` WHERE `im`.`id` = "' . mysql_real_escape_string( $id ) . '" LIMIT 1' ) ); if (isset($i['id'])) { $d = mysql_fetch_array( mysql_query( 'SELECT `id`,`items_id`,`data` FROM `items_main_data` WHERE `items_id` = "' . $i['id'] . '" LIMIT 1' ) ); //новая дата $data = $d['data']; if ($i['ts'] > 0) { $ui = mysql_fetch_array( mysql_query( 'SELECT `id`,`login` FROM `users` WHERE `id` = "' . mysql_real_escape_string($uid) . '" LIMIT 1' ) ); $data .= '|sudba=' . $ui['login']; } if ($md != null) { $data .= $md; } //предмет с настройками из подземелья if ($dn != null && $dn['del'] > 0) { $i['dn_delete'] = 1; } if ($mxiznos > 0) { $i['iznosMAXi'] = $mxiznos; } $ins = mysql_query( 'INSERT INTO `items_users` (`overType`,`item_id`,`uid`,`data`,`iznosMAX`,`geniration`,`magic_inc`,`maidin`,`lastUPD`,`time_create`,`dn_delete`) VALUES ( "' . $i['overTypei'] . '", "' . $i['id'] . '", "' . $uid . '", "' . $data . '", "' . $i['iznosMAXi'] . '", "' . $i['geni'] . '", "' . $i['magic_inci'] . '", "capitalcity", "' . time() . '", "' . time() . '", "' . $i['dn_delete'] . '")' ); if ($ins) { $rt = mysql_insert_id(); } else { $rt = 0; } } return $rt; } function timeOut($ttm) { $out = ''; $time_still = $ttm; $tmp = floor($time_still / 2592000); $id = 0; if ($tmp > 0) { $id++; if ($id < 3) { $out .= $tmp . " мес. "; } $time_still = $time_still - $tmp * 2592000; } $tmp = floor($time_still / 86400); if ($tmp > 0) { $id++; if ($id < 3) { $out .= $tmp . " дн. "; } $time_still = $time_still - $tmp * 86400; } $tmp = floor($time_still / 3600); if ($tmp > 0) { $id++; if ($id < 3) { $out .= $tmp . " ч. "; } $time_still = $time_still - $tmp * 3600; } $tmp = floor($time_still / 60); if ($tmp > 0) { $id++; if ($id < 3) { $out .= $tmp . " мин. "; } } if ($out == '') { if ($time_still < 0) { $time_still = 0; } $out = $time_still . ' сек.'; } return $out; } function e($t) { mysql_query( 'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("' . mysql_real_escape_string( $t ) . '","capitalcity","","6","1","' . time() . '")' ); } function e2($t) { mysql_query( 'INSERT INTO `chat` (`text`,`city`,`to`,`type`,`new`,`time`) VALUES ("' . mysql_real_escape_string( $t ) . '","capitalcity","Мусорщик","6","1","-1")' ); } //Персонаж 1 нападает на 2 function bs_atack($bs, $u1, $u2) { global $magic; if (isset($u1['id'], $u2['id'])) { $btl_id = $magic->atackUser($u1['id'], $u2['id'], $u2['team'], $u2['battle']); if ($btl_id > 0) { mysql_query('UPDATE `battle` SET `inTurnir` = "' . $bs['id'] . '" WHERE `id` = "' . $btl_id . '" LIMIT 1'); } $usr_real = mysql_fetch_array( mysql_query( 'SELECT `id`,`sex`,`login`,`align`,`clan`,`battle`,`level` FROM `users` WHERE `login` = "' . $u2['login'] . '" AND `inUser` = "' . $u2['id'] . '" LIMIT 1' ) ); if (!isset($usr_real['id'])) { $usr_real = $u2; } $me_real = mysql_fetch_array( mysql_query( 'SELECT `id`,`sex`,`login`,`align`,`clan`,`battle`,`level` FROM `users` WHERE `inUser` = "' . $u1['id'] . '" AND `login` = "' . $u1['login'] . '" LIMIT 1' ) ); if (!isset($me_real['id'])) { $me_real = $u1; } if ($u2['battle'] > 0) { //Заносим в лог БС if ($u1['sex'] == 0) { $text = '{u1} вмешался в поединок против {u2} »»'; } else { $text = '{u1} вмешалась в поединок против {u2} »»'; } } else { //Заносим в лог БС if ($u1['sex'] == 0) { $text = '{u1} напал на {u2} завязался бой »»'; } else { $text = '{u1} напала на {u2} завязался бой »»'; } } if (isset($usr_real['id'])) { $usrreal = ''; if ($usr_real['align'] > 0) { $usrreal .= ''; } if ($usr_real['clan'] > 0) { $usrreal .= ''; } $usrreal .= '' . $usr_real['login'] . '[' . $usr_real['level'] . ']'; } else { $mereal = 'Невидимка[??]'; } if (isset($me_real['id'])) { $mereal = ''; if ($me_real['align'] > 0) { $mereal .= ''; } if ($me_real['clan'] > 0) { $mereal .= ''; } $mereal .= '' . $me_real['login'] . '[' . $me_real['level'] . ']'; } else { $mereal = 'Невидимка[??]'; } $text = str_replace('{u1}', $mereal, $text); $text = str_replace('{u2}', $usrreal, $text); //Добавляем в лог БС mysql_query( 'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES ( "1", "' . mysql_real_escape_string($text) . '", "' . time( ) . '", "' . $bs['id'] . '", "' . $bs['count'] . '", "' . $bs['city'] . '", "' . round($bs['money'] * 0.85, 2) . '","' . $i . '" )' ); } } //Турнир не состоялся function nostart($pl) { global $cnfg; $r = false; if ($pl['users'] < 4) { //Недостаточно игроков $r = true; $pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60); if ($pl['users'] > 0) { e( 'Турнир Башни Смерти, для ' . $pl['to_lvl'] . ' уровней в Башне Смерти не начался по причине: Недостаточно участников ' . timeOut( $pl['time_start'] - time() ) . ' (' . date('d.m.Y H:i', $pl['time_start']) . ')' ); } else { e( 'Начало турнира Башни Смерти, для ' . $pl['to_lvl'] . ' уровней в Башне Смерти через ' . timeOut( $pl['time_start'] - time() ) . ' (' . date( 'd.m.Y H:i', $pl['time_start'] ) . '), текущий призовой фонд: 0.00 кр., 1.00 Екр., заявок: 0' ); } //Возврат вкладов игроков $sp = mysql_query('SELECT * FROM `bs_zv` WHERE `bsid` = "' . $pl['id'] . '" AND `finish` = "0"'); while ($pu = mysql_fetch_array($sp)) { mysql_query( 'UPDATE `users` SET `money` = `money` + "' . $pu['money'] . '" WHERE `id` = "' . $pu['uid'] . '" LIMIT 1' ); mysql_query('UPDATE `bs_zv` SET `finish` = "' . time() . '" WHERE `id` = "' . $pu['id'] . '" LIMIT 1'); } //Обновление турнира mysql_query( 'UPDATE `bs_turnirs` SET `ch1` = "0",`ch2` = "0", `status` = "0", `money` = "0", `time_start` = "' . $pl['time_start'] . '",`users` = "0",`users_finish` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); } return $r; } //Добавление "архивариуса" function add_arhiv($pl, $user) { $return = 0; mysql_query( 'INSERT INTO `users` (`login`,`pass`,`level`,`inTurnir`,`sex`,`obraz`,`name`,`online`,`city`,`room`,`align`,`clan`,`cityreg`,`bithday`,`activ`) VALUES ( "' . $user['login'] . '","bstowerbot","' . $user['level'] . '","' . $pl['id'] . '","' . $user['sex'] . '","' . $user['obraz'] . '","' . $user['login'] . '","' . (time( ) + 60 * 60 * 24) . '","' . $user['city'] . '","' . $user['room'] . '","' . $user['align'] . '","' . $user['clan'] . '","capitalcity","01.02.2003","0" )' ); $return = mysql_insert_id(); if ($return > 0) { $ins = mysql_query( 'INSERT INTO `stats` (`id`,`stats`,`bot`,`x`,`y`,`upLevel`) VALUES ( "' . $return . '","s1=30|s2=31|s3=33|s4=30|s5=30|s6=1|s7=25|rinv=40|m9=5|m6=10","2","' . $user['x'] . '","' . $user['y'] . '","98" )' ); if (!$ins) { mysql_query('DELETE FROM `users` WHERE `id` = "' . $return . '" LIMIT 1'); $return = 0; } } return $return; } //Завершаем текущий турнир function backusers($pl) { $sp = mysql_query('SELECT * FROM `bs_zv` WHERE `bsid` = "' . $pl['id'] . '" AND `off` = "0" AND `inBot` > 0'); while ($pu = mysql_fetch_array($sp)) { //Удаление клона mysql_query('DELETE FROM `users` WHERE `id` = "' . $pu['inBot'] . '" LIMIT 1'); mysql_query('DELETE FROM `stats` WHERE `id` = "' . $pu['inBot'] . '" LIMIT 1'); mysql_query('DELETE FROM `actions` WHERE `uid` = "' . $pu['inBot'] . '"'); mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $pu['inBot'] . '"'); mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $pu['inBot'] . '"'); mysql_query('DELETE FROM `users_delo` WHERE `uid` = "' . $pu['inBot'] . '"'); //Обновление персонажа mysql_query('UPDATE `users` SET `inUser` = "0" WHERE `id` = "' . $pu['uid'] . '" LIMIT 1'); //Обновляем заявку mysql_query('UPDATE `bs_zv` SET `off` = "' . time() . '" WHERE `id` = "' . $pu['id'] . '" LIMIT 1'); } //Архивариусы $sp = mysql_query( 'SELECT * FROM `users` WHERE `pass` = "bstowerbot" AND `inTurnir` = "' . $pl['id'] . '" AND `room` = "362"' ); while ($pu = mysql_fetch_array($sp)) { mysql_query('DELETE FROM `users` WHERE `id` = "' . $pu['id'] . '" LIMIT 1'); mysql_query('DELETE FROM `stats` WHERE `id` = "' . $pu['id'] . '" LIMIT 1'); mysql_query('DELETE FROM `actions` WHERE `uid` = "' . $pu['id'] . '"'); mysql_query('DELETE FROM `items_users` WHERE `uid` = "' . $pu['id'] . '"'); mysql_query('DELETE FROM `eff_users` WHERE `uid` = "' . $pu['id'] . '"'); mysql_query('DELETE FROM `users_delo` WHERE `uid` = "' . $pu['id'] . '"'); } //Удаляем предметы раскиданные по БС mysql_query('DELETE FROM `bs_items` WHERE `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '"'); //Удаляем события в БС mysql_query('DELETE FROM `bs_actions` WHERE `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '"'); //Удаляем ловушки в БС mysql_query('DELETE FROM `bs_trap` WHERE `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '"'); } $exp2 = [ 1 => 30000, 2 => 300000, ]; $st2s = [ 7 => [ 0 => 10, 1 => 64, 2 => 8, ], 8 => [ 0 => 11, 1 => 78, 2 => 9, ], ]; $sp = mysql_query('SELECT * FROM `bs_turnirs`'); while ($pl = mysql_fetch_array($sp)) { // $pl['to_lvl'] = $pl['level']; if ($pl['level'] != $pl['level_max']) { $pl['to_lvl'] .= '-' . $pl['level_max'] . ''; } $pl['to_lvl'] = 'всех'; if ($pl['status'] == 1) { // $tcu = mysql_fetch_array( mysql_query('SELECT COUNT(*) FROM `users` WHERE `inTurnir` = "' . $pl['id'] . '" AND `room` = "362"') ); $tcu = $tcu[0]; // if ($pl['users'] != $tcu) { //Что-то сбилось $pl['users'] = $tcu; } // //Турнир идет, проверяем живых игроков, либо завершаем через 6 часов if ($pl['time_start'] < time() - 6 * 60 * 60) { //Завершаем турнир по тайму //Добавляем в лог БС $text = 'Турнир завершен. Победитель: Отсутствует (Турнир завершился по таймауту). Призовой фонд: ' . round( $pl['money'] * 0.85, 2 ) . ' кр.'; mysql_query( 'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES ( "1", "' . mysql_real_escape_string($text) . '", "' . time( ) . '", "' . $pl['id'] . '", "' . $pl['count'] . '", "' . $pl['city'] . '", "' . round($pl['money'] * 0.85, 2) . '","' . $i . '" )' ); // //Сохраняем статистику mysql_query( 'INSERT INTO `bs_statistic` (`bsid`,`count`,`time_start`,`time_finish`,`time_sf`,`type_bs`,`money`,`wlogin`,`wuid`,`walign`,`wclan`) VALUES ( "' . $pl['id'] . '","' . $pl['count'] . '","' . $pl['time_start'] . '","' . time() . '","' . (time( ) - $pl['time_start']) . '","' . $pl['type_btl'] . '","' . round($pl['money'] * 0.85, 2) . '", "2","0","0","0" )' ); $pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60); e( 'Турнир для ' . $pl['to_lvl'] . ' уровней в Башне Смерти завершился по таймауту. Начало нового турнира через ' . timeOut( $pl['time_start'] - time() - 3600 ) . ' (' . date('d.m.Y H:i', $pl['time_start']) . ')' ); backusers($pl); $pl['count']++; mysql_query( 'UPDATE `bs_turnirs` SET `money` = "0",`count` = "' . $pl['count'] . '",`status` = "0",`time_start` = "' . $pl['time_start'] . '",`users` = "0",`users_finish` = "0",`ch1` = "0",`arhiv` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); } else { mysql_query( 'UPDATE `users` SET `online` = "' . (time( ) + 60 * 60 * 6) . '" WHERE `inTurnir` = "' . $pl['id'] . '" OR (`room` >= 362 AND `room` <= 366) LIMIT ' . ($pl['users'] + $pl['arhiv']) ); //Проверяем живых игроков if ($pl['users'] < 2) { mysql_query( 'DELEE FROM `users` WHERE `login` LIKE "%(клон%" AND `inTurnir` = "' . $pl['id'] . '" AND `room` = "362"' ); if ($pl['users'] == 1) { $pl['usersn'] = mysql_fetch_array( mysql_query( 'SELECT COUNT(*) FROM `users` WHERE `inTurnir` = "' . $pl['id'] . '" AND `room` = "362" LIMIT 1' ) ); $pl['usersn'] = $pl['usersn'][0]; if ($pl['users'] != $pl['usersn']) { //$pl['users'] = $pl['usersn']; } } //Доп. проверка живых if ($pl['users'] == 1) { //Завершаем турнир, есть 1 победитель if ($pl['arhiv'] == 0) { //Архивариуса нет, завершаем турнир $uwin_bot = mysql_fetch_array( mysql_query( 'SELECT `id`,`money`,`login`,`level`,`align`,`clan` FROM `users` WHERE `inTurnir` = "' . $pl['id'] . '" AND `room` = "362" LIMIT 1' ) ); $swin_bot = mysql_fetch_array( mysql_query('SELECT `id`,`exp` FROM `stats` WHERE `id` = "' . $uwin_bot['id'] . '" LIMIT 1') ); $uwin = mysql_fetch_array( mysql_query( 'SELECT `id`,`money`,`money2`,`login`,`level`,`align`,`clan` FROM `users` WHERE `inUser` = "' . $uwin_bot['id'] . '" LIMIT 1' ) ); $swin = mysql_fetch_array( mysql_query('SELECT `id`,`exp` FROM `stats` WHERE `id` = "' . $uwin['id'] . '" LIMIT 1') ); //Опыт $swin_bot['exp'] -= 30000; $swin_bot['exp'] = round($swin_bot['exp'] / 2); if ($swin_bot['exp'] < 0) { $swin_bot['exp'] = 0; } $swin_bot['exp'] += 1500; //Сохраняем статистику mysql_query( 'INSERT INTO `bs_statistic` (`bsid`,`count`,`time_start`,`time_finish`,`time_sf`,`type_bs`,`money`,`wlogin`,`wuid`,`walign`,`wclan`,`wlevel`) VALUES ( "' . $pl['id'] . '","' . $pl['count'] . '","' . $pl['time_start'] . '","' . time( ) . '","' . (time() - $pl['time_start']) . '","' . $pl['type_btl'] . '","' . round( $pl['money'] * 0.85, 2 ) . '", "' . $uwin['login'] . '","' . $uwin['id'] . '","' . $uwin['align'] . '","' . $uwin['clan'] . '","' . $uwin['level'] . '" )' ); $pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60); if (isset($uwin['id'])) { mysql_query( 'UPDATE `users` SET `money` = "' . ($uwin['money'] + round( $pl['money'] * 0.85, 2 )) . '", `money2` = "' . ($uwin['money2'] + 1) . '", `win_bs` = IFNULL(`win_bs`, 0) + 1 WHERE `login` = "' . $uwin['login'] . '"' ); mysql_query( 'UPDATE `stats` SET `exp` = "' . ($swin['exp'] + $swin_bot['exp']) . '" WHERE `id` = "' . $uwin['id'] . '" LIMIT 1' ); e( '#' . $pl['usersn'] . ' Турнир для ' . $pl['to_lvl'] . ' уровней в Башне Смерти завершился. Победитель: ' . microLogin2( $uwin ) . '. Приз: ' . round( $pl['money'] * 0.85, 2 ) . ' кр. и 1 екр.' . round( $swin_bot['exp'] ) . ' опыта. Начало нового турнира через ' . timeOut( $pl['time_start'] - time() ) . ' (' . date('d.m.Y H:i', $pl['time_start']) . ')' ); if (date('w') == 0 || date('w') == 6 || date('w') == 3) { mysql_query( 'UPDATE `stats` SET `repexp` = `repexp` + 25 WHERE `id` = "' . $uwin['id'] . '" LIMIT 1' ); } else { mysql_query( 'UPDATE `stats` SET `repexp` = `repexp` + 10 WHERE `id` = "' . $uwin['id'] . '" LIMIT 1' ); } } //Добавляем в лог БС $text = 'Турнир завершен. Победитель: ' . microLogin2($uwin) . '. Приз: ' . round( $pl['money'] * 0.85, 2 ) . ' кр. и 1 екр.' . round($swin_bot['exp']) . ' опыта.'; mysql_query( 'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES ( "1", "' . mysql_real_escape_string($text) . '", "' . time( ) . '", "' . $pl['id'] . '", "' . $pl['count'] . '", "' . $pl['city'] . '", "' . round($pl['money'] * 0.85, 2) . '","' . $i . '" )' ); // backusers($pl); $pl['count']++; mysql_query( 'UPDATE `bs_turnirs` SET `money` = "0",`count` = "' . $pl['count'] . '",`status` = "0",`time_start` = "' . $pl['time_start'] . '",`users` = "0",`users_finish` = "0",`ch1` = "0",`arhiv` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); } else { //Ожидаем пока игрок убьет Архивариуса } } else { //Сохраняем статистику mysql_query( 'INSERT INTO `bs_statistic` (`bsid`,`count`,`time_start`,`time_finish`,`time_sf`,`type_bs`,`money`,`wlogin`,`wuid`,`walign`,`wclan`) VALUES ( "' . $pl['id'] . '","' . $pl['count'] . '","' . $pl['time_start'] . '","' . time( ) . '","' . (time() - $pl['time_start']) . '","' . $pl['type_btl'] . '","' . round( $pl['money'] * 0.85, 2 ) . '", "1","0","0","0" )' ); //Просто завершаем турнир, ничья $pl['time_start'] = time() + $cnfg['time_restart'] * (60 * 60); //Добавляем в лог БС $text = 'Турнир завершен. Победитель: Отсутствует (Никто не остался в живых). Призовой фонд: ' . round( $pl['money'] * 0.85, 2 ) . ' кр.'; mysql_query( 'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES ( "1", "' . mysql_real_escape_string($text) . '", "' . time( ) . '", "' . $pl['id'] . '", "' . $pl['count'] . '", "' . $pl['city'] . '", "' . round($pl['money'] * 0.85, 2) . '","' . $i . '" )' ); // backusers($pl); $pl['count']++; e( 'Турнир для ' . $pl['to_lvl'] . ' уровней в Башне Смерти завершился. Победитель: Отсутствует (Никто не остался в живых). Призовой фонд ' . round( $pl['money'] * 0.85, 2 ) . ' кр. Начало нового турнира через ' . timeOut( $pl['time_start'] - time() - 3600 ) . ' (' . date('d.m.Y H:i', $pl['time_start']) . ')' ); mysql_query( 'UPDATE `bs_turnirs` SET `money` = "' . round( $pl['money'] * 0.85, 2 ) . '",`count` = "' . $pl['count'] . '",`status` = "0",`time_start` = "' . $pl['time_start'] . '",`users` = "0",`users_finish` = "0",`ch1` = "0",`arhiv` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); } } else { //Все живы if ($pl['arhiv'] > 0) { $a_sp = mysql_query( 'SELECT `s`.`timeGo`,`u`.`align`,`u`.`clan`,`u`.`sex`,`u`.`pass`,`u`.`id`,`u`.`level`,`u`.`login`,`u`.`battle`,`s`.`x`,`s`.`y` FROM `users` AS `u` LEFT JOIN `stats` AS `s` ON `s`.`id` = `u`.`id` WHERE `u`.`pass` = "bstowerbot" AND `u`.`inTurnir` = "' . mysql_real_escape_string( $pl['id'] ) . '" AND `u`.`room` = "362" LIMIT 10' ); while ($a_pl = mysql_fetch_array($a_sp)) { $xy = mysql_fetch_array( mysql_query( 'SELECT * FROM `bs_map` WHERE `x` = "' . $a_pl['x'] . '" AND `y` = "' . $a_pl['y'] . '" LIMIT 1' ) ); if (isset($xy['id'])) { if ($a_pl['battle'] == 0) { //Поднимаем предметы $sp_itm = mysql_query( 'SELECT * FROM `bs_items` WHERE `x` = "' . $a_pl['x'] . '" AND `y` = "' . $a_pl['y'] . '" AND `bid` = "' . $pl['id'] . '" AND `count` = "' . $pl['count'] . '" LIMIT 20' ); while ($pl_itm = mysql_fetch_array($sp_itm)) { if (rand(0, 100) < 21) { //Поднимаем текущий предмет $itm_id = mysql_fetch_array( mysql_query( 'SELECT * FROM `items_main` WHERE `id` = "' . $pl_itm['item_id'] . '" LIMIT 1' ) ); if (isset($itm_id['id'])) { $itm_id['odevaem'] = addItem($itm_id['id'], $a_pl['id']); mysql_query( 'DELETE FROM `bs_items` WHERE `id` = "' . $pl_itm['id'] . '" LIMIT 1' ); if ($itm_id['level'] <= $a_pl['level'] && $itm_id['odevaem'] > 0) { //надеваем if ($itm_id['inslot'] == 10) { $itm_id['inslot'] = rand(10, 12); } mysql_query( 'UPDATE `items_users` SET `inOdet` = "0" WHERE `inOdet` = "' . $itm_id['inslot'] . '" AND `uid` = "' . $a_pl['id'] . '" LIMIT 1' ); mysql_query( 'UPDATE `items_users` SET `inOdet` = "' . $itm_id['inslot'] . '" WHERE `id` = "' . $itm_id['odevaem'] . '" LIMIT 1' ); } } } } unset($itm_id, $sp_itm, $pl_itm); //Нападаем/Вмешиваемся в поединок if ($pl['time_start'] < time() - $cnfg['time_puti']) { $sp_usr = mysql_query( 'SELECT `u`.`id`,`u`.`battle`,`u`.`login`,`u`.`level`,`u`.`align`,`u`.`clan`,`u`.`sex`,`s`.`team` FROM `stats` AS `s` LEFT JOIN `users` AS `u` ON `u`.`id` = `s`.`id` WHERE `s`.`x` = "' . $a_pl['x'] . '" AND `u`.`pass` != "' . $a_pl['pass'] . '" AND `s`.`y` = "' . $a_pl['y'] . '" ORDER BY `s`.`timeGo` ASC LIMIT 5' ); while ($pl_usr = mysql_fetch_array($sp_usr)) { if (rand(0, 100) < 31 && $a_pl['battle'] == 0) { $pl_usr_real = mysql_fetch_array( mysql_query( 'SELECT `id`,`sex`,`login`,`level`,`clan`,`align`,`battle` FROM `users` WHERE `inUser` = "' . $pl_usr['id'] . '" LIMIT 1' ) ); if (isset($pl_usr_real['id'])) { mysql_query( 'UPDATE `stats` SET `hpNow` = `hpNow` + 10 WHERE `id` = "' . $a_pl['id'] . '" LIMIT 1' ); mysql_query( 'UPDATE `stats` SET `hpNow` = `hpNow` + 10 WHERE `id` = "' . $pl_usr['id'] . '" LIMIT 1' ); bs_atack($pl, $a_pl, $pl_usr); $a_pl['battle'] = 1; } } } unset($sp_usr, $pl_usr); if ($a_pl['battle'] == 0 && rand(0, 100) < 71 && $a_pl['timeGo'] < time()) { //Передвигаемся $stor = []; if ($xy['up'] > 0) { $stor[] = 'up'; } if ($xy['down'] > 0) { $stor[] = 'down'; } if ($xy['left'] > 0) { $stor[] = 'left'; } if ($xy['right'] > 0) { $stor[] = 'right'; } $stor = $stor[rand(0, count($stor) - 1)]; if ($stor == 'up') { $stgo = $xy[$stor]; } elseif ($stor == 'down') { $stgo = $xy[$stor]; } elseif ($stor == 'left') { $stgo = $xy[$stor]; } elseif ($stor == 'right') { $stgo = $xy[$stor]; } if ($stgo == 1) { if ($stor == 'up') { $a_pl['x']--; } elseif ($stor == 'down') { $a_pl['x']++; } elseif ($stor == 'left') { $a_pl['y']--; } elseif ($stor == 'right') { $a_pl['y']++; } } else { $stgo = mysql_fetch_array( mysql_query( 'SELECT * FROM `bs_map` WHERE `id` = "' . $stgo . '" LIMIT 1' ) ); if (isset($stgo['id'])) { $a_pl['x'] = $stgo['x']; $a_pl['y'] = $stgo['y']; } } mysql_query( 'UPDATE `stats` SET `x` = "' . $a_pl['x'] . '",`y` = "' . $a_pl['y'] . '" WHERE `id` = "' . $a_pl['id'] . '" LIMIT 1' ); unset($stor, $stgo); } } } else { //Сражаемся } } } } } } } elseif ($pl['status'] == 0 && $pl['time_start'] < time()) { //Начинаем турнир if (nostart($pl) == false) { //Начинаем турнир! $spm = mysql_query('SELECT `x`,`y` FROM `bs_map` WHERE `mid` = "' . $pl['type_map'] . '"'); $maps = []; while ($plm = mysql_fetch_array($spm)) { $maps[] = [$plm['x'], $plm['y']]; } $i = 0; $j = 0; $usrlst = []; $ubss = ''; $sp_u = mysql_query( 'SELECT * FROM `bs_zv` WHERE `finish` = "0" AND `bsid` = "' . $pl['id'] . '" ORDER BY `money` DESC LIMIT 12' ); // //Создаем поход mysql_query( 'INSERT INTO `dungeon_now` ( `id2` , `name` , `time_start` , `time_finish` , `uid` , `city` , `type` , `bsid` ) VALUES ( "6" , "Башня Смерти" , "' . $pl['time_start'] . '" , "0" , "0" , "' . $pl['city'] . '" , "0" , "' . $pl['id'] . '" )' ); $dnew = mysql_insert_id(); //Добавляем обьекты $vls32 = ''; $sphj = mysql_query('SELECT * FROM `dungeon_obj` WHERE `for_dn` = "6"'); while ($plhj = mysql_fetch_array($sphj)) { $vls32 .= '("' . $dnew . '","' . $plhj['name'] . '","' . $plhj['img'] . '","' . $plhj['x'] . '","' . $plhj['y'] . '","' . $plhj['action'] . '","' . $plhj['type'] . '","' . $plhj['w'] . '","' . $plhj['h'] . '","' . $plhj['s'] . '","' . $plhj['s2'] . '","' . $plhj['os1'] . '","' . $plhj['os2'] . '","' . $plhj['os3'] . '","' . $plhj['os4'] . '","' . $plhj['type2'] . '","' . $plhj['top'] . '","' . $plhj['left'] . '","' . $plhj['date'] . '"),'; } $vls32 = rtrim($vls32, ','); if ($vls32 != '') { $ins232 = mysql_query( 'INSERT INTO `dungeon_obj` (`dn`,`name`,`img`,`x`,`y`,`action`,`type`,`w`,`h`,`s`,`s2`,`os1`,`os2`,`os3`,`os4`,`type2`,`top`,`left`,`date`) VALUES ' . $vls32 . '' ); } unset($vls32, $ins232); //Добавляем предметы $map = []; $mapsp = mysql_query('SELECT `x`,`y` FROM `dungeon_map` WHERE `id_dng` = 6'); while ($mappl = mysql_fetch_array($mapsp)) { $map[] = ['x' => $mappl['x'], 'y' => $mappl['y']]; } $mapu = $map; // $ii1 = 0; while ($ii1 < count($map)) { //На каждой клетке в среднем 2 предмета $itbsrnd = $itbs[rand(0, count($itbs) - 1)]; $mp = rand(0, count($map) - 1); // $x1 = $map[$mp]['x']; $y1 = $map[$mp]['y']; // mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES ( "' . $dnew . '","' . $itbsrnd . '","' . (time() - 600) . '","' . $x1 . '","' . $y1 . '" )' ); // $ii1++; } //Добавляем чеки на кр. и на екр. на карту $m1 = $maps[rand(0, count($maps) - 1)]; $x1 = round($m1[0]); $y1 = round($m1[1]); //$itm1 = array( 4174 , 4175 , 4176 , 4177 , 4178 , 4179 , 4180 ); //Перечисление кр. чеков $itm1 = [4176, 4177]; //Перечисление кр. чеков $itm1 = $itm1[rand(0, count($itm1) - 1)]; if ($itm1 > 0) { // $mp = rand(0, count($map) - 1); // $x1 = $map[$mp]['x']; $y1 = $map[$mp]['y']; // mysql_query( 'INSERT INTO `dungeon_items` (`dn`,`item_id`,`time`,`x`,`y`) VALUES ( "' . $dnew . '","' . $itm1 . '","' . (time() - 600) . '","' . $x1 . '","' . $y1 . '" )' ); // } //Добавляем монстров (Архивариусов) $newkor = []; while ($pl_u = mysql_fetch_array($sp_u)) { if ($i < 12 && !isset($usrlst[$pl_u['uid']])) { //Действующие участники $usrlst[$pl_u['uid']] = true; $bus = mysql_fetch_array( mysql_query( 'SELECT `align`,`chatColor`,`molch1`,`molch2`,`id`,`login`,`clan`,`align`,`level`,`sex`,`online`,`room` FROM `users` WHERE `id` = "' . mysql_real_escape_string( $pl_u['uid'] ) . '" LIMIT 1' ) ); mysql_query( 'UPDATE `stats` SET `repexp` = `repexp` + 5 WHERE `id` = "' . $bus['id'] . '" LIMIT 1' ); $bus['login_BIG'] = ''; if ($bus['align'] > 0) { $bus['login_BIG'] .= ''; } if ($bus['clan'] > 0) { $bus['login_BIG'] .= ''; } $bus['login_BIG'] .= '' . $bus['login'] . '[' . $bus['level'] . ']'; $ubss .= ', ' . $bus['login_BIG']; // //Вселяем персонажей в ботов if ($bus['align'] >= 1 && $bus['align'] < 2) { $bus['align'] = 1; } elseif ($bus['align'] >= 3 && $bus['align'] < 4) { $bus['align'] = 3; } elseif ($bus['align'] == 7) { $bus['align'] = 7; } else { $bus['align'] = 0; } mysql_query( 'INSERT INTO `users` (`chatColor`,`align`,`inTurnir`,`molch1`,`molch2`,`activ`,`login`,`room`,`name`,`sex`,`level`,`bithday`) VALUES ( "' . $bus['chatColor'] . '","' . $bus['align'] . '","' . $pl['id'] . '","' . $bus['molch1'] . '","' . $bus['molch2'] . '","0","' . $bus['login'] . '","362","' . $bus['name'] . '","' . $bus['sex'] . '","' . $pl['level'] . '","' . date( 'd.m.Y' ) . '")' ); // $inbot = mysql_insert_id(); //айди бота if ($inbot > 0) { //Бот // $mp = rand(0, count($mapu) - 1); $testxy = 0; $jj = count($newkor); if ($i == 0) { $x1 = $mapu[$mp]['x']; $y1 = $mapu[$mp]['y']; $newkor[$i]['x'] = $mapu[$mp]['x']; $newkor[$i]['y'] = $mapu[$mp]['y']; } else { while ($testxy < 1) { $iii = 0; while ($iii < $jj) { if (($newkor[$iii]['x'] <= $mapu[$mp]['x'] + 3) && ($newkor[$iii]['x'] >= $mapu[$mp]['x'] - 3) && ($newkor[$iii]['y'] <= $mapu[$mp]['y'] + 3) && ($newkor[$iii]['y'] >= $mapu[$mp]['y'] - 3)) { $testxy = 1; } $iii++; } if ($testxy == 1) { $mp = rand(0, count($mapu) - 1); $testxy = 0; } else { $testxy = 1; $x1 = $mapu[$mp]['x']; $y1 = $mapu[$mp]['y']; $newkor[$i]['x'] = $mapu[$mp]['x']; $newkor[$i]['y'] = $mapu[$mp]['y']; } } } // unset($mapu[$mp]); // mysql_query( 'INSERT INTO `stats` (`timeGo`,`timeGoL`,`upLevel`,`dnow`,`id`,`stats`,`exp`,`ability`,`skills`,`x`,`y`) VALUES ( "' . (time() + $cnfg['time_puti']) . '","' . (time( ) + $cnfg['time_puti']) . '","98","' . $dnew . '","' . $inbot . '", "s1=3|s2=3|s3=3|s4=' . $st2s[$pl['level']][0] . '|s5=0|s6=0|rinv=40|m9=5|m6=10","' . $exp2[$pl['level']] . '", "' . $st2s[$pl['level']][1] . '","' . $st2s[$pl['level']][2] . '","' . $x1 . '","' . $y1 . '" )' ); mysql_query( 'UPDATE `users` SET `inUser` = "' . $inbot . '" WHERE `id` = "' . $bus['id'] . '" LIMIT 1' ); } //Добавляем путы // mysql_query( 'INSERT INTO `eff_users` (`id_eff`,`uid`,`name`,`data`,`overType`,`timeUse`,`img2`) VALUES ( "2","' . $inbot . '","Путы","add_speedhp=30000|add_speedmp=30000|puti=' . (time( ) + $cnfg['time_puti']) . '","1","' . (time() + $cnfg['time_puti']) . '","chains.gif" ) ' ); // //Обновляем данные заявки БС mysql_query( 'UPDATE `bs_zv` SET `finish` = "' . time( ) . '",`inBot` = "' . $inbot . '" WHERE `id` = "' . $pl_u['id'] . '" LIMIT 1' ); // unset($bus['login_BIG']); $i++; } $j++; } unset($sp_u, $pl_u, $bus, $usrlst, $testxy, $iii, $jj); //Выбираем тип БС $pl['type_btl'] = 0; // $m1 = $maps[rand(0, count($maps) - 1)]; $x1 = round($m1[0]); $y1 = round($m1[1]); // unset($mis, $m1, $x1, $y1, $i2); // $ubss = ltrim($ubss, ', '); // //Обновление статуса Башни Смерти и удаление заявок mysql_query( 'UPDATE `bs_turnirs` SET `type_btl` = "' . $pl['type_btl'] . '", `status` = "1", `users` = "' . $i . '", `arhiv` = "' . $pl['arhiv'] . '", `users_finish` = "0" WHERE `id` = "' . $pl['id'] . '" LIMIT 1' ); mysql_query( 'UPDATE `bs_zv` SET `finish` = "' . time( ) . '" WHERE `bsid` = "' . $pl['id'] . '" AND `finish` = "0" AND `inBot` = "0"' ); //Добавляем в лог БС $text = 'Начало турнира. Участники: ' . $ubss; mysql_query( 'INSERT INTO `bs_logs` (`type`,`text`,`time`,`id_bs`,`count_bs`,`city`,`m`,`u`) VALUES ( "1", "' . mysql_real_escape_string($text) . '", "' . time( ) . '", "' . $pl['id'] . '", "' . $pl['count'] . '", "' . $pl['city'] . '", "' . round($pl['money'] * 0.85, 2) . '","' . $i . '" )' ); // e('Начался турнир , для ' . $pl['to_lvl'] . ' уровней в Башне Смерти. Участники: ' . $ubss . '.'); } } else { //Оповещаем участников о начале турнира за 60 мин., а так-же за 10 мин. if ($pl['status'] == 0) { if ($pl['ch1'] == 0 && $pl['time_start'] - 60 * 60 < time()) { mysql_query('UPDATE `bs_turnirs` SET `ch1` = `ch1` + 1 WHERE `id` = "' . $pl['id'] . '" LIMIT 1'); //e('Начало турнира вечных «5» уровней, для '.$pl['to_lvl'].' уровней в Башне Смерти через '.timeOut($pl['time_start']-time()).' ('.date('d.m.Y H:i',$pl['time_start']).'), текущий призовой фонд: '.round($pl['money']*0.85,2).' кр., заявок: '.$pl['users'].''); } elseif ($pl['ch1'] == 1 && $pl['time_start'] - 10 * 60 < time()) { mysql_query('UPDATE `bs_turnirs` SET `ch1` = `ch1` + 1 WHERE `id` = "' . $pl['id'] . '" LIMIT 1'); e( 'Начало турнира, для ' . $pl['to_lvl'] . ' уровней в Башне Смерти через ' . timeOut( $pl['time_start'] - time() ) . ' (' . date( 'd.m.Y H:i', $pl['time_start'] ) . '), текущий призовой фонд: ' . round( $pl['money'] * 0.85, 2 ) . ' кр., 1.00 Екр., заявок: ' . $pl['users'] . '' ); } } } } echo '#finish#';