Вход Регистрация
Файл: _gladiators2_/gladiators2/gladiators/gladiators/battle.php
Строк: 570
<?
@session_start();

if( !isset(
$_SESSION["id"]) ) {

    echo
"<script language=javascript>top.window.location='../index.php';</script>";
    exit();
}
@include(
"connect.php");
@include(
"system/config/values.php");
@include(
"system/config/servers.php");
@include(
"system/class/main_class.php");

$db = new DBconn;

@include(
"system/class/class_BattleUser.php");
@include(
"system/class/class_battle.php");

$myself = new user;
$opponent = new user;
$kick_opponent = new user;
$battle = new battle;

@include(
"includes/std.h.php");
@include(
"system/includes/gzip.php");

if( 
$myself->get_info($_SESSION["id"],"normal")==false )
{
    echo
"Ошибка: невозможно получить данные о персонаже, возможно сервер в данный момент перегружен, попробуйте обновить страницу через несколько минут. ";
    exit();
}

if( !
$myself->battle_id ) {

    @
Header("Location: /home.php");
    exit();
}

if( 
$battle->get_info($myself->battle_id)==false )
{
    echo
"<html>
        <head>
            <link rel=stylesheet href=/css/index.css>
            <meta http-equiv="
Content-type" content="text/csscharset=window-1251;">
        </head>
        <body bgcolor=#e5e1be>

            <br>
            <table border=0 width=100% height=100%>
                <tr>
                    <td align=center valign=middle><b>Сервер сильно перегружен!</b><br> Это временное явление, попробуйте обновить страницу через пару минут!</b><br><input type=button value='Обновить' onclick='window.location=window.location.href' class=button></td>
                </tr>
            </table>
        </body>
    </html>"
;

    exit();
}

$myself->param($myself->id); // Узнаем параметры оружия

if( preg_match("/(^|;)(".$_SESSION["id"].";)/",$battle->side1) )
{
    
$myside="side1";
    
$opp_side="side2";
}
else
{
    
$myside="side2";
    
$opp_side="side1";
}

if( !
$battle->winner )
{
    
$a_mass explode(";",$battle->kick_time);

    for(
$i=0;$i<=count($a_mass)-2;$i++)    {
        
        
$b_mass explode("=",$a_mass[$i]);

        if((
time()-$b_mass[1] > $battle->timeout) && ($battle->type!="bot" || $i==0)) {
            
            
$request = @mysql_query("select login,level,hp from users where id='".$b_mass[0]."'");
            
$get = @mysql_fetch_array($request);

            if(
$get["hp"] > 0) {
                
                @
mysql_query("update users set hp='0',last_update_uron='".time()."' where id=".$b_mass[0]);

                if(
$get["login"]==$_SESSION["login"])
                
$myself->get_info($_SESSION["id"],"normal");

                @
mysql_query("insert into battle_logs values('".$battle->id."','2','".time()."','greating','".$b_mass[0]."','','0','0','1','0','0')");

                
$battle->winner();
            }
        }
    }
}

if(
$act=="kick" && !$battle->winner)
{
    
$_POST["opponent_id"] = intval($_POST["opponent_id"]);

    if(
eregi("^(".$_POST["opponent_id"].";)",$battle->$opp_side) || eregi("(;".$_POST["opponent_id"].";)",$battle->$opp_side))
    {
        
$opponent->get_info($_POST["opponent_id"],$battle->type);
        
$opponent->param($_POST["opponent_id"]);

        if(
eregi("^[1-5]{1}$",$_POST["f"]) && eregi("^[1-5]{1}$",$_POST["b"]) && !$battle->winner && $opponent->hp)
        {
            
$battle->kick($_POST["f"],$_POST["b"],$opponent->id,$myself->id,$opp_side,$myself,$opponent);

            
$myself->get_info($_SESSION["id"],"normal");
        }
    }

    if( 
$battle->type == "bot" )
    {
        
$opp_id str_replace(";","",$battle->side2);

        
$opponent->get_info($opp_id,$battle->type);
        
$opponent->param($myself->id);

        if(
mt_rand(1,2)==2)
            
$battle->kick(mt_rand(1,5),mt_rand(1,5),$myself->id,$opponent->id,$myside,$opponent,$myself);
    }

    
$battle->write();
    
$battle->winner(); // проверка на окончание боя
    
$opponent->Clear();
    
$myself->get_info($_SESSION["id"],"normal"); // Обновляет параметры мои
}

@include(
"system/modules/mod_battle.php");

$action_mass explode(";",$battle->action);
$mass_opponent_unavaible = array();

