Размер файла: 2.91Kb
<? //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 ]* 20 ; if (! isset ( $player [ "life" ])) $player [ "life" ]= $player [ "life_max" ]; $war1 = split ( "\|" , $player [ "war" ]); $player [ "mana_max" ]= 10 + $skills [ 2 ]* 20 ; if (! isset ( $player [ "mana" ])) $player [ "mana" ]= $player [ "mana_max" ]; $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" || $i == "sap" || $i == "per" ) $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; $speed = 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 = '' ; $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 ( $hit > 100 ) $hit = 100 ; 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 ; require "mod.php" ; //модификаторы // ок, подводим итог... $player [ "war" ]= "$hit|$damage_min|$damage_max|$speed|$ranged|$armor|$uklon|$parring|$shield|$magic_uklon|$magic_parring|$magic_shield|$weaponby|$exp|$need|$needtitle" ; // } ?>