<?
session_start();
include_once("req.php");
$timestart=time();
array_walk($_REQUEST,"format_string");   
array_walk($_POST,"format_string");   
array_walk($_GET,"format_string");   
include_once("session_class.php");
include_once("persinfo_class.php");
include_once("edit_skills.php"); #skills_side1
error_reporting(E_ALL ^ E_NOTICE);
# удаление обкастов
db_use('query',"delete from obkast where obend<='".time()."';");
# удаление молчанок и т.д.
db_use('query',"delete from person_on where timestamp2<'".time()."' and (type<3 or type=4 or type=5);");

for ($mm=0;$mm<5;$mm++) {
echo '<br>'.$mm.':=========================<br>';

# проверка завершения боев таймом
/*

*/


$bats=db_use('query',"select * from battle where complete=1 and ".time()."<last_event+timeout*60;");
# идем по битвам которые идут и еще не кончились таймаутом
unset($b);while ($b<mysql_num_rows($bats)) {
	$b++;$battle=mysql_fetch_array($bats);
	if (time()>$timestart+10) {die;} # если скрипт выполняется больше чем 10 сек - нунах
	echo 'b='.$b.' - битва №'.$battle['id_battle'].'<br />';
	if ($battle['start_time']) { # начало боя было
		# $last найти кто ходил последний (команду)
		$last=(!$mm?$battle['last_team']:($battle['last_team']==1?2:($battle['last_team']==2?1:0)));
		if ($last) { # уже ударяли хотя бы раз в битве (всегда так будет)
			$myteam=($last==1?2:1);echo 'Для команды: '.$myteam.' ________________';
			unset($last_turn_time,$win_team,$timeout);
			if ($mm==0){
				echo "# самый первый запуск - проверка timeout. last - кто выбирает таймаут, myteam - проигравший<br />";

				# время отсчета начала таймаута
				$last_turn_time=($battle['last_event']?$battle['last_event']:$battle['start_time']); 
				if ($battle['timeout']*2*60+$last_turn_time<time() && $last_turn_time>0) {
					echo "# если прошло 2 времени тайма - ставить ничью<br />";
					$win_team=3;$timeout=true;			
				}elseif ($battle['timeout']*60+$last_turn_time<time() && $last_turn_time>0) {
					echo "#таймаут<br />
					# в случае если есть кто живой (из last)<br />
					# поиск живых из команды last<br />";
					$alives=db_use('array',"select (select count(bu.id_person)
					from battle_units bu 
					left join bots b on b.id_bot=bu.id_person 
					where bu.team='".$last."' and bu.id_person>100000 and bu.id_battle='".$battle['id_battle']."'
					and b.life>0) as botslife, (select count(bu.id_person)
					from battle_units bu 
					left join person p on p.id_person=bu.id_person 
					where bu.team='".$last."' and bu.id_person<100000 and bu.id_battle='".$battle['id_battle']."'
					and p.life>0) as perslife");

					if ($alives['botslife']+$alives['perslife']>0) { # есть живые кто будет ставить тайм
						if($alives['botslife']>0 && $alives['perslife']<1) {
							echo "# если в живых только боты - ставим победу<br />";
							$win_team=$last;$timeout=true;
						}elseif($alives['botslife']<1 && $alives['perslife']>0) {
							echo "# если в живых только люди - пусть сами разбираются<br />";
						}
					}else{ echo "# некому ставить тайм так как убиты<br />";
						echo "# найти живых во второй команде";
						$alives2=db_use('array',"select count(bu.id_person) as coun
						from battle_units bu 
						left join bots b on b.id_bot=bu.id_person 
						left join person p on p.id_person=bu.id_person 
						where bu.team='".$myteam."' and bu.id_battle='".$battle['id_battle']."'
						and (b.life>0 or p.life>0)");					
						if ($alives2['coun']>0) {
							echo "# есть живые - их победа<br />";
							$win_team=$myteam;$timeout=true;
						}else{
							echo"# нет живых - ничья";
							$status=3;$timeout=true;
						}
					}
				}

			}#/mm
			if($timeout) {
				end_game($id_battle,$win_team,1);
			}else{
			# след ходит тот кто в другой команде (боты)
			# выбрать "живых ботов"
			#echo time();
			#echo "select bu.*,b.life,b.id_maskperson,b.name 	from battle_units bu left join bots b on b.id_bot=bu.id_person 	where bu.id_person>100000 and b.life>0 and bu.team='".$myteam."' and bu.id_battle='".$battle['id_battle']."'<br />";
	
				$bots=db_use('query',"select bu.*,b.life,b.id_maskperson,b.name 
				from battle_units bu left join bots b on b.id_bot=bu.id_person 
				where bu.id_person>100000 and b.life>0 and bu.team='".$myteam."' and bu.id_battle='".$battle['id_battle']."'");
				# все живые боты битвы в команде которая должна походить
				
				if (mysql_num_rows($bots)) { # еть живые кому ходить
					# каждый должен походить - бьем того кто пошел последним
					$enemies=db_use('query',"select bu.id_person,COALESCE(b.life,p.life) as life 
					from battle_units bu 
					left join person p on p.id_person=bu.id_person 
					left join bots b on b.id_bot=bu.id_person where bu.team='".$last."' and bu.id_battle='".$battle['id_battle']."'");
					# враги и их жизни (без maskperson)
					unset($n,$pls_id,$pls_hp);$n=-1;while ($n<mysql_num_rows($enemies)) {
						$n++;$en=mysql_fetch_array($enemies);
						$pls_id[$last][$n]=$en['id_person'];
						$pls_hp[$last][$n]=$en['life'];
					}unset($en);
					echo "<br><br />";
					
					unset($c);while ($c<mysql_num_rows($bots)) { # идем по тем кто должен бить
						$c++;$bot=mysql_fetch_array($bots);
						echo 'BOT :'.$bot['id_person'].'-<br />';
						echo "# проверить кто послал мне ответ живой<br />";
						echo "# выбор несрезулитенного эвента для текущего бота с другими игроками, живыми<br />";
						$res=db_use('array',"select be.id_event,bs.id_person1,bs.id_person2
						from battle_event be 
						left join battle_step bs on bs.id_bstep=be.id_bstep
						left join person p on p.id_person=bs.id_person".$last."
						left join bots b on b.id_bot=bs.id_person".$last."
						where bs.is_result=0 
						and bs.id_person".($myteam)."='".$bot['id_person']."'
						and COALESCE(b.life,p.life)>0 and bs.id_battle='".$battle['id_battle']."'
						and be.event_logtype=0 and be.type1='".$last."'
						limit 1
						");
						if ($res['id_event']>0) {
							echo "# есть пославший удар чел живой<br />";
							$id_enemy1=$res['id_person'.$last];echo "Нам послал удар: ";
							echo $id_enemy1.'<br>';
						}else{ 
							echo "Никто не посылал удар. ";
							$id_enemy1=get_next_enemy($bot['id_person'],$myteam,$pls_id,$pls_hp,$pls_id[$last][$n]); # для меня
							echo "Новый противник - {$id_enemy1}<br />";
							
							# проверить посылал ли ему уже удар
							$res=db_use('array',"select 1 as res from battle_step bs 
							left join person p on p.id_person=bs.id_person".$myteam."
							left join bots b on b.id_bot=bs.id_person".$myteam."
							where bs.is_result=0 and bs.id_person".($last)."='".$id_enemy1."' 
							and bs.id_person".($myteam)."='".$bot['id_person']."'				
							and COALESCE(b.life,p.life)>0 and bs.id_battle='".$battle['id_battle']."'"); # был ли мой удар
							if ($res["res"]) {
								$id_enemy1='';echo "Был мой удар уже. Не пойдет такой противник.<br />";
							}
						}
						if ($id_enemy1>0) {
							echo "Есть противник! Я его еще не ударял<br />";
							$myinfo=new persinfo ($bot['id_person']);	$enemy=new persinfo ($id_enemy1);
							$udars_my=$myinfo->count_attacks();
							$myzones=1+($myinfo->sumall('zoneblock')+($myinfo->puton['10']->type2==10?1:0));$myzones=1;
							$defend=rand(1,5)+(5*($myzones>=3?2:($myzones-1)));
							echo "# найти нерезультенный bstep -> ";
							$id_bstep=bstep_find($battle['id_battle'],($myteam==1?$bot['id_person']:$id_enemy1),($myteam==2?$bot['id_person']:$id_enemy1),0);
							if (!$id_bstep) {
								$id_bstep=bstep_new($battle['id_battle'],
								($myteam==1?$bot['id_person']:$id_enemy1),($myteam==2?$bot['id_person']:$id_enemy1),0);
								echo "нет несрезультенного , создали ".$id_bstep.'. <br />';
							}else echo "Есть такой ".$id_bstep."<br />";
							echo "бьем ".$myteam.'<br>';
							echo newevent($battle['id_battle'],$id_bstep,$myteam,rand(1,5),$defend,$logtype);
							echo "/ok";
							if ($udars_my==2) {
								$defend=rand(1,5)+(5*($myzones>=3?2:($myzones-1)));
							echo "newevent";
							echo newevent($battle['id_battle'],$id_bstep,$myteam,rand(1,5),$defend,$logtype);
							echo "/ok";
							}echo "><br>";
								$res=db_use('array',"select count(*) as coun from battle_event where id_bstep='".$id_bstep."' and type1='".($last)."'"); # был ли ответный удар
		#						echo "select count(*) as coun from battle_event where id_bstep='".$id_bstep."' and type1='".($last)."'<br>";
							if ($res['coun']>0) { #результить
								echo "Результим ".$id_bstep;
								result_bstep($id_bstep,($myteam==1?$myinfo:$enemy),($myteam==2?$myinfo:$enemy),$battle['k'],$battle['id_battle']);
								echo "X<br>";
							}else{ echo "Нет ответных ударов - не результим.";}
						}
						
					}
				}
			}
	}
}	
	echo '/\ battle='.$battle['id_battle'].'<br />';
	}
}
?>