Просмотр файла game/2/f_doai.dat

Размер файла: 5.33Kb
  1. <?php
  2. global $game,$loc,$l_i,$l_t,$l_tt,$g_list,$start,$g_destroy,$g_crim,$g_logout,$login;
  3. $g_regen=30;
  4.  
  5. $locai=explode("|",$l_tt[$i]["d"]);
  6.  
  7. // таймеры
  8. if (isset($l_t[$i])) {
  9. foreach ($l_t[$i] as $j=>$val) if (time()>$j) {
  10. if (gettype($l_t[$i][$j])=="array" || substr($l_t[$i][$j],0,2)=="n.") {require "f_timernpc.dat"; continue;}
  11. if (substr($l_t[$i][$j],0,2)=="i.") {require "f_timeritem.dat"; continue;}
  12. $loct=$i;$curr=$j;
  13. eval($l_t[$i][$j]);
  14. }
  15. }
  16. $crim=array();
  17. $users=array();
  18. $ti=explode("x",$i);
  19. if ($l_i[$i]) {
  20. foreach ($l_i[$i] as $j=>$val) if ($j!="u.qv" && $j!="u.ogir" && $j!="u.qw" && $j!="u.kv" && $j!="u.scream") {
  21. if (substr($j,0,2)=='u.') {
  22. $uc=explode("|",$l_i[$i][$j]["char"]);
  23. if (!$uc[8]) {$us=explode("|",$l_i[$i][$j]["skills"]); if (rand(0,100)>$us[17]*6) $users[]=$j; if ($locai[1]!=3 && $uc[9] || $ti[2]>=1099 && ($locai[1]==2 && $uc[14]=="p" || $locai[1]==3 && $uc[14]=="t")) $crim[]=$j;}
  24. }
  25. if (substr($j,0,4)=='n.c.') $crim[]=$j;
  26. if (substr($j,0,4)=="n.g.") $guard=1;
  27. }
  28. }
  29. if ($locai[1]==1 && count($crim)>0 && !$guard) require "f_addguard.dat";
  30.  
  31. // по всем объектам
  32. if ($l_i[$i]) foreach ($l_i[$i] as $j=>$val) if (isset($l_i[$i][$j])) {
  33. if (substr($j,0,2)=='i.') {
  34. if ($j=="i.flag" && $game["floc"]!=$i) {unset($l_i[$i][$j]); continue;}
  35. if (substr($i,0,2)=="c." && substr($j,0,4)!="i.s.") continue;
  36. $tmp=explode("|",$l_i[$i][$j]);
  37. if ($tmp[2] && time()>$tmp[2]) unset($l_i[$i][$j]);
  38. continue;
  39. }
  40. if (substr($j,0,2)=='u.' || substr($j,0,2)=='n.') {
  41. $char=explode("|",$l_i[$i][$j]["char"]);
  42. $tm=time()-$char[5];
  43. if ($tm>$g_regen && (time()<$char[17] || $char[1]!=$char[2] || $char[3]!=$char[4]) && (substr($j,0,2)=='n.' || (substr($j,0,2)=='u.' && !$char[8]))) {
  44. if (substr($j,0,2)=='u.') $skills=explode("|",$l_i[$i][$j]["skills"]); else {$skills[5]=0; $skills[16]=0;}
  45. //яды и регенерация
  46. if (time()>$char[17]) { $char[1]=min($char[1]+=round($tm/($g_regen-$skills[16]*4)),$char[2]);
  47. } else { $char[1]=max($char[1]-=round($tm/($g_regen-5*4)),1); }
  48. $char[3]=min($char[3]+=round($tm/($g_regen-$skills[5]*4)),$char[4]);
  49. $char[5]=time();
  50. }
  51. if (substr($j,0,2)=='u.') {
  52. if ($char[9] && time()>$char[10]) {$char[9]=0;$char[10]="";}
  53. if ($j==$login) $char[11]=time();
  54. if ($char[11] && time()>$char[11]+$g_logout*5 && !file_exists("online/".$j)) {unset($l_i[$i][$j]); continue;}
  55. }
  56. if (substr($j,0,2)=='n.') {
  57. if ($loc==$i && time()>$char[6] && $char[1]<$char[2]/4 && rand(0,100)<50 && substr($j,0,4)!='n.s.' && substr($j,0,4)!='n.o.' && substr($j,0,4)!='n.z.') {require "f_run.dat"; if($b) continue;}
  58. if ($char[7] && isset($l_i[$i][$char[7]]) && substr($char[7],0,2)=="u.") {$tc=explode("|",$l_i[$i][$char[7]]["char"]); if ($tc[8]) $char[7]="";}
  59. if ($j=="n.a.b.jarpt.1") {$b=0; foreach ($l_i[$i] as $k=>$v) if(substr($k,0,2)=="u.") {addnpc($j,$i,$locai[2+2*rand(0,(count($locai)-2)/2-1)+1]); $b=1; break;} if ($b) continue;}
  60. if (substr($j,0,4)=="n.g." && time()>$char[11]) {addnpc($j,$i,""); continue;}
  61. if (isset($l_i[$i][$j]["owner"])) {require "f_owner.dat"; if ($b) continue;} else {$owner[1]="";}
  62. if ($char[7] && !$owner[1] && !isset($l_i[$i][$char[7]])) {
  63. $b=0;
  64. if (substr($j,0,4)!="n.o." && $j!="n.a.b.jarpt.1") require "f_goto.dat";
  65. if ($b) continue; else $char[7]="";
  66. }
  67. if (!$char[7]) {
  68. if (count($crim)>0 && (substr($j,0,4)=="n.g." || substr($j,0,4)=="n.t." || substr($j,0,4)=="n.p.")) $char[7]=$crim[rand(0,count($crim)-1)];
  69. if (($char[9] || substr($j,0,4)=='n.c.') && count($users)>0) $char[7]=$users[rand(0,count($users)-1)];
  70. }
  71. if (substr($j,0,4)=="n.o." && substr($i,0,2)=="c." && substr($i,3)!=".in" && (!$char[7] || !isset($l_i[$i][$char[7]]))) require "f_no.dat";
  72. if (!$char[7] && !$owner[1] && ($char[10] || (!$char[10] && $char[12])) && substr($j,0,4)!="n.o.") {require "f_na.dat"; if($b) continue;}
  73. }
  74. $l_i[$i][$j]["char"]=implode("|",$char);
  75. if ($char[7] && substr($j,0,2)!="u.") attack($i,$j,$char[7]);
  76. } else {unset($l_i[$i][$j]); continue;}
  77. }