for(
$i=0;$i<=count($action_mass)-2;$i++)
{
    
$a_mass explode("(",$action_mass[$i]);
    
$id_mass explode(":",$a_mass[0]);
    
$b_mass explode(")",$a_mass[1]);
    
$kick_mass explode(":",$b_mass[0]);

    if(
$id_mass[0]==$myself->id && $kick_mass[0])
    
$mass_opponent_unavaible[] = $id_mass[1];
    elseif(
$id_mass[1]==$myself->id && $kick_mass[1])
    
$mass_opponent_unavaible[] = $id_mass[0];
}

//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------

// Список игроков

$list_side1 = array();
$list_side2 = array();

$players_mass $battle->side1.$battle->side2;
$players_mass explode(";",$players_mass);

$pms1 explode(";",$battle->side1);
$pms2 explode(";",$battle->side2);

for(
$i=0;$i<=count($pms1)-2;$i++)
{
    if(!
$i)
    
$query " id='".$pms1[$i]."'";
    else
    
$query .= " or id='".$pms1[$i]."'";
}

$res_users = @mysql_query("select id,login,hp,maxhp from users where ".$query);
$num_users = @mysql_num_rows($res_users);

for(
$i=1;$i<=$num_users;$i++)
{
    
$row_users = @mysql_fetch_array($res_users);

    if(
$row_users["hp"]>0)
    
$list_side1[] = "<a style='cursor:hand;font-weight:bold;color:#A0522D'>".$row_users["login"]."</a>(".$row_users["hp"]."/".$row_users["maxhp"].")";
    else
    
$mass_opponent_unavaible[] = $row_users["id"];
}

for(
$i=0;$i<=count($pms2)-2;$i++)
{
    if(!
$i)
    
$query " id='".$pms2[$i]."'";
    else
    
$query .= " or id='".$pms2[$i]."'";
}

if(
$battle->type=="bot")
$from="temp";
else
$from="users";

$res_users = @mysql_query("select id,login,hp,maxhp from ".$from." where ".$query);
$num_users = @mysql_num_rows($res_users);

for(
$i=1;$i<=$num_users;$i++)
{
    
$row_users = @mysql_fetch_array($res_users);

    if(
$row_users["hp"]>0)
    
$list_side2[]="<a style='cursor:hand;font-weight:bold;color:#708090'>".$row_users[login]."</a>(".$row_users[hp]."/".$row_users[maxhp].")";
    elseif(
$battle->type=="bot" && $battle->winner=="side2")
    
$list_side2[]="<a style='cursor:hand;font-weight:bold;color:#708090'>".$_SESSION[login]."(клон)</a>";
    else
    
$mass_opponent_unavaible[] = $row_users["id"];
}

function 
list_players($list_side1,$list_side2,$battle)
{
    echo
"<u>Первая команда</u>: ";

    if(
$battle->winner!="side2")
    {
        for(
$i=0;$i<=count($list_side1)-1;$i++)
        {
            if(
$i)echo", ";
            echo 
$list_side1[$i];
        }
    }

    if(
count($list_side1)==|| $battle->winner=="side2")echo"<i>вся команда убита</i> ";

    echo
"<br><u>Вторая команда</u>: ";

    if( 
$battle->winner=="side2" && $battle->type=="bot" )
    echo
"<a style='cursor:hand;font-weight:bold;color:#708090'>".$_SESSION["login"]."(клон)</a>";
    else if((
count($list_side2)==|| $battle->winner=="side1"))
    echo
"<i>вся команда убита</i> ";

    if(
$battle->winner != "side1")
    {
        for(
$i=0;$i<=count($list_side2)-1;$i++)
        {
            if(
$i)echo", ";
            echo 
$list_side2[$i];
        }
    }
}



$mass_opponent = array();
$side_mass explode(";",$battle->$opp_side);

if(
count($mass_opponent_unavaible)==0)
{
    for(
$i=0;$i<=count($side_mass)-2;$i++)
    {
        
$mass_opponent[] = $side_mass[$i];
    }
}
elseif(
count($mass_opponent_unavaible)>0)
{
    for(
$i=0;$i<=count($side_mass)-2;$i++)
    {
        
$ins 0;

        for(
$j=0;$j<=count($mass_opponent_unavaible)-1;$j++)
        {
            if(
$side_mass[$i]==$mass_opponent_unavaible[$j])
            
$ins=1;
        }

        if(!
$ins)
        
$mass_opponent[] = $side_mass[$i];
    }
}

// **********
// Одежда
//

