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

Размер файла: 4.16Kb
  1. <?php
  2. // замковые функции
  3. if ($ctele) {
  4. loadloc($ctele);
  5. if (!isset($l_tt[$ctele]) || substr($ctele,3)!=".gate") return;
  6. $gate=$ctele;
  7. } else $gate=substr($loc,0,4)."gate";
  8.  
  9.  
  10. $d=explode("|",$l_tt[$gate]["d"]);
  11. if (strpos($d[0],"*")===false) $clanc=""; else $clanc=substr($d[0],strpos($d[0],"*")+1,strrpos($d[0],"*")-strpos($d[0],"*")-1);
  12. $char = explode("|",$l_i[$loc][$login]["char"]);
  13. if (strpos($char[0],"*")===false) $clan=""; else $clan=substr($char[0],strpos($char[0],"*")+1,strrpos($char[0],"*")-strpos($char[0],"*")-1);
  14. if (!$ctele && $char[8] && substr($loc,3)!=".in" && $clan!=$clanc && strpos($d[0],":".$login.":")===false) {addnpc($login,$loc,substr($gate,0,4)."in"); msg("Призрак не может находиться в не своем замке.");}
  15.  
  16. $arr=array("main","gate","tron","sklad");
  17. if ($ctele) {
  18. if ($clanc && $clanc==$clan) {// телепорт только если есть враги
  19. $tc=substr($ctele,0,4);
  20. foreach($arr as $i) {
  21. loadloc($tc.$i);
  22. if ($l_i[$tc.$i]) foreach(array_keys($l_i[$tc.$i]) as $k) if($k!=$login && substr($k,0,2)=="u.") {
  23. $tchar=explode("|",$l_i[$tc.$i][$k]["char"]);
  24. if (strpos($tchar[0],"*")===false) $tclan=""; else $tclan=substr($tchar[0],strpos($tchar[0],"*")+1,strrpos($tchar[0],"*")-strpos($tchar[0],"*")-1);
  25. if ($tclan!=$clanc && strpos($d[0],":".$k.":")===false) {addnpc($login,$loc,$ctele); return;}
  26. }
  27. }
  28. }
  29. return;
  30. }
  31. if (substr($loc,3,3)==".in") {include "f_castlein.dat"; return;}
  32.  
  33. // заперто/открыто
  34. if (substr($loc,3)!=".in") {
  35. if (strpos($d[0],"{")===false) $timez=0; else $timez=substr($d[0],strpos($d[0],"{")+1,strrpos($d[0],"}")-strpos($d[0],"{")-1);
  36. if (time()<$timez) {addnpc($login,$loc,substr($gate,0,4)."in"); msg("Ворота замка заперты изнутри, их могут открыть только хозяева замка, либо стражники откроют сами, когда истечет максимальный срок.");}
  37. else if (strpos($d[0],"#")===false) { // открываем, время истекло
  38. if ($timez!=0) $d[0]=substr($d[0],0,strpos($d[0],"{")).substr($d[0],strpos($d[0],"}")+1);
  39. $d[0].="#".($timez+60*60*8)."#";
  40. $l_tt[$gate]["d"]=implode("|",$d);
  41. $l_tt[$gate]["save"]=1;
  42. }
  43. }
  44. //---
  45.  
  46. $b=1;
  47. if (substr($loc,3)==".gate" && $clanc && $clanc!=$clan && strpos($d[0],":".$login.":")===false) { // вход
  48. $tc=substr($loc,0,4);
  49. $b=1;
  50. foreach($arr as $i) {
  51. loadloc($tc.$i);
  52. if ($l_i[$tc.$i]) foreach(array_keys($l_i[$tc.$i]) as $k) if($k!=$login) {
  53. $tchar=explode("|",$l_i[$tc.$i][$k]["char"]);
  54. if (strpos($tchar[0],"*")===false) $tclan=""; else $tclan=substr($tchar[0],strpos($tchar[0],"*")+1,strrpos($tchar[0],"*")-strpos($tchar[0],"*")-1);
  55. if (substr($k,0,4)=="n.o." || (substr($k,0,2)=="u." && !$tchar[8] && ($tclan==$clanc || strpos($d[0],":".$k.":")!==false))) $b=0;
  56. }
  57. }
  58.  
  59. $tclan=unserialize(implode("",file("../clans/".$clanc)));
  60. if ($tclan) {
  61. $k1=array_keys($tclan["g"]);
  62. //$tclan["m"][$k1[0]]=1;//глава
  63. $tclan["m"] = array_merge($tclan["m"], $tclan["v"], $tclan["s"], $tclan["g"]);
  64. foreach(array_keys($tclan["m"]) as $k) if (file_exists("online/".$k) && filesize("online/".$k)!=1) {
  65. $tmp=file("online/".$k);
  66. $tmp[0]=trim($tmp[0]);
  67. loadloc($tmp[0]);
  68. $tu=explode("|",$l_i[$tmp[0]][$k]["user"]);
  69. if ($tmp[0]!=$gate) addjournal($tmp[0],$k,"<a href=\"$PHP_SELF?sid=$k.".$tu[0]."&amp;ctele=".$tc."gate\">На ваш замок напали!</a>");
  70. }
  71. }
  72. }
  73.  
  74. // захват замка
  75. if (substr($loc,3,5)==".gate" && $b && $clan && $clanc!=$clan && strpos($d[0],":".$login.":")===false) {
  76. if ($clanc) $tclan=unserialize(implode("",file("../clans/".$clanc))); else $tclan=0; // сообщ. о захвате замка
  77. if ($tclan) {
  78. $k1=array_keys($tclan["g"]);
  79. $tclan["m"][$k1[0]]=1;//глава
  80. $tclan["m"] = array_merge($tclan["m"], $tclan["v"], $tclan["s"]);
  81. foreach(array_keys($tclan["m"]) as $k) if (file_exists("online/".$k) && filesize("online/".$k)!=1) {
  82. $tmp=file("online/".$k);
  83. $tmp[0]=trim($tmp[0]);
  84. loadloc($tmp[0]);
  85. $tu=explode("|",$l_i[$tmp[0]][$k]["user"]);
  86. addjournal($tmp[0],$k,"Ваш замок захватил клан ".$clan."!");
  87. }
  88. }
  89. if ($clanc) $d[0]=substr($d[0],0,strpos($d[0],"*"))."*".$clan."*()"."#".(time()+60*60*2)."#";
  90. else $d[0].="*".$clan."*()"."#".(time()+60*60*2)."#";
  91. addjournal($loc,$login,"Вы захватили замок!");
  92. $l_tt[$gate]["d"]=implode("|",$d);
  93. $l_tt[$gate]["save"]=1;
  94. }