Вход Регистрация
Файл: _gladiators2_/gladiators2/gladiators/gladiators/system/modules/mod_coliseum_m_group.php
Строк: 71
<?

//------------------------------------------
// Check Request && Begun Battle


 
$find 1;

 
$file file($DOCUMENT_ROOT."/database/coliseum/coliseum_m/group.dat");
 
 
$find 0;

 for(
$i=0;$i<=count($file)-1;$i++)
 {
  
$row explode("|",$file[$i]);
  
$row_1 explode(";",$row[9]);
  
$row_2 explode(";",$row[10]);

  if(
$row[2] <= time() && !$row[10])
  {
   unset(
$file[$i]);
   
$find 1;
  }
  elseif((
$row[2] <= time() && $row[9] && $row[10]) || ((count($row_1)-1)==$row[7] && (count($row_2)-1)==$row[8]))
  {
   
   
$side1 "";
   
$side2 "";
   
$side1_users "";
   
$side2_users "";

   
$kick_time "";
   
$hp "";
   
$q "";
   
$mybattle 0;

   
$row_3 explode(";",($row[9].$row[10]));

   for(
$j=0;$j<=count($row_1)-2;$j++) {

    
$row_user explode("#",$row_1[$j]);
    
$side1 .= $row_user[0].";";
    
    if(
$row[3]=="fisticuffs")
        
dress_out_all($db,$row_user[0]);
   }

   for(
$j=0;$j<=count($row_2)-2;$j++) {

    
$row_user explode("#",$row_2[$j]);
    
$side2 .= $row_user[0].";";

    if(
$row[3]=="fisticuffs")
        
dress_out_all($db,$row_user[0]);
   }

   for(
$j=0;$j<=count($row_3)-2;$j++)
   {
    
$row_user explode("#",$row_3[$j]);
    
$kick_time .= $row_user[0]."=".time().";";
   }

   for(
$j=0;$j<=count($row_3)-2;$j++)
   {
    
$row_user explode("#",$row_3[$j]);
    
$hp .= $row_user[0]."=0;";
   }

   for(
$j=0;$j<=count($row_3)-2;$j++)
   {
    
$row_user explode("#",$row_3[$j]);

    if(
$row_user[0]==$_SESSION["id"] && !$mybattle)
     
$mybattle 1;

    if(!
$j)
     
$q "id='".$row_user[0]."'";
    else
     
$q .= " or id='".$row_user[0]."'";
   }

   
$res mysql_query("insert into battle(start,timeout,side1,side2,kick_time,hp,data,type,hall) values('".time()."','".$row[4]."','".$side1."','".$side2."','".$kick_time."','".$hp."','".($row[9].$row[10])."','group','middle')");
   
$battle_id mysql_insert_id();

   if(
$res)
   {
    
mysql_query("update users set battle_id='".$battle_id."' where ".$q);
    
mysql_query("insert into battle_logs(battle_id,cmt_id,time,type) values('".$battle_id."','4','".time()."','greating')");
    
    unset(
$file[$i]);
    
$find 1;

   }
  }
 }

 if(
$find)
 {
  
$fp fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_m/group.dat","w");
  
flock($fp,2);
  
fwrite($fp,implode("",$file));
  
flock($fp,3);
  
fclose($fp);
 }
  
 if(
$mybattle)
 {
  
Header("Location: /battle.php");
  exit();
 }
//-------------------------------------------



