mysql_query("delete from turnamuser where idturnam=".$id." and iduser=".$user['id']);
mysql_query("update turnament set kolvo=kolvo-1 where id=".$id);
echo"Заявка отозвана<br>";
}
functionfract($num=0)
{
if(!is_float($num)){
returnfalse;
}
$out=explode('.',$num);
return$out[1];
}
functionPrepearTournir()
{//запускается за час до начала турнира
for($i=1;$i<$this->MaxUserLevel;$i++){
$uch=mysql_query("select id,iduser from turnamuser where loose=0 and idturnam=(select id from turnament where old=0 and level=".$i.") order by id desc");
$kol=mysql_num_rows($uch);
$cop=$kol;
if($kol>7){
while(true){
$stepen=log($cop)/log(2);
if(!$this->fract($stepen)){//==false - дробная часть отсутствует
for($j=1;$j<=($kol-$cop);$j++){
$res=mysql_fetch_row($uch);
mysql_query("delete from turnamuser where id=".$res[0]);
addchp('<font color=red>Внимание!</font> На этой неделе Вам не нашлелся противник в турнире.<BR>','{[]}'.Nick::id($res[1])->short().'{[]}');
}
mysql_query("update turnament set kolvo=kolvo-".($kol-$cop)." where old=0 and level=".$i);
break;
}
$cop--;
}
$CountUser=[];
while($res=mysql_fetch_row($uch)){
$CountUser[]=$res[1];
}
shuffle($CountUser);
for($ii=0;$ii<count($CountUser);$ii++){
$user1=$CountUser[$ii];
$user2=$CountUser[++$ii];
mysql_query("insert into turnirbattle(userid,userid1,level,idtur) values(".$user1.",".$user2.",".$i.",(select id from turnament where old=0 and level=".$i."))");
addchp('<font color=red>Внимание!</font> Подготовтесь к турниру.<BR>','{[]}'.Nick::id($user1)->short().'{[]}');
addchp('<font color=red>Внимание!</font> Подготовтесь к турниру.<BR>','{[]}'.Nick::id($user2)->short().'{[]}');
}
}else{
//Если команда не набралась удалить из таблицы и поставить турниру статус 2
while($res=mysql_fetch_row($uch)){
mysql_query("delete from turnamuser where id=".$res['0']);
addchp('<font color=red>Внимание!</font>На этой неделе команда для турнира не набралась.<BR>','{[]}'.Nick::id($res[1])->short().'{[]}');
}
mysql_query("delete from turnament where old=0 and level=".$i);
}
}
}
// созает поединок между 2 юзерами
functionMakeBattle($user1,$user2)
{
$res=mysql_fetch_array(mysql_query("select * from turnirbattle where userid=".$user1." or userid1=".$user1." limit 1"));
addch("<a href=logs.php?log=".$id." target=_blank>Бой</a> между <B><b>".Nick::id($user['id'])->short()."</b> и <b>".Nick::id($jert['id'])->short()."</b> начался. ",$user->room);
addlog($id,"Часы показывали <span class=date>".date("Y.m.d H.i")."</span>, когда ".$rr." решили выяснить кто из них сильнее. <i>(турнир)</i><BR>");
return$id;
}
}
}
// функция проверки статуса боя
functionCheckBattle($id)
{
// если по айдишнику возвращается
// 1 - победил USER1
// 2 - победил USER2
// 3 - бои идет
$res=mysql_fetch_array(mysql_query("SELECT `win` FROM `battle` WHERE `id` = ".(int)$id." LIMIT 1;"));
return$res['win'];
}
functionUpdateTournir()
{
for($i=1;$i<$this->MaxUserLevel;$i++){
$sql=mysql_query("select * from turnirbattle where level=".$i);
if(mysql_numrows($sql)==0){
$this->NextTournir($i);
$this->StartTournir($i);
}else{
echo"Для ".$i." уровня игроков следующий этап турнира начнется после завершения следующих боёв: <br>";
}
while($res=mysql_fetch_array($sql)){
$win=$this->CheckBattle($res['battleid']);
if($win==1){
mysql_query("update turnamuser set place=".time().", loose=loose+1 where iduser=".$res['userid1']);
mysql_query("update turnamuser set place=0 where iduser=".$res['userid']);
mysql_query("delete from turnirbattle where id=".$res['id']);
}
if($win==2){
mysql_query("update turnamuser set place=".time().", loose=loose+1 where iduser=".$res['userid']);
mysql_query("update turnamuser set place=0 where iduser=".$res['userid1']);
mysql_query("delete from turnirbattle where id=".$res['id']);
}
if($win==3){
echoNick::id($res['userid'])->full(1)." против ".Nick::id($res['useridl'])->full(1);
}
}
}
}
functionNextTournir($level)
{
$CheckFinal=[];
for($i=0;$i<=1;$i++){
$sql=mysql_query("select iduser from turnamuser where level=".$level." and loose=".$i." and idturnam=(select id from turnament where old=0 and level=".$level.")");
$ArrayUsers=[];
while($res=mysql_fetch_row($sql)){
$ArrayUsers[]=$res[0];
}
shuffle($CountUser);
if(count($ArrayUsers)==1){
$CheckFinal[]=$ArrayUsers[0];
}
if(count($ArrayUsers)==1&&$i==0){
addchp('<font color=red>Внимание!</font> Вы вышли в финал. Дождитесь второго финалиста.<BR>','{[]}'.Nick::id($ArrayUsers[0])->short().'{[]}');
}
if($this->fract(count($ArrayUsers)/2)){
$countUs=count($ArrayUsers)-1;
}else{
$countUs=count($ArrayUsers);
}
for($ii=0;$ii<$countUs;$ii++){
$user1=$ArrayUsers[$ii];
$user2=$ArrayUsers[++$ii];
//Востанавливаем HP
mysql_query("update users set hp=maxhp where id=".$user1." or id=".$user2);
mysql_query("insert into turnirbattle(userid,userid1,level,idtur) values(".$user1.",".$user2.",".$level.",(select id from turnament where old=0 and level=".$level."))");
addchp('<font color=red>Внимание!</font> Подготовтесь к следующему туру.<BR>','{[]}'.Nick::id($user1)->short().'{[]}');
addchp('<font color=red>Внимание!</font> Подготовтесь к следующему туру.<BR>','{[]}'.Nick::id($user2)->short().'{[]}');
}
}
if(count($CheckFinal)==2){
$this->TournirFinal($level,$CheckFinal);
}
if(count($CheckFinal)==1){
$this->CreateHTML($level);
//поставить турниру статус 2. создать HTML для подгрузки результатов
//Если команда не набралась - удалить турнир. - эо при старте в 4 часа.
$this->ShowTournirFinaliats($level);
}
}
functionCreateHTML($level)
{
$dir="logtur/".$level;
if(!file_exists($dir)){
mkdir($dir);
}
$tur=mysql_fetch_array(mysql_query("select * from turnament where old=0 and level=".$level." limit 1"));
mysql_query("update turnamuser set place=".(time()+1000)." where place=0 and idturnam=".$tur['id']." and level=".$level);
$sql=mysql_query("select tur.*, us.login from turnamuser as tur left join users as us on us.id=tur.iduser where tur.idturnam=".$tur['id']." order by tur.place desc");
$i=1;
while($res=mysql_fetch_array($sql)){
if($i==1||$i==2||$i==3){
mysql_query("INSERT INTO `delo`(`id` , `author` ,`pers`, `text`, `type`, `date`) VALUES ('','0','".$res['iduser']."','Выиграл в турнире ".$this->awards[$i][$level]." кр.','1','".time()."');");
addchp('<font color=red>Внимание!</font> За '.$i.' место в турнире, Вы получили '.$this->awards[$i][$level].' кр.<BR>','{[]}'.Nick::id($res['iduser'])->short().'{[]}');
mysql_query("update turnamuser set place=0 where (iduser=".$masFinals[0]." or iduser=".$masFinals[1].") and idturnam=(select id from turnament where old=0 and level=".$level.")");
mysql_query("insert into turnirbattle(userid,userid1,level,idtur) values(".$masFinals[0].",".$masFinals[1].",".$level.",(select id from turnament where old=0 and level=".$level."))");
addchp('<font color=red>Внимание!</font> Подготовтесь к финалу.<BR>','{[]}'.Nick::id($masFinals[0])->short().'{[]}');
addchp('<font color=red>Внимание!</font> Подготовтесь к финалу.<BR>','{[]}'.Nick::id($masFinals[1])->short().'{[]}');
}
functionexpectationenemy()
{
global$user;
$res=mysql_fetch_array(mysql_query("select * from turnirbattle where userid=".$user['id']." or userid1=".$user['id']." limit 1"));
mysql_query("update turnirbattle set badmaxweap1=".time()." , checkuser2=0 where userid1=".$user['id']);
}
addchp('<font color=red>Внимание!</font>Оставьте оружие только до 16экр или оставьте только оружие.<BR>','{[]}'.Nick::id($user['id'])->short().'{[]}');
}else{
if($res['userid']==$user['id']){
mysql_query("update turnirbattle set badmaxweap=0 where userid=".$user['id']);
}
if($res['userid1']==$user['id']){
mysql_query("update turnirbattle set badmaxweap1=0 where userid1=".$user['id']);
}
}
$sql=mysql_query("select * from turnirbattle where badmaxweap1<>0 or badmaxweap<>0");