<?php
if ($msg) {
if ($del && strpos($l_i[$loc][$login]["msgt"],"{".$del."}")!==false) $l_i[$loc][$login]["msgt"]=substr($l_i[$loc][$login]["msgt"],strpos($l_i[$loc][$login]["msgt"],"{".$del."}")+strlen("{".$del."}"));
if ($msg==1) { // основная страница
$l=explode('.',$sid);
$stmp="<p><a href=\"../forum/index.php?login=".$l[0]."&pass=".$l[1]."\">[форум]</a>|<a href=\"../chat/\">[чат]</a>";
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=add\">[добавить]</a>";
$kl=explode("|",$l_i[$loc][$login]["char"]);
$lk=explode("*",$kl[0]);
if ($lk[1]) $stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=klan\">[написать клану]</a>";
// текст
$del=0;
if ($l_i[$loc][$login]["msgt"]) {
$del=substr($l_i[$loc][$login]["msgt"],-11,-1);
$stmp.=preg_replace("/{[^}]+}/","",$l_i[$loc][$login]["msgt"])."<br/><a href=\"$PHP_SELF?sid=$sid&msg=clear&del=".$del."\">Очистить</a><br/>";
} else $stmp.="\n<br/>Сообщений нет";
// список онлайн
$stmp.="<br/>Онлайн:";
$count=0; $c1=0;$c2=0;
if ($l_i[$loc][$login]["msg"]) $keys=explode("|",$l_i[$loc][$login]["msg"]);
if (!$start) $start=0;
if ($keys) foreach ($keys as $i) if ($i) if (file_exists("online/".$i) && filesize("online/".$i)!=1) {
$count++;
if ($c1>=$start && $c1<$start+$g_list) $stmp.="\n<br/><anchor>".substr($i,2)."<go href=\"#menu\"><setvar name=\"id\" value=\"$i\"/></go></anchor>";
$c1++;
}
if ($count==0) $stmp.=" никого нет";
if (isset($tmp["m"][$login])) {
$tmp["m"];
$count++;}
if ($start) {$stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=1\">^ </a>";}
if ($start+$g_list<$c1) {if (!$start) $stmp.="\n<br/>"; $stmp.= "<a href=\"$PHP_SELF?sid=$sid&msg=1&start=".($start+$g_list)."\">+ (".($c1-$start-$g_list).")</a>";}
$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=off\">Оффлайн (".(count($keys)-$count).")</a>";
$stmp.="\n<br/><br/><a href=\"$PHP_SELF?sid=$sid&msg=help\">Помощь</a>";
// карта меню
$stmp.="\n</p>\n</card>\n<card id=\"menu\" title=\"[меню]\">\n<p><a href=\"#write\">[написать]</a><br/>[<a href=\"$PHP_SELF?sid=$sid&msg=up&id=$(id)\">вверх</a> | <a href=\"$PHP_SELF?sid=$sid&msg=down&id=$(id)\">вниз</a>]<br/>---<br/><a href=\"$PHP_SELF?sid=$sid&msg=del&id=$(id)\">Удалить</a>";
// карта написать
$stmp.="\n</p>\n</card>\n<card id=\"write\" title=\"Написать\">\n<p>\n<input name=\"text\" emptyok=\"true\" type=\"text\" maxlength=\"140\"/>\n<br/><select name=\"translit\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select><select name=\"mall\" multiple=\"true\" value=\"0\"><option value=\"1\">Всем</option></select>
<anchor>Отправить<go href=\"$PHP_SELF?sid=$sid\" method=\"post\">
<postfield name=\"msg\" value=\"write\"/>
<postfield name=\"id\" value=\"$(id)\"/>
<postfield name=\"mall\" value=\"$(mall)\"/>
<postfield name=\"del\" value=\"$del\"/>
<postfield name=\"text\" value=\"$(text)\"/>
<postfield name=\"translit\" value=\"$(translit)\"/>
</go></anchor>
";
//<a href=\"$PHP_SELF?sid=$sid&msg=write&id=$(id)&text=$(text)&translit=$(translit)&mall=$(mall)&del=$del\">Отправить</a>
}
if ($msg=='off') {
// список оффлайн
$c1=0; $c2=0; $count=0;
if ($l_i[$loc][$login]["msg"]) $keys=explode("|",$l_i[$loc][$login]["msg"]);
if ($keys) if (count($keys)-$count>0) {
$stmp.="Оффлайн (выберите, чтобы удалить):";
foreach ($keys as $i) if ($i) if (!file_exists("online/".$i) || filesize("online/".$i)==1) {
if ($c1>=$start && $c1<$start+$g_list) $stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=del&id=".$i."\">".substr($i,2)."</a>";
$c1++;
$count++;
}
}
if ($start) {$stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&msg=off\">^ </a>";}
if ($start+$g_list<$c1) {if (!$start) $stmp.="\n<br/>"; $stmp.= "<a href=\"$PHP_SELF?sid=$sid&msg=off&start=".($start+$g_list)."\">+ (".($c1-$start-$g_list).")</a>";}
if ($count==0) $stmp="Список оффлайн пуст";
}
if ($msg=='add') {
if (strlen($l_i[$loc][$login]["msg"])>500) msg("В контактах нет места, удалите кого-нибудь","Ошибка");
if (!$id) {
$stmp="";
foreach(array_keys($l_i[$loc]) as $i) if ($i!=$login && substr($i,0,2)=="u." && $l_i[$loc][$i]["god"]!="1") $stmp.="<br/><a href=\"$PHP_SELF?sid=$sid&msg=add&id=$i\">".substr($i,2)."</a>";
if ($stmp) $stmp="<p>Кого добавить:".$stmp; else $stmp="<p>Рядом с вами никого нет";
} else {
if (isset($l_i[$loc][$id])) {if(strpos($l_i[$loc][$login]["msg"],$id."|")===false) if (!$l_i[$loc][$login]["msg"]) $l_i[$loc][$login]["msg"]=$id; else $l_i[$loc][$login]["msg"].="|".$id; $stmp=substr($id,2)." добавлен";}
else $stmp=substr($id,2)." нет рядом с вами.";
}
}
if ($msg=='del') {
if (strpos($l_i[$loc][$login]["msg"],$id)===false) msg("В ваших контактах нет ".substr($id,2));
$l_i[$loc][$login]["msg"]=str_replace("|".$id,"",$l_i[$loc][$login]["msg"]);
$l_i[$loc][$login]["msg"]=str_replace($id,"",$l_i[$loc][$login]["msg"]);
$stmp=substr($id,2)." удален";
}
//***мод***//
if ($msg=="klan") {
$del=0;
if ($l_i[$loc][$login]["msgt"]) {
$del=substr($l_i[$loc][$login]["msgt"],-11,-1); }
$stmp.="\n<input name=\"text\" emptyok=\"true\" type=\"text\" maxlength=\"140\"/>\n<br/><select name=\"t\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select>
<anchor>Отправить<go href=\"$PHP_SELF?sid=$sid\" method=\"post\">
<postfield name=\"msg\" value=\"write\"/>
<postfield name=\"klan\" value=\"1\"/>
<postfield name=\"text\" value=\"$(text)\"/>
<postfield name=\"del\" value=\"".$del."\"/>
<postfield name=\"t\" value=\"$(t)\"/>
</go></anchor>";
}
if ($klan) {
$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 (!$text) msg("Нет текста для отправки");
if (strpos($text,"/g.php?sid=")!==false) $text=substr($text,0,strpos($text,"/g.php?sid="));
if ($t) {include "f_translit.dat"; $text=trans($text);}
// UTF-8 русские буквы
$s=$text;
$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);
$text=$s;
//$text = iconv("cp1251","Utf-8",$text);ceнeшaль-3,ceньop-4,вaccaл-2,нeoфит
//соединяем массивы
$arTemplates = array_merge($tmp["m"], $tmp["v"], $tmp["s"], $tmp["g"]);
$keys=array_keys($arTemplates);
if ($keys) foreach ($keys as $i) if ($i && $i!=$login) if (file_exists("online/".$i) && filesize("online/".$i)!=1 && ($id==$i || $klan)) {
$tmp=file("online/".$i);
$tmp[0]=str_replace("\n","",$tmp[0]);
$tmp[0]=str_replace("\r","",$tmp[0]);
loadloc($tmp[0]);
if (!isset($l_i[$tmp[0]][$i])) if ($klan) continue; else msg("В игре нет данных ".substr($i,2),"Ошибка");
// if (strpos($l_i[$tmp[0]][$i]["msg"],$login)===false) if ($mall) continue; else msg("Вы не добавлены в контакты у ".substr($i,2).", попросите его это сделать, иначе не сможете отправлять сообщения.");
$l_i[$tmp[0]][$i]["msgt"]=substr($l_i[$tmp[0]][$i]["msgt"].="<br/><b>".substr($login,2).":</b> ".strip_tags($text)."{".time()."}",-500);
//if (!$klan) {$stmp="Сообщение для ".substr($id,2)." отправлено"; break;}
}
if (!$stmp) $stmp="Сообщение для клана отправлено";
}
//***мод***//
if ($msg=='write') {
if (!$mall && (!file_exists("online/".$id) || filesize("online/".$id)==1)) msg(substr($id,2)." сейчас не в игре, оправлять сообщения можно только тем кто онлайн");
if (!$text) msg("Нет текста для отправки");
if (strpos($text,"/g.php?sid=")!==false) $text=substr($text,0,strpos($text,"/g.php?sid="));
if ($translit) {include "f_translit.dat"; $text=trans($text);}
// UTF-8 русские буквы
$s=$text;
$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);
$text=$s;
$keys=explode("|",$l_i[$loc][$login]["msg"]);
if ($keys) foreach ($keys as $i) if ($i) if (file_exists("online/".$i) && filesize("online/".$i)!=1 && ($id==$i || $mall)) {
$tmp=file("online/".$i);
$tmp[0]=str_replace("\n","",$tmp[0]);
$tmp[0]=str_replace("\r","",$tmp[0]);
loadloc($tmp[0]);
if (!isset($l_i[$tmp[0]][$i])) if ($mall) continue; else msg("В игре нет данных ".substr($i,2),"Ошибка");
if (strpos($l_i[$tmp[0]][$i]["msg"],$login)===false) if ($mall) continue; else msg("Вы не добавлены в контакты у ".substr($i,2).", попросите его это сделать, иначе не сможете отправлять сообщения.");
$l_i[$tmp[1]][$i]["msg"]=substr($l_i[$tmp[0]][$i]["msgt"].="<br/>".substr($login,2).": ".strip_tags($text)."{".time()."}",-500);
if (!$mall) {$stmp="Сообщение для ".substr($id,2)." отправлено"; break;}
$source = fread($file, 195000);
fclose($file);
$log=$login." -> ".$id.": (".date("d/m Y H:i",time()).") ".$text."\r\n";
$log .= $source;
@fputs($file,$log);
@fclose($file);
}
if (!$stmp) $stmp="Сообщение для всех отправлено";
$source = fread($file, 195000);
fclose($file);
$log=$login." -> ".$id.": (".date("d/m Y H:i",time()).") ".$text."\r\n";
$log .= $source;
@fputs($file,$log);
@fclose($file);
}
if ($msg=="up" || $msg=="down") include "f_msgm.dat";
if ($msg=='help') {
$stmp="Вы можете отправлять текстовые сообщения только игрокам, находящимся в игре. Причем вы должны быть добавлены у них в контактах тоже. Если вам придет новое сообщение, вы увидите спец. ссылку на игровом экране.";
}
if($msg!='clear') msg($stmp."<br/><a href=\"$PHP_SELF?sid=$sid&msg=1\">Контакты</a>","Контакты",0);
}