View file game/2/f_necro.dat

File size: 3.07Kb
<?php

			if ($skills[31]==0) msg("Ваш навык некроманта равен нулю, вы не умеете поднимать мертвых.");
			if (!$to) {
				$stmp="";
				foreach(array_keys($l_i[$loc]) as $i) if (substr($i,0,10)=="i.s.d.n.c." || substr($i,0,10)=="i.s.d.n.a.") {
					$k=explode("|",$l_i[$loc][$i]);
					$stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=skill.necro&to=".$i."\">".$k[0]."</a>";
					}
				if (!$stmp) $stmp="<p>Рядом нет трупов, поднимать из мертвых можно только монстров и животных."; else $stmp="<p>Выберите труп:".$stmp;
				msg($stmp);
				}
			if (!isset($l_i[$loc][$to])) msg("Нет цели");
			if (substr($to,0,10)!="i.s.d.n.c." && substr($to,0,10)!="i.s.d.n.a.") msg("Поднимать можно только трупы монстров и животных");
			$id=substr($to,6,strrpos($to,".")-6);
			$id=substr($id,0,strrpos($id,"."));
			if (!file_exists("npc/".$id)) msg("Ошибка: нет npc/".$id.", сообщите разработчику");
			if ($char[3]<6) msg("Недостаточно маны (надо 6)");
			$char[3]-=6;
			$char[6]=time()+10;
			$l_i[$loc][$login]["char"]=implode("|",$char);
			$title_v=explode("|",$l_i[$loc][$to]);
			$title_v=$title_v[0];
			$title_v=substr($title_v,strpos($title_v,"(")+1,-1);
	require "f_time.dat";
	if (strpos($l_i[$loc][$login]['equip'],'..gt')!==false) $z=10; else $z='';
			if (rand(0,100)<=$skills[31]*5+$skills[2]*2+$z) {

				// проверим, чтобы в локации не было более 3 призванных существ, остальных отпустим
				$counttmp=0;
				foreach (array_keys($l_i[$loc]) as $i) if (isset($l_i[$loc][$i]["owner"])) {
					$owner=explode("|",$l_i[$loc][$i]["owner"]);
					if ($owner[0]==$login && substr($i,0,4)!="n.o.") {
						$counttmp++; 
						if ($counttmp>2) {
							$tchar=explode("|",$l_i[$loc][$i]["char"]);
							addjournal($loc,$login,$tchar[0]." покинул вас");
							if ($owner[4]) addnpc($i,$loc,""); else unset($l_i[$loc][$i]["owner"]);
							}
						}
					}

				unset($l_i[$loc][$to]);
				// подготовим труп
				include "npc/".$id;
				$tchar=explode("|",$npc["char"]);
				$tchar[0]=$title_v."-зомби";
				$tchar[2]=round($tchar[2]*0.7);
				if ($tchar[2]<1) $tchar[2]=1;
				$tchar[1]=$tchar[2];
				$npc["char"]=implode("|",$tchar);
				unset($npc["bank"]);
				unset($npc["osvej"]);
				unset($npc["equip"]);
				unset($npc["items"]);
				unset($npc["itemsrnd"]);
				$twar=explode("|",$npc["war"]);
				$twar[1]=round($twar[1]*0.7);
				if ($twar[1]<0) $twar[1]=0;
				$twar[2]=round($twar[2]*0.7);
				if ($twar[2]<0) $twar[2]=0;
				$twar[13]=0;
				unset($twar[15]);
				$npc["war"]=implode("|",$twar);
				$tc=rand(300,300+($skills[31]+$skills[2])*90);
				$tc=time()+$tc;
				$npc["owner"]=$login."|".$login."|".$login."|".$tc."|1";
				$l_i[$loc]["n.z.".$id.".".chr(rand(97,122)).chr(rand(97,122)).chr(rand(97,122)).chr(rand(97,122))]=$npc;
				addjournal($loc,$login,"Вы подняли из мертвых ".$title_v);
				addjournal($loc,"all",$char[0]." поднял из мертвых ".$title_v,$login);
				if (rand(1,100)<5) addexp($loc,$login,1);
				if ($loc_c[1]) docrim($loc,$login);
				} else {addjournal($loc,$login,"Вам не удалось поднять из мертвых труп ".$title_v);addjournal($loc,"all",$char[0]." пытался поднять из мертвых труп ".$title_v,$login);}