Файл: _gladiators2_/gladiators2/gladiators/gladiators/system/modules/mod_coliseum_s.php
Строк: 155
<?
function clear_request()
{
global $DOCUMENT_ROOT;
$find = 1;
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
$find = 0;
for($i=0;$i<=count($file)-1;$i++)
{
$row = explode("|",$file[$i]);
if( time()-$row[0] >= 900 )
{ $find = 1; unset($file[$i]); }
}
if($find)
{
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","w");
@flock($fp,2);
@fwrite($fp,implode("",$file));
@flock($fp,3);
@fclose($fp);
}
}
function check_request($login)
{
global $DOCUMENT_ROOT;
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
$find = 0;
for($i=0;$i<=count($file)-1;$i++)
{
$row = explode("|",$file[$i]);
if(preg_match("/^(".$login."#)/",$row[1]))
$find = 1;
}
return $find;
}
function check_partaker($login)
{
global $DOCUMENT_ROOT;
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
$find = 0;
for($i=0;$i<=count($file)-1;$i++)
{
$row = explode("|",$file[$i]);
if(preg_match("/^(".$login."#)/",$row[2]))
$find = 1;
}
return $find;
}
if($_POST["do"]=="send_request" && preg_match("/^(3|5|10|15)$/",$_POST["timeout"]) && preg_match("/^(fisticuffs|arm)$/",$_POST["battle"]))
{
if(!check_request($_SESSION["login"]) && !check_partaker($_SESSION["login"]))
{
if($user->hp < ($user->maxhp/2))
$error_msg = "Вы слишком слабы, восстановитесь...";
elseif($user->level < 5 && $_POST["battle"]=="arm")
$error_msg = "Бои с оружием проводятся только с 5-го уровня!";
elseif($user->level > 9)
$error_msg = "В Малом Зале не проводятся бои вашего уровня!";
else
{
sleep(2);
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","a+");
@flock($fp,2);
@fwrite($fp,time()."|".$_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align."||".($_POST["timeout"]*60)."|".$_POST["battle"]."|n");
@flock($fp,3);
@fclose($fp);
}
}
}
if($_POST["do"]=="take_away")
{
$find = 0;
if(check_request($_SESSION["login"]))
{
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
for($i=0;$i<=(count($file)-1);$i++)
{
$row = explode("|",$file[$i]);
if(preg_match("/^(".$_SESSION["login"]."#)/",$row[1]) && $row[2]=="")
{
unset($file[$i]);
$find = 1;
}
}
if($find)
{
sleep(2);
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","w");
@flock($fp,2);
@fwrite($fp,implode("",$file));
@flock($fp,3);
@fclose($fp);
}
}
}
if($_POST["do"]=="accept" && $_POST["ch"])
{
if(check_request($_POST["ch"]))
{
if($user->hp < ($user->maxhp/2))
$error_msg = "Вы слишком слабы, восстановитесь...";
elseif($user->level > 9)
$error_msg = "В Малом Зале не проводятся бои вашего уровня!";
else
{
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
for($i=0;$i<=(count($file)-1);$i++)
{
$row = explode("|",$file[$i]);
if(preg_match("/^(".$_POST["ch"]."#)/",$row[1]) && $row[2]=="")
{
$row[2] = $_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align;
$file[$i] = implode("|",$row);
$find = 1;
}
}
if(!$find)
$error_msg = "Возможно заявку персонажа уже приняли до вас...";
if($find)
{
sleep(2);
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","w");
@flock($fp,2);
@fwrite($fp,implode("",$file));
@flock($fp,3);
@fclose($fp);
}
}
}
}
if($_POST["do"]=="disagree")
{
if(check_partaker($_SESSION["login"]))
{
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
for($i=0;$i<=(count($file)-1);$i++)
{
$row = explode("|",$file[$i]);
if(preg_match("/^(".$_SESSION["login"]."#)/",$row[2]))
{
$row[2] = "";
$file[$i] = implode("|",$row);
$find = 1;
}
}
if($find)
{
sleep(2);
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","w");
@flock($fp,2);
@fwrite($fp,implode("",$file));
@flock($fp,3);
@fclose($fp);
}
}
}
if($_POST["do"]=="cancel" && $_POST["partaker"])
{
if(check_request($_SESSION["login"]))
{
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
for($i=0;$i<=(count($file)-1);$i++)
{
$row = explode("|",$file[$i]);
if(preg_match("/^(".$_SESSION["login"]."#)/",$row[1]) && preg_match("/^(".$_POST["partaker"]."#)/",$row[2]))
{
$row[2] = "";
$file[$i] = implode("|",$row);
$find = 1;
}
}
if($find)
{
sleep(2);
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","w");
@flock($fp,2);
@fwrite($fp,implode("",$file));
@flock($fp,3);
@fclose($fp);
}
}
}
if($_POST["do"]=="battle")
{
if(check_request($_SESSION["login"]))
{
sleep(5);
$file = @file($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat");
$i = 0;
$find = 0;
while($i<=(count($file)-1) && !$find) {
$row = explode("|",$file[$i]);
if(preg_match("/^(".$_SESSION["login"]."#)/",$row[1]) && preg_match("/^(".$_POST["partaker"]."#)/",$row[2])) {
$my = explode("#",$row[1]);
$opponent = explode("#",$row[2]);
$partaker = new UserDate;
$partaker->get_info("id;level;klan;align;",$_POST["partaker"]);
if($row[4]=="fisticuffs") {
dress_out_all($db,$partaker->id);
dress_out_all($db,$_SESSION["id"]);
}
$data = $_SESSION["id"]."#".$_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align.";".$partaker->id."#".$_POST["partaker"]."#".$partaker->level."#".$partaker->klan."#".$partaker->align.";";
@mysql_query("insert into battle(start,side1,side2,timeout,kick_time,hp,data,battle,hall) values('".time()."', '".$_SESSION["id"].";', '".$partaker->id.";', '".$row[3]."','".$_SESSION["id"]."=".time().";".$partaker->id."=".time().";','".$_SESSION["id"]."=0;".$partaker->id."=0;','".$data."','".$row[4]."','small')");
$battle_id = @mysql_insert_id();
@mysql_query("update users set battle_id='".$battle_id."' where id=".$_SESSION["id"]." or id='".$partaker->id."'");
@mysql_query("insert into battle_logs(battle_id,cmt_id,time,type,ch1,ch2) values('".$battle_id."','1','".time()."','greating','".$_SESSION["id"]."','".$partaker->id."')");
$user->battle_id = $battle_id;
unset($file[$i]);
$find = 1;
}
$i++;
}
if($find)
{
$fp = @fopen($DOCUMENT_ROOT."/database/coliseum/coliseum_s/single.dat","w");
@flock($fp,2);
@fwrite($fp,implode("",$file));
@flock($fp,3);
@fclose($fp);
@Header("Location: /battle.php");
exit();
}
}
}
if($_POST["do"]=="battle_clone")
{
if($user->hp < ($user->maxhp * 50) / 100)
$error_msg = "вы слишком слабы, чтобы сражаться";
elseif($user->level > 9)
$error_msg = "В Малом Зале не проводятся бои вашего уровня!";
elseif(check_request($_SESSION["login"]))
$error_msg = "Для начала заберите свою заявку в одиночных боях!";
elseif(check_partaker($_SESSION["login"]))
$error_msg = "Вы уже приняли заявку на участие в одиночном бою!";
elseif(!$user->battle_id)
{
dress_out_all($db,$_SESSION["id"]);
$res = @mysql_query("select sum(ups) from exptable where id <= ".$user->num_up);
$r = @mysql_fetch_array($res);
$ten_perc = $r[0] * 10 / 100;
$stat = round($r[0] / 4);
$u = round(rand($stat - $ten_perc,$stat + $ten_perc));
$stat = round(($r[0] - $u) / 3);
$ten_perc = ($r[0] - $u) * 10 / 100;
$g = round(rand($stat - $ten_perc,$stat + $ten_perc));
$stat = round(($r[0] - $u - $g) / 2);
$ten_perc = ($r[0] - $u - $g) * 10 / 100;
$l = round(rand($stat - $ten_perc,$stat + $ten_perc));
$z = $r[0] - $u - $g - $l;
$u += 5;
$g += 5;
$l += 5;
$z += 5;
$start = Date("Y-m-d H:i:s");
$opp_login = $_SESSION["login"]."(клон)";
sleep(3);
@mysql_query("insert into temp(login,level,u,g,l,z,icon,klan,hp,maxhp,align) values('".$opp_login."','$user->level','".$u."','".$g."','".$l."','".$z."','$user->icon','$user->klan','".($z*5)."','".($z*5)."','".$user->align."')");
$opp_id = @mysql_insert_id();
$data = $_SESSION["id"]."#".$_SESSION["login"]."#".$user->level."#".$user->klan."#".$user->align.";".$opp_id."#".$_SESSION["login"]."(клон)#".$user->level."#".$user->klan."#".$user->align.";";
$res = @mysql_query("insert into battle(start,timeout,side1,side2,kick_time,hp,data,type,hall) values('".time()."','600','".$_SESSION["id"].";','".$opp_id.";','".$_SESSION[id]."=".time().";".$opp_id."=".time().";','".$_SESSION[id]."=0;".$opp_id."=0;','".$data."','bot','small')");
$battle_id = @mysql_insert_id();
@mysql_query("update users set battle_id='".$battle_id."' where id='".$_SESSION["id"]."'");
if($res)
{
@mysql_query("insert into battle_logs(battle_id,cmt_id,time,type,ch1) values('".$battle_id."','0','".time()."','greating','".$_SESSION["id"]."')");
@Header("Location: /battle.php");
exit();
}
}
}
?>