Файл: _gladiators2_/gladiators2/gladiators/gladiators/system/modules/mod_battle.php
Строк: 63
<?
if( $battle->winner && $myself->battle_id==$battle->id )
{
$result_battle = "";
if($battle->type=="bot")
{
$r = str_replace(";","",$battle->side2);
@mysql_query("delete from temp where id='".$r."'");
}
$result_battle .= "<center><span style='color:darkred;font-weight:bold'>Бой закончен!</span><br>";
preg_match_all("/^".$_SESSION["id"]."=([0-9]+)/",$battle->hp,$myhp);
if(!$myhp[0][0])
preg_match_all("/;".$_SESSION["id"]."=([0-9]+)/",$battle->hp,$myhp);
$myhp = explode("=",$myhp[0][0]);
$myhp = round($myhp[1]);
$all_level = 0;
if($battle->type=="bot")
$sr_level = $myself->level;
else
{
$row_opp = explode(";",$battle->$opp_side);
for($i=0;$i<=count($row_opp)-2;$i++)
{
if(!$i)
$q = " id='".$row_opp[$i]."'";
else
$q .= " or id='".$row_opp[$i]."'";
}
$result_us = @mysql_query("select level from users where ".$q);
$num_us = @mysql_num_rows($result_us);
for($i=1;$i<=$num_us;$i++)
{
$row_us = @mysql_fetch_array($result_us);
$all_level += $row_us[level];
}
$sr_level = round($all_level/$num_us);
}
// Количество выдаваемого опыта в зависимости от типа боя
if($sr_level < 10)
{
$battle_w = $battle->battle_w;
if( $battle->battle_w=="arm" ) {
$res_arm = mysql_query("select count(*) from bag where owner='".$_SESSION["id"]."' and dressed='y'");
$row_arm = mysql_fetch_array($res_arm);
if( !$row_arm )
$battle_w = "fisticuffs";
}
$res_exp = @mysql_query("select ".$battle_w." from exptable where level='".$sr_level."'");
$row_exp = @mysql_fetch_array($res_exp);
$exp = $row_exp[$battle_w];
if($sr_level < 5)
$gold = 1;
else
$gold = 2;
}
else
{
$battle_w = $battle->battle_w;
if( $battle->battle_w=="arm" ) {
$res_arm = mysql_query("select count(*) from bag where owner='".$_SESSION["id"]."' and dressed='y'");
$row_arm = mysql_fetch_array($res_arm);
if( !$row_arm )
$battle_w = "fisticuffs";
}
$res_exp = @mysql_query("select ".$battle_w." from exptable where level='".$sr_level."'");
$row_exp = @mysql_fetch_array($res_exp);
if($sr_level < 20)
$k = 1;
elseif($sr_level < 30)
$k = 2;
elseif($sr_level < 40)
$k = 3;
else
$k = 4;
$gold = ($myhp * $k) / 100;
$exp = round($row_exp[$battle_w] * $myhp);
}
if($battle->type=="bot" && $sr_level < 10)
{
$exp = round($exp/2);
$gold = 0;
}
elseif($battle->type=="bot" && $sr_level < 20)
{
$exp = round($exp/4);
$gold = 0;
}
if($battle->winner==$myside)
$sec_query = ",victory=victory+1 ";
elseif($battle->winner=="noone")
{
$gold = 0;
$exp = round($exp / 2);
$sec_query = ",noone=noone+1 ";
}
else
{
$exp = 0;
$gold = 0;
$sec_query = ",lose=lose+1 ";
}
if($myself->bonus_exp)
$exp += round(($exp*$myself->bonus_exp)/100);
if( $exp )
{
$plus_ups=0;
$result_exptable = @mysql_query("select * from exptable where id > $myself->num_up and exp<=$myself->exp+".$exp);
$num_exptable = @mysql_num_rows($result_exptable);
for($i=1;$i<=$num_exptable;$i++)
{
$row_exptable = @mysql_fetch_array($result_exptable);
$new_level = $row_exptable["level"];
$plus_ups += $row_exptable["ups"];
$num_up = $row_exptable["id"];
}
if(!$new_level)
$new_level = $myself->level;
if(!$num_up)
$num_up = $myself->num_up;
$sec_query .= ",level='".$new_level."'";
$sec_query .= ",money=money+".$gold."";
$sec_query .= ",ups=ups+".$plus_ups."";
$sec_query .= ",exp=exp+".$exp."";
$sec_query .= ",num_up='".$num_up."'";
if( $myself->level!=$new_level && $new_level%2=="" )
$sec_query .= ",spec_free=spec_free+1";
}
@mysql_query("update users set battle_id='0'".$sec_query." where id='".$myself->id."'");
$result_battle .= "<br>Всего вами нанесено: <b>".$myhp."</b> HP. <br>";
if($myself->bonus_exp)
$result_battle .= "Бонус прокачки: +".$myself->bonus_exp."% опыта.<br>";
$result_battle .= "Получено опыта: ".$exp."<br>";
$result_battle .= "Получено золота: ".ToFloat($gold,2)."<br><br>";
$result_battle .= "<input type=image src='".$config["img_server"]."/b_back.gif' value='вернуться' onclick='location.href="battle.php"'></center>";
}
?>