if(count($mass_opponent) && $myself->hp && !$battle->winner)
{
    
$opponent_id rand(0,(count($mass_opponent)-1));

    if(
$opponent->get_info($mass_opponent[$opponent_id],$battle->type)==false)
    {
        echo
"Ошибка: невозможно получить данные о персонаже(2), возможно сервер в данный момент перегружен, попробуйте обновить страницу через несколько минут. ";
        exit();
    }
    else
    
$opponent->param($myself->id);

}

echo
"<html>
<head>
 <META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=windows-1251'>
 <link rel=stylesheet href=/css/index.css>
 <script language=JavaScript>
     
     function UnSetKick() {
     
         document.all('kick_on').value = '0';
     }
     
     function SetKick() {
     
         if( document.all('kick_on').value=='0' ) {
          
             document.all('kick_on').value = '1';
             setTimeout('UnSetKick();',30*1000);
             return true;
         }
         else {    
             return false;
         }     
     }
 </script>
</head>
<body bgcolor=#e5e1be>

<input type=hidden name=kick_on value='0'>
<script language=javascript>

var inf='';

function lifeline(now,max)
{
 var grn_life_pr = (now*100)/max;
 var grn_life_width = (grn_life_pr*160)/100;
 var red_life_width = 160 - grn_life_width;

 document.write('<table border=0 cellspacing=0 cellpadding=0><tr><td><img src="
.$config["img_server"]."/grn_life.gif width='+grn_life_width+' height=10></td><td><img src=".$config["img_server"]."/red_life.gif width='+red_life_width+' height=10></td><td align=right>'+now+'/'+max+'</td></tr></table>');

}"
;

?>

function altt(text)
{
 var el = document.getElementById("altt");

 document.all("altt").innerHTML = '<table border=0 cellspacing=1 cellpadding=3 bgcolor=#000000><tr><td bgcolor=#ffffff style="color:#000000;font-size:70%">'+text+'</td></tr>';
 document.all("altt").style.visibility = "visible";

 var x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft + 3;
 var y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop+5;

 el.style.left = x + "px";
 el.style.top  = y + "px";

 if (window.event.clientX + el.offsetWidth + 3 > document.body.clientWidth)
 {
  x -= (window.event.clientX + el.offsetWidth + 3 - document.body.clientWidth);
  el.style.left = x + "px";
 }

 document.all("altt").focus();
}

<?

echo"
function altt_close()
{
 document.all("
altt").style.visibility = "hidden";
}
</script>
<center><br>

<span id=altt style="
position:absolute;z-index100;"></span>


<table border=0 width=95% cellspacing=0 cellpadding=0>
<tr>
<td width=220 valign=top>

<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td>"
.ch_info($myself->login,$myself->level,$myself->align,$myself->klan,$config["img_server"])."</td></tr><tr><td>

<script language=javascript>lifeline("".
$myself->hp."","".$myself->maxhp."");</script>

</td></tr></table>


<table border='1' width=220 height=200 bordercolor=#dfd78f cellpadding=1 bordercolordark='#000000' bordercolorlight='#000000'>
<tr>
<td height='200' width=220 valign='middle' align=left bgcolor=#000000>

<img align=right src='"
.$config["img_server"]."/icons/".$myself->icon.".gif' border='0' alt='".$myself->login."' onmousemove="altt('<b>Параметры:</b><br>Удар: ".$myself->u." <br>Гибкость: ".$myself->g."<br>Логика: ".$myself->l." <br>Здоровье: ".$myself->z."');" onmouseout="altt_close();">

<span style='color:#c0c0c0;position:relative;z-index: 1; left:2px;width:220px; height:200px' class=comm>
"
;

$items = array(array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array());

$db = new DBconn;
$db->Conn("greece",$server_conf);

if(
$battle->type=="bot")
$db->query("select id from bag where owner='".$myself->id."' and dressed='y' order by id desc");
else
$db->query("select id from bag where owner='".$myself->id."' and dressed='y' order by id desc");

$db->num_rows();

$count_items $db->num;
$items SetItems($db,$items);

for(
$i=1;$i<=10;$i++)
{
    
$w "w".$i;

    
$return ShowItem($w,$count_items,$items,"");
    if(!
strstr($return,"ничего не одето"))
    {
        
$return str_replace("href","style='font-size:95%;color:#d0cea2' href",$return);
        echo 
"<small>".$return."</small><br>";
        if(!
$exists)
        
$exists 1;
    }
}

if(!
$exists)
echo
"<small><b>ничего не одето</b></small></span>";




$exists 0;
echo
"</span>";
echo
"


</span>

</td>
</tr>
</table>

</td>
<td valign=top width=100%><br>"
;


if(
$battle->winner && $myself->battle_id==$battle->id)
echo 
$result_battle;
elseif(
$myself->hp<=0)
echo
"<center><span style='color:darkred;font-weight:bold'>Вы убиты. Ждите окончания поединка!</span><br><input type=image src='".$config["img_server"]."/b_refresh.gif' value='обновить' onclick='if(SetKick()==true)location.href="battle.php"'></center>";
elseif(!
$opponent->id)
{
    
$mass_kick_time explode(";",$battle->kick_time);

    for(
$i=0;$i<=count($mass_kick_time)-1;$i++)
    {
        
$a_mass explode("=",$mass_kick_time[$i]);
        if(
$a_mass[0]==$myself->id)
        {
            
$new_time time();
            
$mass_kick_time[$i]=$myself->id."=".$new_time;
        }
    }

    
$battle->kick_time=implode(";",$mass_kick_time);

    echo
"<center><span style='font-weight:bold'>Ожидаем хода соперника</span><br><input type=image src='".$config["img_server"]."/b_refresh.gif' value='обновить' onclick='if(SetKick()==true)location.href="battle.php?act=kick"'></center>n";
}
else
{
    echo
"<form action=battle.php method=post onsubmit='return SetKick();'>
<input type=hidden name=act value=kick>
<input type=hidden name=opponent_id value="
.$opponent->id.">
<center>
<table border=0 width=230 cellspacing=1 cellpadding=0 height=20>
<tr><td width=100 bgcolor=#cbcbb0 style='color:#000000;font-weight:bold' align=center>Удар</td>
<td width=130 bgcolor=#cbcbb0 style='color:#000000;font-weight:bold' align=center>Блок</td>
</tr><tr><td>
<input type=radio name=f value=1>&nbspв голову<br>
<input type=radio name=f value=2>&nbspв грудь<br>
<input type=radio name=f value=3>&nbspв живот<br>
<input type=radio name=f value=4>&nbspв пояс<br>
<input type=radio name=f value=5>&nbspв ноги<br>
</td><td><input type=radio name=b value=1>&nbspголова и грудь<br>
<input type=radio name=b value=2>&nbspгрудь и живот<br>
<input type=radio name=b value=3>&nbspживот и пояс<br>
<input type=radio name=b value=4>&nbspпояса и ног<br>
<input type=radio name=b value=5>&nbspголовы и ног<br>
</td></tr><tr><td colspan=2 align=center><input type=image src='/img/b_fight.gif' value='нанести удар' style='font-weight:bold' class=button></td></tr>
</table></form>     
</center>"
;

}

if(!
$battle->winner)
{
    
$myhp = array();
    
preg_match_all("/(".$_SESSION["id"]."=)[0-9]+/",$battle->hp,$myhp);
    
$hp explode("=",$myhp[0][0]);

    echo
"<br><center>Вами нанесено: <b>".$hp[1]."</b> HP</center>";
}

echo
"</td><td valign=top align=right>
<table border=0 cellspacing=0 cellpadding=0 width=220>
<tr><td>"
;

if(!
$opponent->id)
{
    
$images = array("1.gif","2.jpg","3.jpg");
    
randomize;
    
$rand rand(0,2);
    echo
"<img src=".$config["img_server"]."/battle/".$images[$rand]." border=0 align=right>";
}
else
{

    echo
"<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td>"
.ch_info($opponent->login,$opponent->level,$opponent->align,$opponent->klan,$config["img_server"])."</td></tr><tr><td>

<script language=javascript>lifeline("".
$opponent->hp."","".$opponent->maxhp."");</script>

</td></tr></table>


<table border='1' width=220 height=200 bordercolor=#dfd78f cellpadding=1 bordercolordark='#000000' bordercolorlight='#000000'>
<tr>
<td height='200' width=220 valign='middle' bgcolor=#000000>"
;

    
$items = array(array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array(),array());

    
$db = new DBconn;
    
$db->Conn("greece",$server_conf);

    if(
$battle->type=="bot")
    
$db->query("select id from bag where owner='".$myself->id."' and dressed='y' order by id desc");
    else
    
$db->query("select id from bag where owner='".$opponent->id."' and dressed='y' order by id desc");

    
$db->num_rows();

    
$count_items $db->num;
    
$items SetItems($db,$items);

    
$exists 0;

    echo
"


<img align=right src='"
.$config["img_server"]."/icons/";

    if(
$battle->type=="bot")
    echo 
$myself->icon;
    else
    echo 
$opponent->icon;

    echo
".gif' border='0' alt='".$opponent->login."' onmousemove="altt('<b>Параметры:</b><br>Удар: ".$opponent->u." <br>Гибкость: ".$opponent->g."<br>Логика: ".$opponent->l." <br>Здоровье: ".$opponent->z."');" onmouseout="altt_close();">

<span style='color:#c0c0c0;position:relative;z-index: 1; left:2px;width:220px; height:200px' class=comm>
"
;

    for(
$i=1;$i<=10;$i++)
    {
        
$w "w".$i;

        
$return ShowItem($w,$count_items,$items,"");
        if(!
strstr($return,"ничего не одето"))
        {
            
$return str_replace("href","style='font-size:95%;color:#d0cea2' href",$return);
            echo 
"<small>".$return."</small><br>";
            if(!
$exists)
            
$exists 1;
        }
    }

    if(!
$exists)
    echo
"<small><b>ничего не одето</b></small>";
    echo
"</span>



</td>
</tr>
</table>"
;

}
echo
"</td></tr></table>

</td></tr>
<tr><td colspan=3>

<br>"
;

echo 
list_players($list_side1,$list_side2,$battle);

echo
"<br><br>
<table border=0 cellspacing=0 cellpadding=1>"
;

$db->query("select battle_logs.* from battle_logs where battle_id='".$battle->id."' ORDER BY time desc LIMIT 20");
$db->num_rows();

$log["attack"] = file("battle/comment/attack.dat");
$log["block"] = file("battle/comment/block.dat");
$log["evade"] = file("battle/comment/evade.dat");
$log["dead"] = file("battle/comment/dead.dat");
$log["greating"] = file("battle/comment/greating.dat");

$plc_kick = array("голову","грудь","живот","пояс","ноги");
$time_before "";


for(
$i=1;$i<=$db->num;$i++) {

    
$db->fetch_array();




    
$frase $log[$db->row["type"]][$db->row["cmt_id"]];

    
preg_match_all("/(^|;)".$db->row["ch1"]."#[-a-zA-Zа-яА-Я0-9()_s]+/",$battle->data,$ch1_data);
    
preg_match_all("/(^|;)".$db->row["ch2"]."#[-a-zA-Zа-яА-Я0-9()_s]+/",$battle->data,$ch2_data);

    
$ch1_data explode("#",$ch1_data[0][0]);
    
$ch2_data explode("#",$ch2_data[0][0]);

    if( 
preg_match("/(^|;)".$db->row["ch1"].";/",$battle->side1) ) {

        
$ch1_color "#A0522D";
        
$ch2_color "#708090";
    }
    else {

        
$ch1_color "#708090";
        
$ch2_color "#A0522D";
    }

    
$frase str_replace("{p1}","<span style='color:".$ch1_color.";font-weight:bold;cursor:pointer;cursor:hand;'>".$ch1_data[1]."</span>",$frase);
    
$frase str_replace("{p2}","<span style='color:".$ch2_color.";font-weight:bold;cursor:pointer;cursor:hand'>".$ch2_data[1]."</span>",$frase);
    
$frase str_replace("{pl}",$plc_kick[$db->row["kick_in"]-1],$frase);

    if( 
$db->row["kick_type"]=="0" && $db->row["type"]=="attack" )
    
$frase .= "<b>-".$db->row["kick_power"]."</b>";
    else if( 
$db->row["type"]=="attack" )
    
$frase .= "<span style='color:darkred;font-weight:bold'>-".$db->row["kick_power"]."</span>";

    if( 
$db->row["type"]=="attack" )
    
$frase .= " (".$db->row["hp"]."/".$db->row["maxhp"].")";


    if( 
$db->row["time"]!=$time_before && $i 1)
    echo
"<tr><td height=10><hr size=1></td></tr>";

    echo
"<tr><td><span style='font-weight:bold;";

    if( (
$db->row["ch1"]==$_SESSION["id"] || $db->row["ch2"]==$_SESSION["id"]) && $battle->type!="normal" && $battle->type!="bot" )
    echo
"background-color:darkred;color:#ffffff;";
    else
    echo
"color:62665c;text-decoration:underline;font-weight:bold;";
    echo
"'>".Date("H:i",$db->row["time"])."</span> ".$frase;

    echo
"</td></tr>";


    
$time_before $db->row["time"];

}

if(
$db->num==20)
{
    echo
"<tr><td height=30 valign=bottom><i>Комментарий был обрезан для ускорения загрузки страницы, полностью комментарий вы можете увидеть <a href='/inform/battle_".$battle->id.".html' target=_blank><b>здесь »</b></a></i></td></tr>";
}
echo
"</td></tr></table>

<br><br>     
</body></html>"
;

$battle->write();
?>
Онлайн: 1
Реклама