View file f_calcparam.dat

File size: 3.42Kb
//function calcparam($login) {	// пересчитаем основные параметры		// linkCalcparam
	global $game;
	if (!isset($game["players"][$login])) return;
	$player=&$game["loc"][$game["players"][$login]][$login];
	$skills=split("\|",$player["skills"]);
	$player["life_max"]=10+$skills[0]*10;
	if (!isset($player["life"])) $player["life"]=$player["life_max"];
	$player["mana_max"]=10+$skills[2]*10;
	if (!isset($player["mana"])) $player["mana"]=$player["mana_max"];
/*mod*/	$uklon=10*($skills[1]+$skills[12]-15);
/**/	$parring=10*($skills[1]+$skills[11]-13);
/**/	$magic_uklon=10*($skills[2]+$skills[15]-17);
/**/	$magic_parring=10*($skills[2]+$skills[14]-11);
/**/	$magic_shield=5*($skills[14]);
	// считаем крутость exp
	for($i=0;$i<count($skills);$i++) if ($i!=3) $exp+=$skills[$i];	// кроме level
	// что одето
	$b=0;
	$armor=0;
	$shield=0;
	if ($player["equip"]) foreach(array_keys($player["equip"]) as $i) {
		if (!isset($player["items"][$player["equip"][$i]])) {unset($player["equip"][$i]); continue;};	// нет такого предмета, ошибка
		$item=split("\|",$player["items"][$player["equip"][$i]]);
		if ($i=="body" || $i=="hand" || $i=="leg" || $i=="head") $armor+=$item[3];	//armor
		if ($i=="shield") $shield=$item[3];
		if ($i=="arm" && substr($player["equip"][$i],0,12)=='item.weapon.') {	//weapon
			$b=1;
			if ($item[6]<3) $item[6]+=10;
/*mod*/			$speed=$item[6]-round($skills[1]/4);
			if (substr($player["equip"][$i],0,19)=='item.weapon.ranged.') $ranged=1; else $ranged=0;
			$weaponby=$item[7];

			if ($ranged) {		// стрельба
				$need=$item[8];	// патроны
				$needtitle=$item[9];	// патроны
				$hit=5*($skills[1]+$skills[10]-1);
				} else {		// холодное оружие
					$need=''; 
					$needtitle=''; 
/*mod*/					$hit=5*($skills[1]+$skills[9]);
					}
			$damage_min=$skills[0]-$item[5]+$item[3];
			$damage_max=$skills[0]-$item[5]+$item[4];
			if (substr($player["equip"][$i],0,27)=="item.weapon.ranged.crossbow") {$damage_min-=$skills[0];$damage_max-=$skills[0];}	// в арбалетах сила не используется
			}
		}
	if (!$b) {					// рукопашная
		$ranged=0; 
		$need=''; 
		$needtitle=''; 
		$damage_min=$skills[0]+$skills[8]-1;
		$damage_max=$skills[0]+$skills[8]+1;
		$hit=5*($skills[1]+$skills[8]+2);
		$speed = 5-round($skills[1]/4);
		$weaponby = "";
		}

	// проверка
	if($hit<0) $hit=0;
	if($uklon<0) $uklon=0;
	if($parring<0) $parring=0;
	if($magic_uklon<0) $magic_uklon=0;
	if($magic_parring<0) $magic_parring=0;
	if($damage_min<0) $damage_min=0;
	if($damage_max<0) $damage_max=0;
//кольца модиф.
if (isset($player["items"]["item.ring.hit"])) $hit=round($hit*1.1);
if (isset($player["items"]["item.ring.speed"])) $speed=round($speed*0.9);
if (isset($player["items"]["item.ring.min"])) $damage_min=round($damage_min*1.1);
if (isset($player["items"]["item.ring.max"])) $damage_max=round($damage_max*1.1);
if (isset($player["items"]["item.ring.ukl"])) $uklon=round($uklon*1.1);
if (isset($player["items"]["item.ring.par"])) $parring=round($parring*1.1);
if (isset($player["items"]["item.ring.shit"])) $shield=round($shield*1.1);
if (isset($player["items"]["item.ring.mukl"])) $magic_uklon=round($magic_uklon*1.1);
if (isset($player["items"]["item.ring.mpar"])) $magic_parring=round($magic_parring*1.1);
if (isset($player["items"]["item.ring.mshit"])) $magic_shield=round($magic_shield*1.1);

	// ок, подводим итог...
	$player["war"]="$hit|$damage_min|$damage_max|$speed|$ranged|$armor|$uklon|$parring|$shield|$magic_uklon|$magic_parring|$magic_shield|$weaponby|$exp|$need|$needtitle";
//	}