Просмотр файла game/1/f_msg.dat

Размер файла: 9.98Kb
<?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]."&amp;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);
	}