<?php
// камень гильдии
$tc=explode("|",$l_i[$loc][$login]["char"]);
if (strpos($tc[0],"*")===false) $clan=""; else $clan=substr($tc[0],strpos($tc[0],"*")+1,strrpos($tc[0],"*")-strpos($tc[0],"*")-1);
if ($clan && file_exists("../clans/".$clan)) $tmp=unserialize(implode("",file("../clans/".$clan))); else $tmp=array();
if (isset($tmp["g"][$login]) || isset($tmp["s"][$login])) { // гилдмастер
if ($to) {
if (substr($to,0,2)!="u." || !isset($l_i[$loc][$to])) msg("Приглашать в свой клан можно только игроков");
if ($to==$login) msg("Нельзя приглашать в клан самого себя");
$tc1=explode("|",$l_i[$loc][$to]["char"]);
if (strpos($tc1[0],"*")===false) $clan1=""; else $clan1=substr($tc1[0],strpos($tc1[0],"*")+1,strrpos($tc1[0],"*")-strpos($tc1[0],"*")-1);
if ($clan1==$clan && !$glava) msg($tc1[0]." и так в вашем клане");
if ($clan1 && !$glava || $glava && $clan1!=$clan) msg($tc1[0]." состоит в клане ".$clan1.", а приглашать в свой можно только тех, кто не состоит ни в одном клане");
// приглашаем...
if ($glava && isset($tmp["g"][$login])) {
$tmp["wg"][$to]="";
addjournal($loc,$to,$tc[0]." приглашает вас быть главой его клана");
addjournal($loc,$login,$tc1[0]." приглашен быть главой вашего клана, передайте ему камень гильдии, чтобы он использовал его на вас");
} else {
$tmp["w"][$to]="";
addjournal($loc,$to,$tc[0]." приглашает вас в свой клан");
addjournal($loc,$login,$tc1[0]." приглашен в ваш клан, передайте ему камень гильдии, чтобы он использовал его на вас");
}
$file = fopen ("../clans/".$clan, "w");
if ($file!==false) {fputs($file,serialize($tmp));fclose($file);}
} else {
if ($del && isset($tmp["g"][$login])) { // удаление из гильдии
$b=0;
if (isset($tmp["m"][$del])) {$b=1; unset($tmp["m"][$del]); addjournal($loc,$del,"Вы выгнаны из клана ".$clan."! При следующем логине надпись о вашем клане исчезнет");}
if (isset($tmp["s"][$del])) {$b=1; unset($tmp["s"][$del]); addjournal($loc,$del,"Вы выгнаны из клана ".$clan."! При следующем логине надпись о вашем клане исчезнет");}
if (isset($tmp["v"][$del])) {$b=1; unset($tmp["v"][$del]); addjournal($loc,$del,"Вы выгнаны из клана ".$clan."! При следующем логине надпись о вашем клане исчезнет");}
if (isset($tmp["w"][$del])) {$b=1; unset($tmp["w"][$del]);}
if (isset($tmp["wg"][$del])) {$b=1; unset($tmp["wg"][$del]);}
if ($b) {
$file = fopen ("../clans/".$clan, "w");
if ($file!==false) {fputs($file,serialize($tmp));fclose($file);}
msg("Вы выгнали из клана/удалили из рекрутов ".substr($del,2));
} else msg(substr($del,2)." нет в вашем клане");
}
if ($status && (isset($tmp["m"][$status]) || isset($tmp["s"][$status]) || isset($tmp["v"][$status])) && isset($tmp["g"][$login])){
$b=0;
//ОБЯЗАТЕЛЬНО сначала выдаем в журнал, а затем только меняем статус
if ($t=='m' && !isset($tmp["m"][$status])) addjournal($loc,$status,"Глава клана ".$clan." изменил ваш ранг на Неофит!");
if ($t=='s' && !isset($tmp["s"][$status])) addjournal($loc,$status,"Глава клана ".$clan." изменил ваш ранг на Сeнeшaль!");
if ($t=='v' && !isset($tmp["v"][$status])) addjournal($loc,$status,"Глава клана ".$clan." изменил ваш ранг на Вассал!");
if (isset($tmp["m"][$status]) && $t!='m') {$b=1; $tmp[$t][$status]=$tmp["m"][$status]; unset($tmp["m"][$status]); }
if (isset($tmp["s"][$status]) && $t!='s' && count($tmp["s"]<'2')) {$b=1; $tmp[$t][$status]=$tmp["s"][$status]; unset($tmp["s"][$status]); }
if (isset($tmp["v"][$status]) && $t!='v') {$b=1; $tmp[$t][$status]=$tmp["v"][$status]; unset($tmp["v"][$status]); }
if ($b) {
$file = fopen ("../clans/".$clan, "w");
if ($file!==false) {fputs($file,serialize($tmp));fclose($file);}
msg("Ранг у игрока ".substr($status,2)." успешно изменен");
} else msg("Не возможно изменить ранг");
}
if ($me && isset($tmp["g"][$login])) {
msg("
<select name=\"t\" title=\"\">
<option value=\"s\">[Сeнeшaль]</option>
<option value=\"v\">[Вaccaл]</option>
<option value=\"m\">[Нeoфит]</option>
</select><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&status=".$me."&t=$(t)\">сохранить</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&del=".$me."\">Выгнать</a>");
}
if ($info) { // инфо о клане
if ($write) {
if ($clear) $write=""; else {
if ($translit) {include "f_translit.dat"; $write=trans($write);}
// UTF-8 русские буквы
$s=$write;
$s=str_replace("\xd0\x81","Ё",$s);
$s=str_replace("\xd1\x91","ё",$s);
$s=preg_replace("/\xd0([\x90-\xbf])/e","chr(ord('\\1')+48)",$s);
$s=preg_replace("/\xd1([\x80-\x8f])/e","chr(ord('\\1')+112)",$s);
$s=str_replace('\\',"",$s);
$s=preg_replace('/([^ -}А-я#])|\$|"|\'|&/e',"",$s);
$s=str_replace("|","",$s);
$s=str_replace("<","",$s);
$s=str_replace(">","",$s);
$write=$s;
}
$tmp["i"]=$write;
$file = fopen ("../clans/".$clan, "w");
if ($file!==false) {fputs($file,serialize($tmp));fclose($file);}
msg("<small><b>Описание клана сохранено</b></small>");
}
msg("<small><b>описание клана:<br/><input name=\"write\" value=\"".$tmp["i"]."\"/><br/><select name=\"translit\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select><br/><a href=\"$PHP_SELF?sid=$sid&use=$use&info=1&write=$(write)&translit=$(translit)\">Ок</a></b></small>");
}
if (!$cadd) { // меню
$stmp="<p>[<a href=\"$PHP_SELF?sid=$sid&use=$use&cadd=1\">Пригласить</a>]";
if (isset($tmp["g"][$login])) $stmp.=" [<a href=\"$PHP_SELF?sid=$sid&use=$use&cadd=1&glava=1\">Сделать главой</a>]";
$stmp.=" [<a href=\"$PHP_SELF?sid=$sid&use=$use&cadd=1&info=1\">Инфо о клане</a> (<a href=\"$PHP_SELF?sid=$sid&use=$use&info=1&write=1&clear=1\">очистить</a>)]";
if ($tmp["m"] || $tmp["v"] || $tmp["s"] && isset($tmp["g"][$login])) {
if ($tmp["m"]) {$stmp.="<br/>Неофиты:";
if (!$start) $start=0;
$keys=array_keys($tmp["m"]);
for($i=$start;$i<count($keys) && $i<$start+$g_list;$i++) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&me=".$keys[$i]."\">".substr($keys[$i],2)."</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=i.guildstone&start=".($start+$g_list)."\">+</a>"; }
if ($tmp["s"]) {$stmp.="<br/>Сенешали:";
if (!$start) $start=0;
$keys=array_keys($tmp["s"]);
for($i=$start;$i<count($keys) && $i<$start+$g_list;$i++) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&me=".$keys[$i]."\">".substr($keys[$i],2)."</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=i.guildstone&start=".($start+$g_list)."\">+</a>"; }
if ($tmp["v"]) {$stmp.="<br/>Вассалы:";
if (!$start) $start=0;
$keys=array_keys($tmp["v"]);
for($i=$start;$i<count($keys) && $i<$start+$g_list;$i++) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&me=".$keys[$i]."\">".substr($keys[$i],2)."</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=i.guildstone&start=".($start+$g_list)."\">+</a>"; }
} elseif (isset($tmp["g"][$login])) $stmp.="<br/>В вашем клане, кроме вас, никого нет.";
if ($tmp["wg"] && isset($tmp["g"][$login])) {
$stmp.="<br/><br/>Ожидают, чтобы стать главой вашего клана:";
if (!$start) $start=0;
$keys=array_keys($tmp["wg"]);
for($i=$start;$i<count($keys) && $i<$start+$g_list;$i++) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&del=".$keys[$i]."\">".substr($keys[$i],2)."</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=i.guildstone&start=".($start+$g_list)."\">+</a>";
}
if ($tmp["w"] ) {
$stmp.="<br/><br/>Рекруты (ожидают вступления):";
if (!$start) $start=0;
$keys=array_keys($tmp["w"]);
for($i=$start;$i<count($keys) && $i<$start+$g_list;$i++) $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&del=".$keys[$i]."\">".substr($keys[$i],2)."</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=i.guildstone&start=".($start+$g_list)."\">+</a>";
} else $stmp.="<br/>Список рекрутов пуст.";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=i.guildstone\">^</a>";
msg($stmp);
}else $list='all'; // ниже выведем список
}
}else { // if (!$clan) ни в одном клане
if ($to) {
if (substr($to,0,2)!="u." || !isset($l_i[$loc][$to])) msg("Вы должны были выбрать игрока");
if (substr($to,0,2)==$login) msg("Нельзя выбирать самого себя");
$tc=explode("|",$l_i[$loc][$to]["char"]);
if (strpos($tc[0],"*")===false) $clan=""; else $clan=substr($tc[0],strpos($tc[0],"*")+1,strrpos($tc[0],"*")-strpos($tc[0],"*")-1);
if ($clan && file_exists("../clans/".$clan)) $tmp=unserialize(implode("",file("../clans/".$clan))); else $tmp=array();
if (!isset($tmp["g"][$to]) && !isset($tmp["s"][$to])) {msg("Выбирать можно только главу клана");}
if (!isset($tmp["w"][$login]) && !isset($tmp["wg"][$login])) msg("Вы не числитесь в списках рекрутов клана ".$clan.", обратитесь к главе этого клана");
// вступаем в клан $clan
if (isset($tmp["wg"][$login])) $b=1; else $b=0;
if ($b) {
unset($tmp["wg"][$login]);
$keys=array_keys($tmp["g"]);
$tmp["m"][$keys[0]]=$tmp["g"][$keys[0]];// бывший глава рядовым
unset($tmp["g"]); // удаляем старого главу клана
$tmp["g"][$login]=$p;
}else {
unset($tmp["w"][$login]);
$tmp["m"][$login]=$p;
}
$file = fopen ("../clans/".$clan, "w");
if ($file!==false) {fputs($file,serialize($tmp));fclose($file);}
$tc=explode("|",$l_i[$loc][$login]["char"]);
if(strpos($tc[0],"*")!==false) $tc[0]=substr($tc[0],0,strpos($tc[0],"*")-1);
$tc[0].=" *".$clan."*";
$l_i[$loc][$login]["char"]=implode("|",$tc);
if ($b) addjournal($loc,$to,$tc[0]." теперь глава вашего клана!"); else addjournal($loc,$to,$tc[0]." вступил в ваш клан!");
if ($b) msg("<small><b>Поздравляем, вы теперь глава клана ".$clan.", рекомендуем <a href=\"$PHP_SELF?sid=$sid&logout=1\">сохранить персонажа</a></b></small>"); else msg("<small><b>Поздравляем, вы зачислены в клан ".$clan.", рекомендуем <a href=\"$PHP_SELF?sid=$sid&logout=1\">сохранить персонажа</a></b></small>");
} else $list='all';
}//else msg("<small><b>Вы состоите в клане ".$clan.", чтобы использовать камень гильдии надо быть либо главой клана, либо не состоять ни в одном клане</b></small>");