<?php
global $loc_i,$game;
if (!isset($loc_i[$loc][$login])) return;
$auser=$loc_i[$loc][$login];
$char=explode("|",$auser["char"]);
$skills=explode("|",$auser["skills"]);
$char[2]=10+$skills[0]*10;
if ($game["fid"]==$login && $game["floc"]==$loc) $char[2]+=10;
$char[4]=10+$skills[2]*10;
$twar=array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
$twar[6]=$skills[1]+$skills[12]+($skills[0]-1)*2;
$twar[7]=2*($skills[1]+$skills[11]+($skills[0]-1)*2);
$twar[9]=5*($skills[2]+$skills[15]-($skills[0]+1));
$twar[10]=10*($skills[2]+$skills[14]-$skills[0]);
$twar[11]=15*($skills[14]+$skills[2]-($skills[0]+1));
// считаем крутость exp
for($i=0;$i<count($skills);$i++) if ($i!=3) $twar[13]+=$skills[$i]; // кроме level
// что одето
$b=0;
$hits=0;
$art="";
if ($auser["equip"]) {
$equip=explode("|",$auser["equip"]);
foreach(array_keys($equip) as $i) if ($equip[$i]) {
if (strpos($equip[$i],"_")!==false) $tid=substr($equip[$i],0,strpos($equip[$i],"_")); else $tid=$equip[$i];
if (!$equip[$i] || strpos($auser["items"],$equip[$i].":")===false || !file_exists("items/".$tid) || !$tid) {unset($equip[$i]); $auser["equip"]=implode("|",$equip); continue;}
// загружаем предмет
$item=explode("|",implode("",file("items/".$tid)));
$str="0:0:0";
if (substr($equip[$i],0,4)=="i.a." && $item[3]) $str=$item[3];
if (substr($equip[$i],0,4)=="i.w." && $item[4]) $str=$item[4];
$str=explode(":",$str);
if ($skills[1]<$str[1]) $dex = $str[1]-$skills[1]; else $dex=0;
if ($skills[2]<$str[2]) $int = $str[2]-$skills[2]; else $int=0;
if ($skills[0]<$str[0]) $str = $str[0]-$skills[0]; else $str=0;// обязат. последним!
$hits+=$dex*10;
if (substr($equip[$i],0,4)=="i.a." && substr($equip[$i],0,6)!="i.a.s.") {$tarm=$item[2]-$str*2-$int*2; if ($tarm>0) $twar[5]+=$tarm;}
if (substr($equip[$i],0,6)=="i.a.s.") {$tarm=$item[2]-$str*2-$int*2; if ($tarm>0) $twar[8]=$tarm;}
if (substr($equip[$i],0,4)=="i.w.") { //weapon
$b=1;
$twar[3]=$item[5]-round($skills[1]/2);
if (substr($equip[$i],0,6)=="i.w.r.") $twar[4]=1;
$twar[12]=$item[6];
if ($twar[4]) { // стрельба
$twar[14]=$item[7]; // патроны
$twar[0]+=10*($skills[1]+$skills[10]-1);
if ($char[12]) $twar[0]-=10;
} else { // холодное оружие
$twar[14]=$item[7];
$twar[0]+=10*($skills[1]+$skills[9]);
}
$twar[1]+=$item[2]-$str*2-$int*2;
$twar[2]+=$item[3]-$str*2-$int*2;
if (substr($equip[$i],0,8)!="i.w.r.c.") {$twar[1]+=$skills[0];$twar[2]+=$skills[0];}
}
// артефакт
if ($tid!=$equip[$i] || strpos($equip[$i],"..")!==false) {
$xF = preg_match_all("/\.\.(\w+)/",$equip[$i],$regF);
for($j=0;$j<$xF;$j++) {
$ti=explode("|",implode(file("items/i.i.".$regF[1][$j])));
$ti=explode(",",$ti[2]);
for($k=0;$k<count($ti);$k++) {
$tir=explode(":",$ti[$k]);
if (strpos($art,"|".$regF[1][$j])===false) {
if($tir[0]>50) $char[$tir[0]-50]+=$tir[1]; else $twar[$tir[0]]+=$tir[1];
}
}
$art.="|".$regF[1][$j];
}
}
}
}
if (!$b) { // рукопашная
$twar[1]+=$skills[0]+$skills[8]-1;
$twar[2]+=$skills[0]+$skills[8]+1;
$twar[0]+=10*($skills[1]+$skills[8]+2);
if ($twar[0]>=100) $twar[0]=95;
if ($char[12]) $twar[0]-=20;
$twar[3] = 5-round($skills[1]/2);
$twar[12] = "кулаками";
}
// штраф
if (strpos($auser["equip"],"..do")!==false) $hits+=20;
$twar[0]-=$hits;
// проверки
if($twar[0]<=0) $twar[0]=5;
if($twar[0]>95) $twar[0]=95;
if($twar[1]<0) $twar[1]=0;
if($twar[2]<0) $twar[2]=0;
if($twar[3]<3) $twar[3]=3;
if($twar[5]<0) $twar[5]=0;
if($twar[6]<0) $twar[6]=0;
if($twar[7]<0) $twar[7]=0;
if($twar[9]<0) $twar[9]=0;
if($twar[10]<0) $twar[10]=0;
if ($twar[7] && strpos($auser["equip"],"i.a.s.")===false) $twar[7]=0;
if ($char[1]>$char[2]) $char[1]=$char[2];
if ($char[3]>$char[4]) $char[3]=$char[4];
// ок, сохраняем...
$auser["char"]=implode("|",$char);
if ($auser["war"]) {$killd=explode("|",$auser["war"]); $twar[15]=$killd[15]; $twar[16]=$killd[16]; }
$auser["war"]=implode("|",$twar);
$loc_i[$loc][$login]=$auser;