View file f_calcparam.dat

File size: 2.66Kb
//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"];
	$uklon=10*($skills[1]+$skills[12]-5);
	$parring=10*($skills[1]+$skills[11]-3);
	$magic_uklon=10*($skills[2]+$skills[15]-7);
	$magic_parring=10*($skills[2]+$skills[14]-1);
	$magic_shield=10*($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;
			$speed=$item[6]-round($skills[1]/2);
			if (substr($player["equip"][$i],0,19)=='item.weapon.ranged.') $ranged=1; else $ranged=0;
			$weaponby=$item[7];
			$str=$item[5];
			if ($skills[0]<$str) $str = $str-$skills[0];
			if ($ranged) {		// стрельба
				$need=$item[8];	// патроны
				$needtitle=$item[9];	// патроны
				$hit=10*($skills[1]+$skills[10]-1);
				} else {		// холодное оружие
					$need=''; 
					$needtitle=''; 
					$hit=10*($skills[1]+$skills[9]);
					}
			$damage_min=$item[3]-$str;
			$damage_max=$item[4]-$str;
			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=10*($skills[1]+$skills[8]+2);
		$speed = 5-round($skills[1]/2);
		$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;

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