// использование скиллов
$skills=split("\|",$player["skills"]);
if ($use=='skill.ingen') {
if (!$to) {$list='all';} else { //?возможно "inv"
if (!isset($player["items"][$to])) msg("Этого предмета у вас нет");
if (substr($to,0,11)!="item.chert.") msg("Применить навык можно только на <b>чертеж предмета</b>");
$chert=split("\|",$player["items"][$to]);
//проверки ресурсов
if (!isset($player["items"]["item.res.wood"])) msg("У вас нет <b>дерева</b>");
if (!isset($player["items"]["item.res.kam"])) msg("У вас нет <b>камня</b>");
if ($chert[3]==0){$der=$chert[14];$kam=$chert[15];} //оружие
if ($chert[3]==1){$der=$chert[8];$kam=$chert[9];} //броня
$der2=split("\|",$player["items"]["item.res.wood"]);
$der1=$der2[1];
$kam2=split("\|",$player["items"]["item.res.kam"]);
$kam1=$kam2[1];
if ($der1<$der) msg("Мало ресурсов. Необходимо <b>$der дерева</b>");
if ($kam1<$kam) msg("Мало ресурсов. Необходимо <b>$kam камня</b>");
//проверяем умения
if ($skills[24]<$chert[6]) msg("У вас слишком низкий навык <b>кузнец</b>");
if ($skills[2]<$chert[5]) msg("У вам слишком низкий <b>интеллект</b>");
//уменьшаем ресурсы и удаляем 1 чертеж
$der2[1]-=$der;
$kam2[1]-=$kam;
if ($der2[1]==0) unset($player["items"]["item.res.wood"]); else $player["items"]["item.res.wood"]=implode("|",$der2);
if ($kam2[1]==0) unset($player["items"]["item.res.kam"]); else $player["items"]["item.res.kam"]=implode("|",$kam2);
$chert[1]-=1;
if ($chert[1]==0) unset($player["items"][$to]); else $player["items"][$to]=implode("|",$chert);
//возможность ошибиться
if (rand(0,$chert[4])>$skills[1]) msg("У вас ничего не получилось. Возможно, стоит развить <b>ловкость</b>");
//все ок, создаем предмет
$i_lbl=substr($chert[0],7,strlen($chert[0])-8);
$i_name=substr($to,11);
$i_price=$chert[2]+round($chert[2]/100*20);//+20% к цене чертежа
if ($chert[3]==0){ //оружие
$new="$i_lbl|1|$i_price|$chert[7]|$chert[8]|$chert[9]|$chert[10]|$chert[11]|$chert[12]|$chert[13]";
$i_name="item.weapon.".$i_name;
}
if ($chert[3]==1){ //броня
$new="$i_lbl|1|$i_price|$chert[7]";
$i_name="item.armor.".$i_name;
}
if (isset($player["items"][$i_name])){
$old=split("\|",$player["items"][$i_name]);
$old[1]+=1;
$player["items"][$i_name]=implode("|",$old);
}else $player["items"][$i_name]=$new;
msg ("Вы создали <b>$i_lbl</b>");
}
}
if ($use=='skill.meditation') {
if (rand(0,100)<=$skills[5]*15 && $player["mana"]<$player["mana_max"]){
if ( !isset($player["tskmed"]) || $player["tskmed"]<time() ){
$player["tskmed"] = time() + rand(2,4);
$player["mana"]+=1;
addjournal($login,"Мана +1");
}
else addjournal($login,"Слишком часто медитируете");
}
else addjournal($login,"Медитация прервалась");
}
if ($use=='skill.animaltaming') {
if (!$to) {$list='all';} else {
if (!isset($game["loc"][$player["loc"]][$to]) || substr($use,0,4)=="npc.") msg("<p>Некого приручать");
if ($game["loc"][$player["loc"]][$to]["tame"]) {
$tame=10*($skills[7]+1-$game["loc"][$player["loc"]][$to]["tame"]);
if ($tame>0 && $skills[20]>0) {
if (rand(0,100)<=$tame) { $game["loc"][$player["loc"]][$to]["guard"]=$login; unset($player["attack"]); unset($game["loc"][$player["loc"]][$to]["attack"]); $game["loc"][$player["loc"]][$to]["owner"]=$login; $game["loc"][$player["loc"]][$to]["follow"]=$login; $ta=60; if ($login=="user.admin") $ta=600000; $game["loc"][$player["loc"]][$to]["time_owner"]=time()+$ta+rand(0,$skills[20]*10*60); addjournal($login,"Вы приручили ".$game["loc"][$player["loc"]][$to]["title"]);} else addjournal($login,"Не получилось приручить ".$game["loc"][$player["loc"]][$to]["title"]);
}else addjournal($login,"Слишком низкие навыки изучения и приручения животных");
}else addjournal($login,"Это существо невозможно приручить");
}
}
if ($use=='skill.steal') {
if (!$to) {$list='all';} else {
if ($to==$login) msg("<p>Нельзя воровать у самого себя");
if (substr($to,0,4)=='npc.') msg("<p>Воровать можно только у других игроков");
if (!isset($game["loc"][$player["loc"]][$to]) || substr($use,0,5)=="user.") msg("<p>Не у кого воровать (можно только у игроков)");
if ($player["loc"]=="loc.bank") msg("<p>Нельзя воровать на охраняемой территории");
$skillsto=split("\|",$game["loc"][$player["loc"]][$to]["skills"]);
// $skillsto=split("\|",$game["loc"][$player["loc"]][$to]);
if (!$id) { // выведем список инвентори
if (rand(0,100)<5*($skills[1]+$skills[19]-$skillsto[18])) {
if (count($game["loc"][$player["loc"]][$to]["items"])==0) msg("<p>У этого игрока ничего нет");
$stmp="<p>Предметы:";
foreach(array_keys($game["loc"][$player["loc"]][$to]["items"]) as $i) {
$stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=skill.steal&to=".$to."&id=".$i."\">";
$k=split("\|",$game["loc"][$player["loc"]][$to]["items"][$i]);
if ($k[1]>1) $stmp.=$k[0]." (".$k[1].")"; else $stmp.=$k[0];
$stmp.="</a>";
}
msg($stmp,$game["loc"][$player["loc"]][$to]["title"]);
} else { $time_crim = 10*60; docrim($login); addjournal($login,"Вас заметили!"); addjournal($to,$player["title"]." пытался подглядеть в ваш рюкзак!");}
} else { // воруем предмет $id, причем не спрашивая кол-во
$steal=5*($skills[1]+$skills[6]-3);
if ($steal>0) {
if (rand(0,100)<5*($skills[1]+$skills[6]-$skillsto[18]*1.5)) {
if (isset($player["tV"]) && time()<$player["tV"]) msg("<p>Воровать можно один раз в минуту!");
$player["tV"]=time()+60;
if (!isset($game["loc"][$player["loc"]][$to]["items"][$id])) msg("<p>У игрока нет такого предмета");
if (strpos($id,".imen.")) msg("<p>Слишком рискованное занятие!");
if (array_search($id,$game["loc"][$player["loc"]][$to]["equip"])) { $time_crim = 20*60; docrim($login); addjournal($login,"Вас застали за воровством!"); addjournal($to,$player["title"]." пытался вас обворовать!"); msg("<p>Вы пытались украсть одетый предмет");}
if (isset($player["items"][$id])) {
$k=split("\|",$game["loc"][$player["loc"]][$to]["items"][$id]);
$k1=split("\|",$player["items"][$id]);
$k1[1]+=$k[1];
$player["items"][$id]=implode("|",$k1);
} else $player["items"][$id]=$game["loc"][$player["loc"]][$to]["items"][$id];
unset($game["loc"][$player["loc"]][$to]["items"][$id]);
calcparam($to);
}else { $time_crim = 20*60; docrim($login); addjournal($login,"Вас застали за воровством!"); addjournal($to,$player["title"]." пытался вас обворовать!");}
}else addjournal($login,"Слишком низкие навыки воровства и подглядывания");
}//воруем предмет
}
}//skill.steal