<?php
global $l_i,$game;
if (!isset($l_i[$loc][$login])) return;
$auser=$l_i[$loc][$login];
$char=explode('|',$auser['char']);
$skills=explode('|',$auser['skills']);
$char[2]=20+$skills[0]*10;
if ($game['fid']==$login && $game['floc']==$loc) $char[2]+=10;
$char[4]=20+$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]);
$twar[10]=10*($skills[2]+$skills[14]-$skills[0]);
$twar[11]=15*($skills[14]+$skills[2]-$skills[0]);
// считаем крутость 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
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(strpos($auser['items'],$equip[$i].'-')===false) $za=explode('-',$equip[$i]);
if ($za) { if($za[1]>6) { $za[1]=6; } $twar[2]+=$za[1]; $twar[1]+=$za[1];}
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'],'i.a.h.ms')!==false && strpos($auser['equip'],'i.a.b.sborn')!==false && strpos($auser['equip'],'i.a.p.ms')!==false && strpos($auser['equip'],'i.a.l.ms')!==false && strpos($auser['equip'],'i.w.s.master')!==false) {$char[2]+=5; $char[4]+=5; $twar[0]+=5; $twar[5]+=5; $twar[1]+=4; $twar[2]+=3;}
if (strpos($auser['equip'],'i.a.l.ogr')!==false && strpos($auser['equip'],'i.a.p.ogr')!==false && strpos($auser['equip'],'i.a.b.troll')!==false && (strpos($auser['equip'],'i.a.h.whitewolf')!==false || strpos($auser['equip'],'i.a.h.wolf')!==false)) {$char[2]+=5; $char[4]+=5; $twar[5]+=4;}
//if (strpos($auser['items'],$equip[$i].'-')===false && strpos($auser['equip'],'i.a.b.')!==false) $za=explode('-',$equip[$i]);
//if ($za) { $twar[5]+=$za[1]; }
// штраф
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);
$l_i[$loc][$login]=$auser;