<?php
// замковые функции
if ($ctele) {
loadloc($ctele);
if (!isset($l_tt[$ctele]) || substr($ctele,3)!=".gate") return;
$gate=$ctele;
} else $gate=substr($loc,0,4)."gate";
$d=explode("|",$l_tt[$gate]["d"]);
if (strpos($d[0],"*")===false) $clanc=""; else $clanc=substr($d[0],strpos($d[0],"*")+1,strrpos($d[0],"*")-strpos($d[0],"*")-1);
$char = explode("|",$l_i[$loc][$login]["char"]);
if (strpos($char[0],"*")===false) $clan=""; else $clan=substr($char[0],strpos($char[0],"*")+1,strrpos($char[0],"*")-strpos($char[0],"*")-1);
if (!$ctele && $char[8] && substr($loc,3)!=".in" && $clan!=$clanc && strpos($d[0],":".$login.":")===false) {addnpc($login,$loc,substr($gate,0,4)."in"); msg("Призрак не может находиться в не своем замке.");}
$arr=array("main","gate","tron","sklad");
if ($ctele) {
if ($clanc && $clanc==$clan) {// телепорт только если есть враги
$tc=substr($ctele,0,4);
foreach($arr as $i) {
loadloc($tc.$i);
if ($l_i[$tc.$i]) foreach(array_keys($l_i[$tc.$i]) as $k) if($k!=$login && substr($k,0,2)=="u.") {
$tchar=explode("|",$l_i[$tc.$i][$k]["char"]);
if (strpos($tchar[0],"*")===false) $tclan=""; else $tclan=substr($tchar[0],strpos($tchar[0],"*")+1,strrpos($tchar[0],"*")-strpos($tchar[0],"*")-1);
if ($tclan!=$clanc && strpos($d[0],":".$k.":")===false) {addnpc($login,$loc,$ctele); return;}
}
}
}
return;
}
if (substr($loc,3,3)==".in") {include "f_castlein.dat"; return;}
// заперто/открыто
if (substr($loc,3)!=".in") {
if (strpos($d[0],"{")===false) $timez=0; else $timez=substr($d[0],strpos($d[0],"{")+1,strrpos($d[0],"}")-strpos($d[0],"{")-1);
if (time()<$timez) {addnpc($login,$loc,substr($gate,0,4)."in"); msg("Ворота замка заперты изнутри, их могут открыть только хозяева замка, либо стражники откроют сами, когда истечет максимальный срок.");}
else if (strpos($d[0],"#")===false) { // открываем, время истекло
if ($timez!=0) $d[0]=substr($d[0],0,strpos($d[0],"{")).substr($d[0],strpos($d[0],"}")+1);
$d[0].="#".($timez+60*60*8)."#";
$l_tt[$gate]["d"]=implode("|",$d);
$l_tt[$gate]["save"]=1;
}
}
//---
$b=1;
if (substr($loc,3)==".gate" && $clanc && $clanc!=$clan && strpos($d[0],":".$login.":")===false) { // вход
$tc=substr($loc,0,4);
$b=1;
foreach($arr as $i) {
loadloc($tc.$i);
if ($l_i[$tc.$i]) foreach(array_keys($l_i[$tc.$i]) as $k) if($k!=$login) {
$tchar=explode("|",$l_i[$tc.$i][$k]["char"]);
if (strpos($tchar[0],"*")===false) $tclan=""; else $tclan=substr($tchar[0],strpos($tchar[0],"*")+1,strrpos($tchar[0],"*")-strpos($tchar[0],"*")-1);
if (substr($k,0,4)=="n.o." || (substr($k,0,2)=="u." && !$tchar[8] && ($tclan==$clanc || strpos($d[0],":".$k.":")!==false))) $b=0;
}
}
$tclan=unserialize(implode("",file("../clans/".$clanc)));
if ($tclan) {
$k1=array_keys($tclan["g"]);
//$tclan["m"][$k1[0]]=1;//глава
$tclan["m"] = array_merge($tclan["m"], $tclan["v"], $tclan["s"], $tclan["g"]);
foreach(array_keys($tclan["m"]) as $k) if (file_exists("online/".$k) && filesize("online/".$k)!=1) {
$tmp=file("online/".$k);
$tmp[0]=trim($tmp[0]);
loadloc($tmp[0]);
$tu=explode("|",$l_i[$tmp[0]][$k]["user"]);
if ($tmp[0]!=$gate) addjournal($tmp[0],$k,"<a href=\"$PHP_SELF?sid=$k.".$tu[0]."&ctele=".$tc."gate\">На ваш замок напали!</a>");
}
}
}
// захват замка
if (substr($loc,3,5)==".gate" && $b && $clan && $clanc!=$clan && strpos($d[0],":".$login.":")===false) {
if ($clanc) $tclan=unserialize(implode("",file("../clans/".$clanc))); else $tclan=0; // сообщ. о захвате замка
if ($tclan) {
$k1=array_keys($tclan["g"]);
$tclan["m"][$k1[0]]=1;//глава
$tclan["m"] = array_merge($tclan["m"], $tclan["v"], $tclan["s"]);
foreach(array_keys($tclan["m"]) as $k) if (file_exists("online/".$k) && filesize("online/".$k)!=1) {
$tmp=file("online/".$k);
$tmp[0]=trim($tmp[0]);
loadloc($tmp[0]);
$tu=explode("|",$l_i[$tmp[0]][$k]["user"]);
addjournal($tmp[0],$k,"Ваш замок захватил клан ".$clan."!");
}
}
if ($clanc) $d[0]=substr($d[0],0,strpos($d[0],"*"))."*".$clan."*()"."#".(time()+60*60*2)."#";
else $d[0].="*".$clan."*()"."#".(time()+60*60*2)."#";
addjournal($loc,$login,"Вы захватили замок!");
$l_tt[$gate]["d"]=implode("|",$d);
$l_tt[$gate]["save"]=1;
}