Просмотр файла wofh/calcparam.php

Размер файла: 2.91Kb
  1. <?
  2. //function calcparam($login) { // пересчитаем основные параметры // linkCalcparam
  3. global $game;
  4. if (!isset($game["players"][$login])) return;
  5. $player=&$game["loc"][$game["players"][$login]][$login];
  6. $skills=split("\|",$player["skills"]);
  7. $player["life_max"]=10+$skills[0]*20;
  8. if (!isset($player["life"])) $player["life"]=$player["life_max"];
  9. $war1=split("\|",$player["war"]);
  10. $player["mana_max"]=10+$skills[2]*20;
  11. if (!isset($player["mana"])) $player["mana"]=$player["mana_max"];
  12. $uklon=10*($skills[1]+$skills[12]-15);
  13. $parring=10*($skills[1]+$skills[11]-13);
  14. $magic_uklon=10*($skills[2]+$skills[15]-17);
  15. $magic_parring=10*($skills[2]+$skills[14]-11);
  16. $magic_shield=5*($skills[14]);
  17. // считаем крутость exp
  18. for($i=0;$i<count($skills);$i++) if ($i!=3) $exp+=$skills[$i]; // кроме level
  19. // что одето
  20. $b=0;
  21. $armor=0;
  22. $shield=0;
  23. if ($player["equip"]) foreach(array_keys($player["equip"]) as $i) {
  24. if (!isset($player["items"][$player["equip"][$i]]) ) {unset($player["equip"][$i]); continue;}; // нет такого предмета, ошибка
  25. $item=split("\|",$player["items"][$player["equip"][$i]]);
  26. if ($i=="body" || $i=="hand" || $i=="leg" || $i=="head" || $i=="sap" || $i=="per" ) $armor+=$item[3]; //armor
  27. if ($i=="shield") $shield=$item[3];
  28. if ($i=="arm" && substr($player["equip"][$i],0,12)=='item.weapon.') { //weapon
  29. $b=1;
  30. //if ($item[6]<3) $item[6]+=10;
  31. $speed=round($skills[1]/4);
  32. if (substr($player["equip"][$i],0,19)=='item.weapon.ranged.') $ranged=1; else $ranged=0;
  33. $weaponby=$item[7];
  34. if ($ranged) { // стрельба
  35. $need=$item[8]; // патроны
  36. $needtitle=$item[9]; // патроны
  37. $hit=5*($skills[1]+$skills[10]-1);
  38. } else { // холодное оружие
  39. $need='';
  40. $needtitle='';
  41. $hit=5*($skills[1]+$skills[9]);
  42. }
  43. $damage_min=$skills[0]-$item[5]+$item[3];
  44. $damage_max=$skills[0]-$item[5]+$item[4];
  45. if (substr($player["equip"][$i],0,27)=="item.weapon.ranged.crossbow") {$damage_min-=$skills[0];$damage_max-=$skills[0];} // в арбалетах сила не используется
  46. }
  47. }
  48. if (!$b) { // рукопашная
  49. $ranged=0;
  50. $need='';
  51. $needtitle='';
  52. $damage_min=$skills[0]+$skills[8]-1;
  53. $damage_max=$skills[0]+$skills[8]+1;
  54. $hit=5*($skills[1]+$skills[8]+2);
  55. $speed = 5-round($skills[1]/4);
  56. $weaponby = "";
  57. }
  58.  
  59. // проверка
  60. if($hit<0) $hit=0;
  61. if($hit>100) $hit=100;
  62. if($uklon<0) $uklon=0;
  63. if($parring<0) $parring=0;
  64. if($magic_uklon<0) $magic_uklon=0;
  65. if($magic_parring<0) $magic_parring=0;
  66. if($damage_min<0) $damage_min=0;
  67. if($damage_max<0) $damage_max=0;
  68. require "mod.php"; //модификаторы
  69. // ок, подводим итог...
  70. $player["war"]="$hit|$damage_min|$damage_max|$speed|$ranged|$armor|$uklon|$parring|$shield|$magic_uklon|$magic_parring|$magic_shield|$weaponby|$exp|$need|$needtitle";
  71. // }
  72. ?>