----'.$_SERVER['SERVER_ADDR']); } } function changeSleep($uid,$sleep_action){ global $u; 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'); } //$sleep = $u->testAction('`vars` = "sleep" AND `uid` = "'.$uid.'" LIMIT 1', 1); } //Время рестарта $cnfg = array( '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'); include('_incl_data/class/__user.php'); include('_incl_data/class/__magic.php'); $itbs = array( 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) { //предмет с настройками из подземелья if($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/604800); if ($tmp > 0) { $id++; if ($id<3) {$out .= $tmp." нед. ";} $time_still = $time_still-$tmp*604800; } */ $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 ) { $u2['battle'] = mysql_fetch_array(mysql_query('SELECT `id` FROM `battle` WHERE `id` = "'.$u2['battle'].'" AND `team_win` = "-1" LIMIT 1')); if( isset($u2['battle']['id']) ) { $u2['battle'] = $u2['battle']['id']; }else{ $u2['battle'] = 0; } }*/ 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{ //if( timeOut($pl['time_start']-time()) != '44 мин.' ) { 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 = array( 1=>30000, 2=>300000 ); $st2s = array( 7=>array( 0=>10, 1=>64, 2=>8 ), 8=>array( 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 = array(); 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 = array( ); while( $plm = mysql_fetch_array($spm) ) { $maps[] = array($plm['x'],$plm['y']); } $i = 0; $j = 0; $usrlst = array(); $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 = array(); $mapsp = mysql_query('SELECT `x`,`y` FROM `dungeon_map` WHERE `id_dng` = 6'); while( $mappl = mysql_fetch_array($mapsp) ) { $map[] = array( '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 = array( 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.'" )'); // } //Добавляем монстров (Архивариусов) /*$vls0 = ''; $zi1 = 0; $id_bots = array(159,160,161); while($zi1 < count($id_bots)) { if(isset($id_bots[$zi1])) { $mp = rand(0,count($map)-1); $x1 = $map[$mp]['x']; $y1 = $map[$mp]['y']; $vls0 .= '("'.(time()+150).'","'.$dnew.'","'.$id_bots[$zi1].'","1","","'.$x1.'","'.$y1.'","0",""),'; } $zi1++; } $vls0 = rtrim($vls0,','); $ins1 = mysql_query('INSERT INTO `dungeon_bots` (`go_bot`,`dn`,`id_bot`,`colvo`,`items`,`x`,`y`,`dialog`,`atack`) VALUES '.$vls0.''); */ // $newkor = array(); 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')); if(date('w') == 0 || date('w') == 6 || date('w') == 3) { mysql_query('UPDATE `stats` SET `repexp` = `repexp` + 5 WHERE `id` = "'.$bus['id'].'" LIMIT 1'); } else { mysql_query('UPDATE `stats` SET `repexp` = `repexp` + 5 WHERE `id` = "'.$bus['id'].'" LIMIT 1'); } //Замораживаем эффекты //changeSleep($bus['id'],1); //mysql_query('UPDATE `eff_users` SET `sleeptime` = "'.time().'",`bs` = "1" WHERE `uid` = "'.$bus['id'].'" AND `delete` = "0" AND `no_Ace` = "0"'); // $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#'; ?>