<?
// использование скиллов
$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]|$chert[14]";
$i_name="item.weapon.".$i_name;
}
if ($chert[3]==1){ //броня
$new="$i_lbl|1|$i_price|$chert[7]|$chert[10]";
$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==$admin || $to==$admin1) msg("<p>Я тебе поворую у админа!");
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
if ($use=='skill.repair') { //ну-ка починим=)
if (!$to) {$list='all';} else {
if ($skills[29]>=5) {
if ($to!='item.axe' && $to='item.rod') {
addjournal($login,"Чинить можно только удочку или кирку");
} else {
$z=&$player['items'][$to];
$ex=explode("|", $z);
$ex[3]=($ex[3]+round($skills[29]/1));
$z=implode("|", $ex);
$player['deystvo']=time();
addjournal($login,"Износ вашей $ex[0] стал $ex[3]");
// echo $z;
}
}else addjournal($login,"Слишком низкийй навык починки");
}
} else
if ($use=='skill.alhemy') {
if ($skills[30]<=5) {
msg("Слишком низкие знания алхимии");
};
if (!isset($player["items"]["item.bottle.empty"])) {msg("<p>У вас нет пустой бутылки");}
$arr_to=array(
"item.bottle.life",
"item.bottle.life.great",
"item.bottle.mana",
"item.bottle.mana.great",
"item.bottle.health",
"item.potion.gremuch",
"item.potion.all.adsk",
);
$arr_to_make=array(
"item.bottle.life"=> "напиток жизни|1|30|45|0|item.magic.moss:7:мох|item.magic.pearl:3:жемчуг", //need_id:count:title
"item.bottle.life.great"=>"напиток великой жизни|1|150|75|0|item.magic.moss:8:мох|item.magic.pearl:3:жемчуг",
"item.bottle.mana"=> "напиток маны|1|40|0|40|item.magic.moss:4:мох|item.magic.pearl:3:жемчуг",
"item.bottle.mana.great"=>"напиток великой маны|1|150|0|75|item.magic.moss:7:мох|item.magic.pearl:3:жемчуг",
"item.bottle.health"=> "напиток исцеления|1|100|55|50|item.magic.moss:7:мох|item.magic.pearl:3:жемчуг",
"item.potion.gremuch"=> "гремучая смесь|1|200|300|500|item.magic.pxlq:2:пыль|item.magic.slyuna:4:слюна ящера|item.magic.vulkpep:6:вулканический пепел",
"item.potion.all.adsk"=> "адская смесь|1|200|200|350|item.magic.ognjem:6:огненный жемчуг|item.magic.jidzol:2:жидкое золото|item.magic.pxlq:2:пыль|item.magic.slyuna:4:слюна ящера|item.magic.vulkpep:6:вулканический пепел",
);
$ii=0;
foreach (array_keys($arr_to_make) as $i)
{
$arr_to[$ii]=$i;
$ii++;
};
if ($skills[30]<9) {$rand=rand(0, count($arr_to)-1); } else {
if (@!$rand) {
$j=0;
foreach($arr_to_make as $i) {
$xz=explode("|", $i);
$listed.="<a href=\"$PHP_SELF?sid=$sid&use=skill.alhemy&rand=".$j."\">".$xz[0]."</a><br/>";
$j++;
};
msg($listed);
}
};
$regsok=1;
$str=explode('|', $arr_to_make[$arr_to[$rand]]);
for ($i=5;$i<count($str);$i++) {
$reg=split(":",$str[$i]);
if (!isset($player["items"][$reg[0]])) {$regsok=0; $kol=$reg[1]; $st.="<br/>".$reg[2]."(".$kol.")";}
else {$item=split("\|",$player["items"][$reg[0]]); if ($item[1]<$reg[1]) {$regsok=0; $kol=$reg[1]-$item[1]; if ($st) $st.="<br/>".$reg[2]."(".$kol.")"; else $st="<br/>".$reg[2]."(".$kol.")";}}
}
$bot=1;
$m=split("\|",$player["items"]["item.bottle.empty"]);
$m[1]-=$bot;
if ($m[1]==0) unset($player["items"]["item.bottle.empty"]); else $player["items"]["item.bottle.empty"]=implode("|",$m);
$r=rand(90, 100);
if ($r<$skills[30]) {
$regsj="";
if (!isset($player["items"][$reg[0]])) { msg("Не хватает реагентов: ".$st);}
//убиваем реги
for ($i=5;$i<count($str);$i++) {
$reg=split(":",$str[$i]);
$item=split("\|",$player["items"][$reg[0]]);
$item[1]-=$reg[1];
$regsj.="<br/>Вы потеряли ".$reg[1]." ".$reg[2]."!";
if ($item[1]<1) unset($player["items"][$reg[0]]); else $player["items"][$reg[0]]=implode("|",$item);
}
if ($player['items'][$arr_to[$rand]]) { //если у юзера была рыба, то приплюсовываем новое значение
$fi=explode("|", $player['items'][$arr_to[$rand]]);// теперь в $fi[1] есть кол-во старой руды
}
$xz_after=$fi[1]+$str[1];
$player['items'][$arr_to[$rand]]=$str[0]."|".$xz_after."|".$str[2]."|".$str[3]."|".$str[4];
$make=$str[0]."|".$str[1]."|".$str[2]."|".$str[3]."|".$str[4];
addjournal($login, "Вы получили \"".$str[0]."\"!");
addjournal($login, "Вы потеряли 1 бутылку".$regsj);
msg("Вы создали 1 ".$str[0]."");
$player['deystvo']=time();
} else { msg("Не вышло!");
};
}
if ($use=="skill.anima") {//анимагия
error_reporting(e_all);
$i=1;
// уровень=имя/сила/ловкость/магия/сопр.магии/уклон от магии/регенер/осторожность/скрытность/интелект/медитация
$anim=array(
"1"=>"Kрыса|3|3|3|3|3|3|3|3|3|3",
"2"=>"Kобра|4|4|4|4|4|4|4|4|4|4",
"3"=>"Летучая мышь|5|5|5|5|5|5|5|5|5|5",
"4"=>"Кот|6|6|6|6|6|6|6|6|6|6",
"5"=>"Собака|7|7|7|7|7|7|7|7|7|7",
"6"=>"Филин|8|8|8|8|8|8|8|8|8|8",
"7"=>"Ястреб|9|9|9|9|9|9|9|9|9|9",
"9"=>"Пантера|10|10|10|10|10|10|10|10|10|10",
"10"=>"Дракон|11|11|11|11|11|11|11|11|11|11",
);
if ($l) {
$xanim=explode("|",$anim[$l]);
$m="<b>".$xanim[0]."</b>:<br/>
Уровень:".($l)."<br/>
Cила:".$xanim[1]."<br/>
Ловкость:".$xanim[2]."<br/>
Магия:".$xanim[3]."<br/>
Сопр.магии:".$xanim[4]."<br/>
Уклон от магии:".$xanim[5]."<br/>
Регенерация:".$xanim[6]."<br/>
Осторожность:".$xanim[7]."<br/>
Скрытность:".$xanim[8]."<br/>
Интелект:".$xanim[9]."<br/>
Медитация:".$xanim[10]."<br/>";
msg($m);
};
$to=(int)$to;
$skills=explode("|", $player['skills']);
if ($to && $skills[31]>=1)
{ //превращаемся!=)
if ($player['animag']) msg("Вы уже и так под действием навыка! Отойдите от старого потом попробуйте заново!");
if (isset($player["tV"]) && time()<$player["tV"]) msg("<p>Превращаться можно один раз в 10 минут!");
$player["tV"]=time()+600;
if ($to>$skills[31]/1) msg("Непредвиденная ошибка!");
$xanim=explode("|",$anim[$to]);
$tt=(time()+60*$to*1)."|".$to;
$player['animag']=$tt; //время когда заканчиваем, номер твари.
$player['skills_animag']=$player['skills']; //бекап навыков
$skills=explode("|", $player['skills']);
$skills[0]=$xanim[1]; //сила
$skills[1]=$xanim[2];
$skills[13]=$xanim[3];
$skills[14]=$xanim[4];
$skills[15]=$xanim[5];
$skills[16]=$xanim[6];
$skills[18]=$xanim[7];
$skills[17]=$xanim[8];
$skills[2]=$xanim[9];
$skills[5]=$xanim[10];
$player['skills']=join("|", $skills);
$player['title_animag']=$player['title'];
$player['title']=$xanim[0];
unset($player['equip']);
addjournalall($player['loc'],$player['title_animag'].' превратился в '.$player['title'], $login);
calcparam($login);
$player['life']=$player['life'];
$player['mana']=$player['mana'];
msg('Вы преватились в '.$xanim[0]."!");
$player['deystvo']=time();
};
if ($d && $player['animag']) {
addjournalall($player['loc'],$player['title'].' превратился в '.$player['title_animag']);
// calcparam($login); //РАНО!
unset($player['animag']);
$player['skills']=$player['skills_animag'];
unset($player['skills_animag']);
$player['title']=$player['title_animag'];
unset($player['title_animag']);
calcparam($login);
$player['life']=$player['life'];
$player['mana']=$player['mana'];
};
if ($player['animag']) $anti="<a href=\"$PHP_SELF?sid=$sid&use=skill.anima&d=1\">Превратиться обратно в человека</a><br/>";
$msg=$anti."Вы можете превратиться:<br/>";
$lev=$skills[31];
do {
if ($lev>=$i*1) {
if ($anim[$i]){ $xanim=explode("|", $anim[$i]);
$ato.="<a href=\"$PHP_SELF?sid=$sid&use=skill.anima&to=".$i."\">".$xanim[0]."</a> (<a href=\"$PHP_SELF?sid=$sid&use=skill.anima&l=$i\">?</a>)<br/>";
}; };
$i++;
} while ($i<=count($anim)+1);
if (!$ato) $ato='Ваш навык анимагия очень слабо развит!';
$msg.=$ato;
msg($msg);
};
?>