<?php
session_start();
$sid = $_SESSION['hash'];
require_once('../inc/config.php');
$selecter1 = "SELECT * FROM kot_user WHERE hash = '$sid'";
$result4 = mysql_query($selecter1);
$mydm = mysql_fetch_array($result4);
// ЧТОБЫ БОТЫ ИГРАЛИ САМИ ЧЕРЕЗ CRON
$time=time();
// ЗАЩИТА ОТ ЧАСТЫХ ЗАПРОСОВ
if(!empty($_SESSION['uptime']) && $_SESSION['uptime']>$time-1){ exit; }
$_SESSION['uptime']=$time;
$num = 1;
// СОРТИРУЕМ СТАВКИ ПО ПРОЦЕНТУ И СТАВИМ СВОЮ СТАВКУ В НАЧАЛО
function view_users($users_t,$u_id){
usort($users_t,function($a,$b){ return($b[1]-$a[1]); });
if(!empty($u_id)){
for($n=0;$n<sizeof($users_t);$n++){
if($users_t[$n][0]==$u_id){
$set_first=$users_t[$n];
unset($users_t[$n]);
array_unshift($users_t,$set_first);
break;
}
}
}
$cv=0;
foreach($users_t as $users_i){
if($cv==1){ $cv=0; }
else{ $cv++; }
$vu_t.=' <li ><img src="'.$users_i[2].'" style="width:50px;height:50px;border-radius:50%;margin-top:10px;"class="avatar" alt="">';
$vu_t.='<span class="chances-field chances-field__money">'.$users_i[3].' <i class="fas fa-coins"></i></span>';
$vu_t.=' <span class="chances-field" style="position:relative;top:-10px;">'.$users_i[4].'%</span>';
$vu_t.='<color style="background: #ff0000;"></color>';
$vu_t.=' </li>';
}
if(empty($users_t)){
$vu_t.='<td class="room_u_wait"><center>Ожидание игроков...</center></td>';
}
return $vu_t;
}
$bots_s=mysql_query("SELECT * FROM bots LIMIT 1") or die('cant select bots');
$bm=mysql_fetch_assoc($bots_s);
if(!isset($bm)){ exit('bots error'); }
$time=time();
$me=session_id();
//if(empty($me)){ exit; }
$use=0;
$up_time=1;
if($bm['me']==$me){ $use=1; }
$tout=10; // ПЕРЕРЫВ В СЕКУНДАХ. НУЖЕН ЧТОБЫ, ЕСЛИ ОБРАБОТКА ХОСТИНГОМ ФАЙЛА У ИГРОКА - АКТИВАТОРА ЗАВИСЛА, НО КОГДА ОТВИСНЕТ, - ТО ОБНОВИТ СВОЁ ВРЕМЯ АКТИВНОСТИ.
$tup_s=20; // СКОЛЬКО СЕКУНД СЧИТАТЬСЯ АКТИВНЫМ
$tup_t=$time+$tup_s;
// ЕСЛИ ВРЕМЯ ВЫШЛО - СТАВИМ СЕБЯ
if($bm['time']<$time+$tout){
mysql_query("UPDATE bots SET me='$me',time='$tup_t' WHERE me='".$bm['me']."' AND time='".$bm['time']."' LIMIT 1") or die('cant update me');
$bots_s=mysql_query("SELECT * FROM bots LIMIT 1") or die('cant select bots');
$bm=mysql_fetch_assoc($bots_s);
//if(empty($bm)){ exit; }
if($bm['me']==$me && $bm['time']==$tup_t){ $use=1; $up_time=0; }
else{ $use=0; }
}
$ids_t=trim($bm['ids']);
$ids_t=trim($ids_t,',');
$ids_t=preg_replace("#[^0-9,]+#",'',$ids_t);
$ids_a=explode(',',$ids_t);
$ids_t=implode(',',$ids_a);
if($use==1 && (empty($ids_a) || empty($ids_t) || $bm['next']>$time)){ $use=0; }
// ОБНОВЛЕНИЕ ВРЕМЕНИ, ОБНУЛЕНИЕ ЛИМИТА СТАВОК, ОБНУЛЕНИЕ ВСТРЕЧ
if($use==1 && $up_time==1){
$now_d=date('j',$time);
$set_day='';
if($now_d!=$bm['day']){
$set_day=',meeted=0,money_yd=money_day,money_day=0,day='.$now_d;
mysql_query("UPDATE kot_user SET bet_count=0 WHERE id IN ($ids_t)") or die('cant update bet_count');
}
mysql_query("UPDATE bots SET time='$tup_t'$set_day WHERE me='".$bm['me']."' AND time='".$bm['time']."' LIMIT 1") or die('cant update set_day');
}
// ______________ СПИСОК ИГРОКОВ И ДАННЫЕ _______________
$users_count=0;
$status='';
$finish_time=0;
$up_bank=0;
$users=array();
$ru=array();
$uto=array();
$lottery=array();
$lottery[0]['room']=$num;
$lottery[0]['finish']=0;
$users_t=array();
$users_q=mysql_query("SELECT * FROM room_1 ORDER BY id ASC") or die('cant select users');
if(mysql_num_rows($users_q)>0){
while($users_m=mysql_fetch_assoc($users_q)){
$uto[$users_m['uid']]=$users_m;
$users_count++;
$up_bank+=$users_m['sum_bet'];
if($users_m['id']==1){ $status=$users_m['status']; $finish_time=$users_m['finish_time']; $lottery[0]['finish']=$users_m['finish_time']; }
$users[$users_m['uid']]=$users_m;
$users_t[]=array($users_m['uid'],$users_m['percent'],$users_m['avatar'],$users_m['sum_bet'],$users_m['percent'],$users_m['login']);
}
}
$users_t=view_users($users_t,$u_id);
$ru[$num]=$uto;
// ______________ БОТ. ВЫБИРАЕМ ДАННЫЕ ОСТАЛЬНЫХ КОМНАТ _______________
if($use==1){
$gr=array();
foreach($room as $rr_i=>$rr_v){
if($rr_i!=$num){ $gr[]=$rr_i; }
}
if(!empty($gr)){
foreach($gr as $bb_gr){
$uto=array();
$bb_a_finish=0;
$bb_q=mysql_query("SELECT * FROM room_$bb_gr ORDER BY id ASC") or die('cant select users');
while($bb_m=mysql_fetch_assoc($bb_q)){
$uto[$bb_m['uid']]=$bb_m;
if($bb_m['id']==1){ $bb_a_finish=$bb_m['finish_time']; }
}
$ru[$bb_gr]=$uto;
$lottery[]=array('room'=>$bb_gr,'finish'=>$bb_a_finish);
}
}
}
// ______________ ПРОВЕРКА НА ФИНИШ _______________
if($finish_time>0){ $time_to_show=$finish_time-$time; }
else{ $time_to_show=0; }
// ______________ УБИРАЕМ ЗАВИСАНИЕ _______________
if($time_to_show<-30 && $status!=''){
mysql_query("UPDATE room_$num SET status='' WHERE id=1 AND status!='' LIMIT 1") or die('cant reload status');
$status='';
}
// ______________ ВЫБОР ПОБЕДИТЕЛЯ _______________
// ТУТ ИМЕННО НАДО $time_to_show<0
if($time_to_show<0 && $status==''){
// СТАВИМ СВОЙ IP И МИКРОСЕКУНДЫ В СТУТУС ТОЛЬКО ЕСЛИ ОН ПУСТОЙ, ТО ЕСТЬ ЕГО ЕЩЁ НИКТО НЕ СТАВИЛ.
// ДАЖЕ ЕСЛИ С ДВУХ СТРАНИЦ С ОДНОГО IP ТО НЕ ЗАПУСТИТСЯ ТАК КАК НЕ СОВПАДАЮТ МИКРОСЕКУНДЫ
$ipmicro=$ip.microtime(true);
if(empty($ipmicro)){ exit; }
mysql_query("UPDATE room_$num SET status='$ipmicro' WHERE id=1 AND status='' LIMIT 1") or die('cant update status');
// НЕТ ЗАДЕРЖКИ. НО ЕСЛИ ПОНАДОБИТСЯ, ТО ПОСТАВИТЬ sleep(1) ИЛИ ЛУЧШЕ sleep(2);
$is_my_status_q=mysql_query("SELECT status FROM room_$num WHERE id=1 AND status='$ipmicro' LIMIT 1") or die('cant select my status');
$is_my_status_m=mysql_fetch_array($is_my_status_q);
if($is_my_status_m['status']==$ipmicro){
$users_uid=array();
$avatars='';
$mwin_id=0;
$mwin_sum=0;
$mwin_pr=0;
$ww_bank=0;
foreach($users as $u=>$v){
$ww_bank+=$users[$u]['sum_bet'];
$u_percent=ceil($users[$u]['percent']+1);
$avatars.='sw_pre_list.push(['.$u_percent.',"'.$users[$u]['avatar'].'"]);';
if($users[$u]['bot']!=2 && $users[$u]['percent']<$room_dont){ $u_percent=0; }
if($users[$u]['bot']==2){ $mwin_id=$u; $mwin_sum=$users[$u]['sum_bet']; $mwin_pr=$users[$u]['percent']; }
for($n=0;$n<$u_percent;$n++){
$users_uid[]=$u;
}
}
if(empty($users_uid)){ exit; }
shuffle($users_uid);
shuffle($avatars);
$winner_id=$users_uid[0];
$need_up_pr=0;
if($mwin_id!=0){
$winner_id=$mwin_id;
$pre_wsum=$mwin_sum;
$pre_wpr=0;
$ww_bank-=$mwin_sum;
if($mwin_pr<1 && $bot_increase==1){
for($n=0;$n<100;$n++){
// ТУТ *1 ЭТО НА СЛУЧАЙ ЕСЛИ НЕ НАДО ПРЯМ ДО МАКИСМАЛЬНОЙ СУММЫ. НАПРИМЕР *0.8 ЭТО 80% ОТ МАКСИМУМА КОМНАТЫ
if($pre_wsum+$room[$num]['min']<$room[$num]['max']*1){
$pre_wsum+=$room[$num]['min'];
$pre_wsum=number_format($pre_wsum,2,'.','');
$pre_wpr=$pre_wsum*100/($ww_bank+$pre_wsum);
$need_up_pr=1;
}
else{
break;
}
if($pre_wpr>=1){ break; }
}
}
}
// ОБНОВЛЯЕМ ПРОЦЕНТЫ. НО НЕ В БАЗЕ.
if($need_up_pr==1){
$users[$mwin_id]['sum_bet']=$pre_wsum;
$ww_bank+=$pre_wsum;
$up_bank=$ww_bank;
$users_t=array();
foreach($users as $u=>$v){
$users[$u]['percent']=$users[$u]['sum_bet']*100/$ww_bank;
$users[$u]['percent']=preg_replace('#(\..{2}).*#','$1',$users[$u]['percent']);
$users[$u]['percent']=number_format($users[$u]['percent'],2,'.','');
$users_t[]=array($u,$users[$u]['percent'],$users[$u]['avatar'],$users[$u]['sum_bet'],$users[$u]['percent'],$users[$u]['login']);
}
$users_t=view_users($users_t,$u_id);
}
// _________________ СВОЙ ID ПОБЕДИТЕЛЯ ________________
if(!empty($room_wins) && $room_wins==1 && $mwin_id==0){
$iwq=mysql_query("SELECT id_win_def FROM data LIMIT 1") or die('cant select data');
$iwm=mysql_fetch_assoc($iwq);
if(!empty($iwm['id_win_def'])){
eval('$id_win_def=array('.$iwm['id_win_def'].');');
if(!empty($id_win_def)){
foreach($users as $u=>$v){
if(in_array($u,$id_win_def)){
$winner_id=$u;
break;
}
}
}
}
}
// БАНК БЕЗ ТОГО КТО ВЫИГРАЛ
$real_bank=$up_bank-$users[$winner_id]['sum_bet'];
$to_admin=$real_bank/100*$room[$num]['to_admin'];
$to_admin=number_format($to_admin,4,'.','');
$to_refs=$real_bank/100*($room_r_1+$room_r_2+$room_r_3);
$to_refs=number_format($to_refs,4,'.','');
$winner_sum_real=$real_bank-$to_admin-$to_refs;
$winner_sum_real=number_format($winner_sum_real,2,'.','');
$winner_sum_full=$users[$winner_id]['sum_bet']+$winner_sum_real;
$winner_sum_full=number_format($winner_sum_full,2,'.','');
$date_word=date("d.m.y H:i:s",$time);
mysql_query("INSERT INTO room_winners SET num='$num',date='$time',date_word='$date_word',uid='$winner_id',login='".$users[$winner_id]['vk_name']."',avatar='".$users[$winner_id]['avatar']."',sum_full='$winner_sum_full',sum_real='$winner_sum_real',sum_bet='".$users[$winner_id]['sum_bet']."',percent='".$users[$winner_id]['percent']."'") or die('cant set winner');
$last_id=0+mysql_insert_id($db);
// РАСЧИТЫВАЕМ ПРИЗ ДЛЯ ОБЫЧНОГО ИГРОКА
$priz=number_format(($winner_sum_full-$users[$winner_id]['sum_bet']),2,'.','');
$mode_balance=0;
$mode_money=0;
if(empty($users[$winner_id]['mode'])){ $mode_gd=1; }
else{ $mode_gd=$users[$winner_id]['mode']; }
$mode_gd==3;
if($mode_gd==1){ $mode_balance=0; $mode_money=$winner_sum_full; }
if($mode_gd==2){ $mode_balance=$users[$winner_id]['sum_bet']; $mode_money=$priz; }
if($mode_gd==3){ $mode_balance=$winner_sum_full; $mode_money=0; }
if($mode_gd==4){ $mode_balance=$priz; $mode_money=$users[$winner_id]['sum_bet']; }
if($users[$winner_id]['bot']==0){
$winner_sum_full = $winner_sum_full - ($winner_sum_full / 100)*10;
mysql_query("UPDATE kot_user SET balance=(balance+$winner_sum_full) WHERE id='$winner_id' LIMIT 1") or die('cant update winner balance');
echo 'document.getElementById("mybalance").innerHTML="'.$mydm['balance'].'";';
}
// РАСЧИТЫВАЕМ ПРИЗ ДЛЯ БОТА
else{
if($users[$winner_id]['bot']==2){
$winner_sum_full=$users[$winner_id]['real_sum']+$winner_sum_real;
$winner_sum_full=number_format($winner_sum_full,2,'.','');
}
$take=0;
$reduced=$winner_sum_real;
foreach($bot_money as $mpr){
if($winner_sum_real>=$mpr[0]){
$take=$winner_sum_real*0.01*$mpr[1];
$take=preg_replace('#(\..{2}).*#','$1',$take);
if($take>0){
$reduced=$winner_sum_real-$take;
if($reduced<0.01){ $take=0; $reduced=$winner_sum_real; }
}
}
}
$up_priz_sum=$users[$winner_id]['real_sum']+$reduced;
//echo $users_t;
//echo $winner_sum_full.' '.$winner_sum_real.' '.$users[$winner_id]['real_sum'].' '.$take.' '.$reduced.' '.$up_priz_sum;
mysql_query("UPDATE kot_user SET balance=balance+'$up_priz_sum' WHERE id='$winner_id' LIMIT 1") or die('cant update winner balance');
if($take>0){
mysql_query("UPDATE bots SET money_total=money_total+'$take',money_day=money_day+'$take' LIMIT 1") or die('cant update b take');
if($bot_send_id>0){
mysql_query("UPDATE kot_user SET balance=balance+'$take' WHERE id='$bot_send_id' LIMIT 1") or die('cant update send_id');
}
}
}
mysql_query("TRUNCATE TABLE room_$num") or die('cant truncate room');
$p_url=md5($winner_id.$p_hash);
$p_url=$winner_id.'_'.substr($p_url,0,4);
$winner_text='sw_last_id="'.$last_id.'";sw_p_url="/profile/'.$p_url.'";sw_mode="'.$users[$winner_id]['mode'].'";sw_balance="'.$mode_balance.'";sw_money="'.$mode_money.'";sw_uid="'.$winner_id.'";sw_login="'.$users[$winner_id]['login'].'";sw_percent="'.$users[$winner_id]['percent'].'";sw_avatar="'.$users[$winner_id]['avatar'].'";sw_sum_full="'.$winner_sum_full.'";sw_sum_real="'.$winner_sum_real.'";sw_sum_bet="'.$users[$winner_id]['sum_bet'].'";';
$winner_text.=$avatars;
$winner_text.='document.getElementById("vusers").innerHTML=`'.$users_t.'`;';
mysql_query('UPDATE room_status SET room_'.$num.'_time='.$time.',room_'.$num.'_winner=\''.$winner_text.'\' LIMIT 1') or die('cant update winner');
// ТОЛЬКО ТЕПЕРЬ РАЗДАЁМ РЕФСКИЕ
$ref_send=array();
$sended_sum=0;
$unused_sum=0;
foreach($users as $u=>$v){
if($u!=$winner_id){
if(!empty($users[$u]['ref_1'])){
$to_send_sum=$users[$u]['sum_bet']/100*$room_r_1;
$to_send_sum=number_format($to_send_sum,4,'.','')+0;
if($to_send_sum>0){
$ref_send[]=array($u,$users[$u]['avatar'],$users[$u]['login'],1,$to_send_sum,$users[$u]['ref_1']);
$sended_sum+=$to_send_sum;
}
}
if(!empty($users[$u]['ref_2'])){
$to_send_sum=$users[$u]['sum_bet']/100*$room_r_2;
$to_send_sum=number_format($to_send_sum,4,'.','')+0;
if($to_send_sum>0){
$ref_send[]=array($u,$users[$u]['avatar'],$users[$u]['login'],2,$to_send_sum,$users[$u]['ref_2']);
$sended_sum+=$to_send_sum;
}
}
if(!empty($users[$u]['ref_3'])){
$to_send_sum=$users[$u]['sum_bet']/100*$room_r_3;
$to_send_sum=number_format($to_send_sum,4,'.','')+0;
if($to_send_sum>0){
$ref_send[]=array($u,$users[$u]['avatar'],$users[$u]['login'],3,$to_send_sum,$users[$u]['ref_3']);
$sended_sum+=$to_send_sum;
}
}
}
}
$sended_sum=number_format($sended_sum,4,'.','');
$unused_sum=$to_refs-$sended_sum;
$unused_sum=number_format($unused_sum,4,'.','')+0;
// ОТПРАВЛЯЕМ АДМИНУ РЕФСКИЕ ОБЫЧНЫЕ И НЕРОЗДАННЫЕ
// НЕРОЗДАННАЯ СУММА МОЖЕТ БЫТЬ И МЕНЬШЕ НУЛЯ, НО ЭТО КАК КОРРЕКТИРОВКА
$to_admin=number_format(($to_admin+$unused_sum),4,'.','');
mysql_query("UPDATE data SET admin_room_s=(admin_room_s+$to_admin),ref_sum=ref_sum+$sended_sum,games_def=$last_id LIMIT 1") or die('cant update admin profit');
// ОТПРАВЛЯЕМ РЕФСКИЕ РЕФОВОДАМ
// И У РЕФЕРАЛА ЗАПИСЫВАЕМ СКОЛЬКО РЕФСКИМ ПРИНЁС СВОИМ РЕФОВОДАМ
foreach($ref_send as $rsend){
mysql_query("INSERT INTO refs_profit SET date='$time',date_word='$date_word',ref_id='".$rsend[0]."',ref_avatar='".$rsend[1]."',ref_login='".$rsend[2]."',ref_level='".$rsend[3]."',rsum='".$rsend[4]."',sp_id='".$rsend[5]."',info='Комната $num'") or die('cant insert refs_profit');
mysql_query("UPDATE users SET $room_way=$room_way+".$rsend[4].",nrs=nrs+".$rsend[4].",refs_s_".$rsend[3]."=refs_s_".$rsend[3]."+".$rsend[4]." WHERE uid='".$rsend[5]."' LIMIT 1") or die('cant update referer balance');
mysql_query("UPDATE users SET toref_s_".$rsend[3]."=toref_s_".$rsend[3]."+".$rsend[4]." WHERE uid='".$rsend[0]."' LIMIT 1") or die('cant update refereral toref_s');
}
}
}
// __________________________ БОТ НАЧАЛО ______________________________
// __________________________ БОТ НАЧАЛО ______________________________
// __________________________ БОТ НАЧАЛО ______________________________
// ИЩЕМ СВЕЖИЕ КОМНАТЫ И В КОТОРЫХ НЕТ БОТА, КОТОРЫЙ ДОЛЖЕН ПОБЕДИТЬ
if($use==1){
$rooms_nums=array(); // НОМЕРА СВЕЖИХ КОМНАТ
$ru_have_bots=array(); // СПИСОК БОТОВ В КОМНАТАХ
$ru_have_users=array(); // СПИСОК ЮЗЕРОВ В КОМНАТАХ
$ru_to_win_list=array(); // СПИСОК ТЕХ КТО ДОЛЖЕН ПОБЕДИТЬ
foreach($lottery as $lot){
if($lot['finish']==0 || $lot['finish']>$time+4){
$must_win=0;
$ru_bots_id[$lot['room']]=array();
foreach($ru[$lot['room']] as $ru_id=>$ru_bot){
if($ru_bot['bot']==0){ $ru_have_users[$lot['room']][]=$ru_id; }
if($ru_bot['bot']==2){ $must_win=1; $ru_to_win_list[]=$ru_id; }
if($ru_bot['bot']>0){
if(!in_array($ru_id,$ru_have_bots[$lot['room']])){
$ru_have_bots[$lot['room']][]=$ru_id;
}
}
}
// ДОБАВЛЯЕМ ТОЛЬКО ТЕ КОМНАТЫ, В КОТОРЫХ НЕТ БОТА, КОТОРЫЙ ДОЛЖЕН ПОБЕДИТЬ
if($must_win==0){
$rooms_data[$lot['room']]=$lot;
$rooms_nums[]=$lot['room']; // СПИСОК СВЕЖИХ КОМНАТ
}
}
}
}
if($use==1 && !empty($rooms_data) && !empty($rooms_nums)){
$pre_bots_ids=array();
$bots_ids=array();
$bot_data=array();
$bots_qq=mysql_query("SELECT * FROM users WHERE uid IN ($ids_t)") or die('cant select bots');
while($bot_s=mysql_fetch_assoc($bots_qq)){
// УЧИТЫВАЕМ ТЕХ, КТО: ВКЛЮЧЕН, ВРЕМЯ ПРИШЛО, НЕ ПРЕДЕЛА СТАВОК ИЛИ ЕСТЬ, НО НЕ ДОСТИГНУТ
// УКАЗАН МИНИМАЛЬНЫЙ БАЛАНС, НАСТРОЕНЫ ТАЙМЕРЫ
if($bot_s['on']==1 && $bot_s['time']<$time && ($bot_s['bet_c_limit']==0 || $bot_s['bet_c_limit']>$bot_s['bet_count']) && $bot_s['min_b']>0){
if($bot_s['period_time_1']!=0 && $bot_s['period_time_2']!=0 && $bot_s['period_time_2']>=$bot_s['period_time_1'] && $bot_s['period_mode']>0){
$bot_data[$bot_s['uid']]=$bot_s;
$bot_data[$bot_s['uid']]['rooms_good']=array();
$bot_data[$bot_s['uid']]['rooms']=trim($bot_data[$bot_s['uid']]['rooms']);
$bot_data[$bot_s['uid']]['rooms']=trim($bot_data[$bot_s['uid']]['rooms'],',');
$bot_data[$bot_s['uid']]['rooms']=preg_replace("#[^0-9,]+#",'',$bot_data[$bot_s['uid']]['rooms']);
$bot_data[$bot_s['uid']]['rooms']=explode(',',$bot_data[$bot_s['uid']]['rooms']);
// ДОБАВЛЯЕМ В ПРЕД СПИСОК ТОЛЬКО ТЕХ БОТОВ, У КОТОРЫХ ПРОПИСАНЫ КОМНАТЫ
if(!empty($bot_data[$bot_s['uid']]['rooms'][0])){
$pre_bots_ids[]=$bot_s['uid'];
}
}
}
}
/*
echo 'pre_bots_ids: '.implode(',',$pre_bots_ids)."\r\n";
*/
// ДОБАВЛЯЕМ БОТУ ТОЛЬКО ТЕ КОМНАТЫ, КОТОРЫЕ ЕСТЬ В СПИСКЕ СВЕЖИХ
// И В ЕГО СПИСКЕ ИЗ users
// И ЕГО НЕТ В ЭТОЙ КОМНАТЕ
// И ПОДХОДИТ БАЛАНС ЭТИХ КОМНАТ
// И ЕСЛИ ВСТРЕЧИ РАЗРЕШЕНЫ. ЛИБО ВКЛЮЧЕНЫ. И ПРЕДЕЛ ВСТРЕЧ РАВЕН НУЛЮ, ЛИБО ПРЕДЕЛ НЕ ДОСТИГНУТ
// meet_mode=0 - ЗАПРЕТИТЬ, meet_mode=1 - РАЗРЕШИТЬ
// И НЕ В СПИСКЕ ТЕХ КТО ДОЛЖЕН ПОБЕДИТЬ. ТО ЕСТЬ ЧТОБ ЕСЛИ У НЕГО МАЛО ДЕНЕГ, ТО НЕ ПОЛУЧИЛОСЬ ЧТО ПОСТАВИЛ В ДРУГИЕ КОМНАТЫ И ДОЛЖЕН ВО ВСЕХ ПОБЕДИТЬ.
// ЭТО БУДЕТ ПОДОЗРИТЕЛЬНО. ПОЭТОМУ НАДО ПОДОЖДАТЬ ПОКА ТА ПОБЕДНАЯ СТАВКА НЕ РОЗЫГРАЕТСЯ.
foreach($rooms_nums as $rms){
foreach($pre_bots_ids as $bs){
if(in_array($rms,$bot_data[$bs]['rooms']) && !in_array($bs,$ru_have_bots[$rms]) && !in_array($bs,$ru_to_win_list) && $bot_data[$bs]['balance']>=$room[$rms]['min']){
if(empty($ru_have_bots[$rms]) || (!empty($ru_have_bots[$rms]) && $bm['meet_mode']==1 && ($bm['meet_limit']==0 || ($bm['meet_limit']>0 && $bm['meet_limit']>=$bm['meeted'])))){
$bot_data[$bs]['rooms_good'][]=$rms;
}
}
}
}
/*
echo 'bot_data[5]: '.implode(',',$bot_data[5]['rooms_good'])."\r\n";
*/
// ДОБАВЛЯЕМ В НАСТОЯЩИЙ СПИСОК ТОЛЬКО ТЕХ БОТОВ, У КОТОРЫХ ЕСТЬ КОМНАТЫ
foreach($pre_bots_ids as $bs){
if(!empty($bot_data[$bs]['rooms_good'])){
$bots_ids[]=$bs;
}
}
/*
echo 'bots_ids: '.implode(',',$bots_ids)."\r\n";
*/
shuffle($bots_ids);
$bot=$bot_data[$bots_ids[0]];
/*
echo 'choosen bot: '.$bot['uid']."\r\n";
*/
if(!empty($bot)){
shuffle($bot['rooms_good']); // ПЕРЕМЕШИВАЕМ КОМНАТЫ ДЛЯ РАЗНООБРАЗИЯ
$bot_room=$bot['rooms_good'][0]; // НОМЕР ВЫБРАННОЙ КОМНАТЫ
//$bot['balance']=floor($bot['balance']);
//$room[$bot_room]['min']=floor($room[$bot_room]['min']);
// ГЕНЕРИРУЕМ СУММУ СТАВКИ
if(empty($bot_dobavka[$bot_room])){ echo 'no dobavka'; exit; }
$bot['balance']=preg_replace('#(\..{2}).*#','$1',$bot['balance']);
$bot['balance']=number_format($bot['balance'],2,'.','');
// ДЕЛАЕМ ЦЕЛОЕ ЧИСЛО
$bot_dobavka[$bot_room][0]=floor($bot_dobavka[$bot_room][0]);
if($room[$bot_room]['min']>=1){
$room[$bot_room]['min']=floor($room[$bot_room]['min']);
$room[$bot_room]['max']=floor($room[$bot_room]['max']);
}
if($room[$bot_room]['min']<1){ $bot_max_bet=$room[$bot_room]['min']+($bot_dobavka[$bot_room][0]/10); }
else{ $bot_max_bet=$room[$bot_room]['min']+$bot_dobavka[$bot_room][0]; }
//echo $bot_room.'=='.$room[$bot_room]['min'].'--';
//echo "\r\n bot_max_bet=".$bot_max_bet;
if($bot_max_bet>$room[$bot_room]['max']){ $bot_max_bet=$room[$bot_room]['max']; }
if($bot_max_bet>$bot['balance']){ $bot_max_bet=$bot['balance']; }
$bot_max_bet=number_format($bot_max_bet,2,'.','');
//echo "\r\n bot_max_bet=".$bot_max_bet."\r\n";
$rnd_1=(int)($room[$bot_room]['min']*10);
$rnd_2=(int)($bot_max_bet*10);
//echo "\r\n".$rnd_1.' '.$rnd_2."\r\n";
$sum=rand($rnd_1,$rnd_2);
//echo $sum."\r\n";
$sum=$sum/10;
$sum=preg_replace('#(\..{2}).*#','$1',$sum);
$sum=number_format($sum,2,'.','');
if($room[$bot_room]['min']>=1 && $bot_dobavka[$bot_room][1]==1){
$sum=floor($sum);
}
//echo $sum."\r\n";
$now_b=$bot['balance']-$sum; // БАЛАНС ПОСЛЕ ОТНЯТИЯ СУММЫ СТАВКИ
// ЕСЛИ ПОСЛЕ ОТНЯТИЯ ОТ БАЛАНСА СУММЫ СТАВКИ, БАЛАНС СТАЛ МЕНЬШЕ МИНИМАЛЬНОГО БАЛАНСА, ТО ДОЛЖЕН ПОБЕДИТЬ
if($now_b<$bot['min_b']){ $bot_mode=2; } // ПОБЕДНАЯ СТАВКА
else{ $bot_mode=1; } // ПРОСТО СТАВКА
// __________________________ СТАВКА БОТА ______________________________
if($sum>=$room[$bot_room]['min'] && $sum<=$room[$bot_room]['max'] && is_numeric($sum) && $bot['balance']>=$sum){
// СТАВИМ СЛЕДУЮЩЕЕ ВРЕМЯ ЗАПУСКА, УВЕЛИЧИВАЕМ КОЛ-ВО СТАВОК
$time_set=$time+rand($bot['period_time_1'],$bot['period_time_2'])*$bot['period_mode'];
// ДЛЯ КОНКУРСА СТАВОК
$datas=mysql_query("SELECT contest_bet_d_1,contest_bet_d_2 FROM data LIMIT 1") or die('cant select data');
$d=mysql_fetch_assoc($datas);
$contest_bet_d_1=strtotime($d['contest_bet_d_1']);
$contest_bet_d_2=strtotime($d['contest_bet_d_2']);
$contest_bet=0;
if($time>$contest_bet_d_1 && $time<$contest_bet_d_2){ $contest_bet=$sum; }
if($bot['date2']<$time-86400){
$pre_dt=$time-4*3600;
if($bot['date']>$pre_dt){
$bot['date2']=$bot['date'];
$bot['date2_word']=$bot['date_word'];
}
else{
$bot['date2']=$pre_dt;
$bot['date2_word']=date('d.m.y H:i:s',$pre_dt);
}
}
mysql_query("UPDATE users SET date2='".$bot['date2']."',date2_word='".$bot['date2_word']."',time='$time_set',bet_count=bet_count+1,balance=(balance-$sum),last_act='$time',bets_time=$time,bets_dsum=bets_dsum+$sum,bets_count=bets_count+1,contest_bet=(contest_bet+$contest_bet) WHERE uid=".$bot['uid']." LIMIT 1") or die('cant last_act');
mysql_query("INSERT INTO room_$bot_room SET uid=".$bot['uid'].",login='".$bot['login']."',sum_bet=$sum,real_sum=$sum,avatar='".$bot['avatar']."',date='$time',bot=$bot_mode,mode=3") or die('cant insert bet');
$ucount=1+sizeof($ru[$bot_room]);
if($ucount>=$room[$bot_room]['users'] && $rooms_data[$bot_room]['finish']==0){
mysql_query("UPDATE room_$bot_room SET finish_time='".($time+$room[$bot_room]['timer'])."' WHERE id=1 LIMIT 1") or die('cant set finish_time');
}
$all_bets_sum=$sum;
foreach($ru[$bot_room] as $ru_v){
$all_bets_sum+=$ru_v['sum_bet'];
}
mysql_query("UPDATE room_$bot_room SET percent=(sum_bet*100/$all_bets_sum)") or die('cant update percent');
// ДОБАВЛЯЕМ ВСТРЕЧИ, ЕСЛИ ЕСТЬ ХОТЬ ОДИН БОТ В КОМНАТЕ
$meeted='';
if(!empty($ru_have_bots[$bot_room])){
$meeted=',meeted=meeted+1';
}
if($all_bets_sum>0){ $con='<div class="head_room_players">Игроков: <span>'.$ucount.'</span></div> <div class="head_room_bank">Банк: <span>'.$all_bets_sum.' р.</span></div>'; }
else{ $con='<div class="head_room_wait"><img src="/images/pages/room/room_waiting.gif"></div>'; }
if($con!=$r_m['room_'.$bot_room]){
$r_m['room_'.$bot_room]=$con;
mysql_query("UPDATE room_status SET room_$bot_room='$con' LIMIT 1") or die('cant update room_status');
}
mysql_query("UPDATE bots SET next=".($time+$bot_next)."$meeted LIMIT 1") or die('cant next');
mysql_query("INSERT INTO online (ip,last_time,uid,login,avatar) VALUES ('bot','".($time+3600)."','".$bot['uid']."','".$bot['login']."','".$bot['avatar']."')");
}
}
}
// __________________________ БОТ КОНЕЦ ______________________________
// __________________________ БОТ КОНЕЦ ______________________________
// __________________________ БОТ КОНЕЦ ______________________________
$r_q=mysql_query("SELECT * FROM room_status LIMIT 1") or die('cant room_status');
$r_m=mysql_fetch_assoc($r_q);
// ______________________ ПОКАЗЫВАЕМ ИГРОКОВ И ПОБЕДИТЕЛЯ _______________________
$past_time=$time-$r_m['room_'.$num.'_time'];
if($past_time<6){
$sw_inc=2;
/* ДЛЯ УСКОРЕНИЯ ВЫБОРА ПОБЕДИТЕЛЯ В 2 РАЗА:
if($past_time<10){
$sw_inc=$past_time/2;
if($sw_inc<1){ $sw_inc=1; }
ЗАМЕНИТЬ НА
if($past_time<6){
$sw_inc=2;
*/
echo $r_m['room_'.$num.'_winner'];
if($mobile==0){ echo 'sw_target=8000+30-(80*40)-3*80-4;'; }
else{ echo 'sw_target=4690-2;'; }
echo '
up_def=0;
document.getElementById("sw_login").innerHTML=sw_login;
document.getElementById("sw_percent").innerHTML=sw_percent;
document.getElementById("sw_summ_full").innerHTML=sw_sum_full;
sw_left=0;
sw_speed=0;
sw_inc='.$sw_inc.';
sw_max=-(sw_right-sw_target)/sw_target*50*sw_inc;';
echo 'document.getElementById("tcount").innerHTML="30";
document.getElementById("choose_winner_list").style.left="0px";
set_list();
document.getElementById("choose_winner_div").style.display="block";
scroll_users();
resize_img();
';
exit;
}
if($up_bank>0){ $con='<div class="head_room_players">Игроков: <span>'.$users_count.'</span></div> <div class="head_room_bank">Банк: <span>'.$up_bank.' р.</span></div>'; }
else{ $con='<div class="head_room_wait"><img src="/images/pages/room/room_waiting.gif"></div>'; }
if($con!=$r_m['room_'.$num]){
$r_m['room_'.$num]=$con;
mysql_query("UPDATE room_status SET room_$num='$con' LIMIT 1") or die('cant update room_status');
}
// ______________________ ПРИВЕТСТВУЕМ ПОЛЬЗОВАТЕЛЕЙ _______________________
$auth='';
if($mobile==0 && isset($_SESSION['auth_t']) && isset($_SESSION['auth_id']) && $_SESSION['auth_t']!=$r_m['auth']){
$up_auth_id=0;
$s_q=mysql_query("SELECT * FROM auth WHERE id>'".$_SESSION['auth_id']."' ORDER BY id ASC") or die('cant hello');
while($s_m=mysql_fetch_assoc($s_q)){
$up_auth_id=$s_m['id'];
$p_url=md5($s_m['uid'].$p_hash);
$p_url=$s_m['uid'].'_'.substr($p_url,0,4);
$s_m['login']=str_replace(' ','<br>',$s_m['login']);
$auth.='auth_list.push(\'<td class="room_auth_avatar"><a target="_blank" href="/profile/'.$p_url.'"><img src="'.$s_m['avatar'].'" /></a></td><td class="room_auth_login"><div><a target="_blank" href="/profile/'.$p_url.'">'.$s_m['login'].'</a></div></td></tr>\');';
}
if($up_auth_id!=0){
$_SESSION['auth_id']=$up_auth_id;
$_SESSION['auth_t']=$r_m['auth'];
}
}
// ______________________ ВЫВОД ДАННЫХ _______________________
if($finish_time==0){
}
else{
echo '
timer_hash_2='.$finish_time.';
timer_2='.$time_to_show.';
';
}
echo 'document.getElementById("bank").innerHTML="'.$up_bank.'";';
$users_t='
if(vusers_hash!="'.md5($users_t).'"){
vusers_hash="'.md5($users_t).'";
document.getElementById("vusers").innerHTML=\''.$users_t.'\';
resize_img();
}
';
echo $users_t;
foreach($r_m as $r_mi=>$r_mv){
if(preg_match('#room\_[0-9a-z]+$#',$r_mi)){
echo 'if(document.getElementById("head_'.$r_mi.'")!=null && document.getElementById("head_'.$r_mi.'").innerHTML!=\''.$r_mv.'\'){
document.getElementById("head_'.$r_mi.'").innerHTML=\''.$r_mv.'\'; }';
}
}
echo $auth;
?>