<?php
// использование приемов
if (strpos($l_i[$loc][$from]["equip"],"i.w.r.")!==false) msg("Приемы можно использовать только в рукопашном бою или с холодным оружием ближнего боя");
if ($use{2}>0 && $use{2}<10) {
$tm=explode("|",$l_i[$loc][$from]["priem"]);
$tc=intval($use{2})-1;
if ($tm[$tc]) {$use=substr($tm[$tc],0,strpos($tm[$tc],":"));$l_i[$loc][$from]["macrol"]="use|$use|to|$to";} else msg("У вас нет приема под номером ".($tc+1));
}
if (file_exists("items/".$use)) $priem=explode("|",implode("",file("items/".$use))); else die("err: no items/".$use);
if (strpos($l_i[$loc][$from]["priem"],$use.":")===false) msg("Вы не знаете прием ".$magic[0].", найдите NPC, который поможет его изучить.");
if ($to==$from || !$to) msg("Нельзя применять прием к самому себе");
// для боевых всегда нужна цель, для защитных не действует период
if (substr($use,0,4)=="p.d." || substr($use,0,4)!="p.d." && isset($l_i[$loc][$to])) {
if (substr($use,0,4)=="p.d." || time()>intval(preg_replace('/.*'.$use.':(\d+).*/',"\\1",$l_i[$loc][$from]["priem"]))) {
$skills=explode("|",$l_i[$loc][$from]["skills"]);
$war=explode("|",$l_i[$loc][$from]["war"]);
// флаг
if ($game["fid"]==$from && $game["floc"]==$loc) $war[0]+=10;
$ihit=($skills[2]-1)*10; // штраф по интеллекту
if($char[12]) $ihit+=10; // штраф если на коне
// боевой
if (substr($use,0,4)!="p.d.") {
// период
$l_i[$loc][$from]["priem"]=preg_replace('/'.$use.':(\d+)/',$use.":".(time()+$priem[1]),$l_i[$loc][$from]["priem"]);
$magic=$war;
$magic[0]-=$ihit;
if ($use=="p.b") {$magic[1]=round($magic[1]*0.7);$magic[2]=round($magic[2]*0.7); $magic[3]=round($magic[3]*0.5);}
if ($use=="p.d") {$magic[0]-=15;$magic[3]=-1;}
if ($use=="p.me") {$magic[0]-=10;$magic[3]=-1;}
if ($use=="p.m") {$magic[1]=round($magic[1]*0.7);$magic[2]=round($magic[2]*0.7);$magic[0]+=40;}
if ($use=="p.n") {$magic[1]=round($magic[1]*0.6);$magic[2]=round($magic[2]*0.6);}
if ($use=="p.r") {$magic[1]=round($magic[1]*0.4);$magic[2]=round($magic[2]*0.4);}
if ($use=="p.vw") {$magic[1]=round($magic[1]*0.2);$magic[2]=round($magic[2]*0.2);}
if ($use=="p.vs") {$magic[1]=round($magic[1]*0.2);$magic[2]=round($magic[2]*0.2);}
if ($use=="p.g") {$magic[0]-=30;if (strpos($l_i[$loc][$from]["equip"],"i.w.")!==false) {$magic[1]+=$skills[0]*2+$skills[9];$magic[2]+=$skills[0]*2+$skills[9];} else {$magic[1]+=$skills[0]+$skills[8];$magic[2]+=$skills[0]+$skills[8];}}
if ($use=="p.p") {$magic[0]-=20;if (strpos($l_i[$loc][$from]["equip"],"i.w.")!==false) $magic[2]+=$skills[0]*3+$skills[9]*2; else $magic[2]+=$skills[0]*2+$skills[8];}
if ($use=="p.s") {$magic[0]-=10;if (strpos($l_i[$loc][$from]["equip"],"i.w.")!==false) $magic[2]+=$skills[0]*2+$skills[9]; else $magic[2]+=$skills[0]+$skills[8];}
if($magic[0]<1) $magic[0]=5;
if($magic[0]>95) $magic[0]=95;
if($magic[1]<0) $magic[1]=0;
if($magic[2]<0) $magic[2]=0;
attack($loc,$from,$to,implode("|",$magic),1,0,$use,$priem[0]);
$char=explode("|",$l_i[$loc][$from]["char"]);
if ($use=="p.d") {attack($loc,$from,$to,implode("|",$magic),1,0,$use,$priem[0]);$char=explode("|",$l_i[$loc][$from]["char"]); $char[6]=time()+$war[3];$l_i[$loc][$from]["char"]=implode("|",$char);}
if ($use=="p.me") {foreach($l_i[$loc] as $key=>$i) if($key!=$from && $key!=$to) {attack($loc,$from,$key,implode("|",$magic),1,0,$use,$priem[0]);} $char=explode("|",$l_i[$loc][$from]["char"]); $char[6]=time()+$war[3]*2;$l_i[$loc][$from]["char"]=implode("|",$char);}
// проверки на выбивание
if (isset($l_i[$loc][$to])) {
if ($l_i[$loc][$to]["def"]) $tdef=explode("|",$l_i[$loc][$to]["def"]); else $tdef=array(0,"","");
if($use=="p.n") {if(rand(0,100)<=$magic[0]-40 && ($tdef[0]!="p.d.n" || $tdef[0]=="p.d.n" && rand(0,100)>$tdef[3])) {addjournal($loc,$to,"Вас оглушили!"); addjournal($loc,"all",substr($to,2)." оглушен!",$to); $tc=explode("|",$l_i[$loc][$to]["char"]);$tc[6]=time()+15;$l_i[$loc][$to]["char"]=implode("|",$tc);} if ($tdef[0]=="p.d.n") $l_i[$loc][$to]["def"]="";}
if($use=="p.r") {if(rand(0,100)<=$magic[0]-70 && ($tdef[0]!="p.d.r" || $tdef[0]=="p.d.r" && rand(0,100)>$tdef[3]) && strpos($l_i[$loc][$to]["equip"],"i.w.")!==false) {addjournal($loc,$to,"У вас выбито оружие!"); addjournal($loc,"all","У ".substr($to,2)." выбито оружие!",$to); additem($loc,$to,'loc',preg_replace('/.*?(i\.w\.[^\|]+).*/',"\\1",$l_i[$loc][$to]["equip"]),1,"items","items",1,-1,1); $tc=explode("|",$l_i[$loc][$to]["char"]);$tc[6]=time()+5;$l_i[$loc][$to]["char"]=implode("|",$tc);} if ($tdef[0]=="p.d.r") $l_i[$loc][$to]["def"]="";}
if($use=="p.vw") {if(rand(0,100)<=$magic[0]-40 && strpos($l_i[$loc][$to]["equip"],"i.a.s.")!==false) {addjournal($loc,$to,"У вас выбит щит!"); addjournal($loc,"all","У ".substr($to,2)." выбит щит!",$to); additem($loc,$to,'loc',preg_replace('/.*?(i\.a\.s\.[^\|]+).*/',"\\1",$l_i[$loc][$to]["equip"]),1,"items","items",1,-1,1); $tc=explode("|",$l_i[$loc][$to]["char"]);$tc[6]=time()+5;$l_i[$loc][$to]["char"]=implode("|",$tc);}}
if($use=="p.vs") {if(rand(0,100)<=$magic[0]-50 && ($tdef[0]!="p.d.s" || $tdef[0]=="p.d.s" && rand(0,100)>$tdef[3])) {$tatk=1; require("plugin/m.kon.dat");} if ($tdef[0]=="p.d.s") $l_i[$loc][$to]["def"]="";}
}
} else { // защитные
if ($use=="p.d.p" && strpos($l_i[$loc][$from]["equip"],"i.a.s.")===false) msg("Щит должен находиться у вас в руках");
$l_i[$loc][$from]["def"]=$use."|".$priem[0]."|".(time()+$priem[1])."|".($use=="p.d.c"?$skills[2]*16:($war[0]-$ihit));
if ($use=="p.d.o") {$char[6]=time()+$priem[1];$l_i[$loc][$from]["char"]=implode("|",$char);}
}
}else addjournal($loc,$from,"Период ".$priem[0]." не истек (еще ".(round((intval(preg_replace('/.*'.$use.':(\d+).*/',"\\1",$l_i[$loc][$from]["priem"]))-time())/60)+1)." минут)");
}else addjournal($loc,$from,"Нет цели");