Файл: _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"] < 1 || $_POST["side2_count"] < 1)
$error_msg = "Минимальный состав команды не может быть меньше одного человек";
elseif( ($_POST["side1_count"]+$_POST["side2_count"]) < 3 )
$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);
}
}
}
?>