if($_POST["do"]=="send_group_request"
   
&& preg_match("/^(3|5|10|15)$/",$_POST["timeout"])
   && 
preg_match("/^(fisticuffs|arm)$/",$_POST["battle"])
   && 
preg_match("/^(10|20|30|60)$/",$_POST["begun"])

  )
{
 
sleep(2);

 if(!
check_group_partaker($_SESSION["login"]))
 {
  if(
$user->hp < ($user->maxhp/2))
   
$error_msg "Вы слишком слабы, восстановитесь...";
  elseif(
$user->level 19)
   
$error_msg "В Среднем Зале не проводятся бои вашего уровня!";
  elseif(
check_request($_SESSION["login"]))
   
$error_msg "Для начала заберите свою заявку в одиночных боях!";
  elseif(
check_clan_partaker($_SESSION["login"]))
   
$error_msg "Вы уже учавствуете в клановом поединке!";
  elseif(
$_POST["side1_count"] < || $_POST["side2_count"] < 1)
   
$error_msg "Минимальный состав команды не может быть меньше одного человек";
  elseif( (
$_POST["side1_count"]+$_POST["side2_count"]) < )
   
$error_msg "Не возможно создать груповой бой для менее чем 3-х человек, для этого есть одиночные поединки.";
  elseif(
$_POST["side1_count"] > 99 || $_POST["side2_count"] > 99)
   
$error_msg "Вы указали состав команды, превышающий допустимый лимит в 99 участников с каждой из сторон.";
  elseif(!
preg_match("/^(".$user->level."-".$user->level."|".Minus($user->level,2)."-".$user->level."|".$user->level."-".Plus($user->level,2)."|10-".Minus($user->level,1)."|".Plus($user->level,1)."-19|10-19)$/",$_POST["side1_level"]) ||
         !
preg_match("/^(".$user->level."-".$user->level."|".Minus($user->level,2)."-".$user->level."|".$user->level."-".Plus($user->level,2)."|10-".Minus($user->level,1)."|".Plus($user->level,1)."-19|10-19)$/",$_POST["side2_level"])
        )
   
$error_msg "Установлен не допустимый лимит для одной из сторон";
  else
  {
   
$fp fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_m/group.dat","a+");
   
flock($fp,2);
   
fwrite($fp,time()."|".Date("H:i")."|".(time()+$_POST["begun"]*60)."|".$_POST["battle"]."|".($_POST["timeout"]*60)."|".$_POST["side1_level"]."|".$_POST["side2_level"]."|".$_POST["side1_count"]."|".$_POST["side2_count"]."|".$user->id."#".$_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align.";||n");
   
flock($fp,3);
   
fclose($fp);
  }
 }
}


if(
$_POST["do"]=="join_side" && preg_match("/^[0-9]+_(side1|side2)$/",$_POST["side"]))
{
 
sleep(2);

 if(
check_group_partaker($_SESSION["login"]))
  
$error_msg "Вы уже записаны в другой поединок!";
 elseif(
$user->hp < ($user->maxhp/2))
  
$error_msg "Вы слишком слабы, восстановитесь...";
 elseif(
check_request($_SESSION["login"]))
  
$error_msg "Для начала заберите свою заявку в одиночных боях!";
 elseif(
check_clan_partaker($_SESSION["login"]))
  
$error_msg "Вы уже учавствуете в клановом поединке!";
 else
 {
  
$vars explode("_",$_POST["side"]);

  
$file file($DOCUMENT_ROOT."/database/coliseum/coliseum_m/group.dat");

  
$i 0;
  
$string "";
  
$add 0;

  while(!
$string && $i<=(count($file)-1))
  {
   
$row explode("|",$file[$i]);
   if(
$row[0]==$vars[0])
    
$string $i;
   
$i++;
  }  

  if(!
preg_match("/^[0-9]+$/",$string))
   
$error_msg "Поединок не обнаружен, возможно бой уже начался!";
  else
  {
   
$row explode("|",$file[$string]);

   if(
$vars[1]=="side1")
   {
    
$row_1 explode("-",$row[5]);
    
$row_2 explode(";",$row[9]);

    if(!(
$user->level >= $row_1[0] && $user->level <= $row_1[1]))
     
$error_msg "Вы не соответствуете возрастной категории!";
    elseif((
count($row_2)-1) > ($row[7]-1))
     
$error_msg "В этой группе нет свободных мест!";
    else 
    {
     
$row[9] .= $_SESSION["id"]."#".$_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align.";";
     
$file[$string] = implode("|",$row);
     
$add 1;
    }
   }
   else
   {
    
$row_1 explode("-",$row[6]);
    
$row_2 explode(";",$row[10]);

    if(!(
$user->level >= $row_1[0] && $user->level <= $row_1[1]))
     
$error_msg "Вы не соответствуете возрастной категории!";
    elseif((
count($row_2)-1) > ($row[7]-1))
     
$error_msg "В этой группе нет свободных мест!";
    else 
    {
     
$row[10] .= $_SESSION["id"]."#".$_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align.";";
     
$file[$string] = implode("|",$row);
     
$add 1;
    }
   }
  }

  if(
$add)
  {
   
$fp fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_m/group.dat","w");
   
flock($fp,2);
   
fwrite($fp,implode("",$file));
   
flock($fp,3);
   
fclose($fp);
  }
 }
}
?>
Онлайн: 1
Реклама