View file game/1/f_mod.dat

File size: 22.1Kb
<?php
//if ($login=="u.halfer" || $login=="u.komodoensi" || $login=="u.") {
if ($mod=='smp') {
	$tc=explode("|",$l_i[$loc][$login]["char"]);
	$tw=explode("|",$l_i[$loc][$login]["war"]);

 msg ("
1. <a accesskey=\"1\" href=\"#say\">Сказать всем</a><br/>
2. <a accesskey=\"2\" href=\"#pers\">Персонаж</a><br/>
3. <a accesskey=\"3\" href=\"#tele\">Телепорт</a><br/>
4. <a accesskey=\"4\" href=\"#sum\">Призвать</a><br/>
5. <a accesskey=\"5\" href=\"#it\">Предмет</a><br/>
6. <a accesskey=\"6\" href=\"$PHP_SELF?sid=$sid&use=$use&mod=res\">Воскреснуть</a><br/>
7. <a accesskey=\"7\" href=\"$PHP_SELF?sid=$sid&mod=gdn\">бог (".intval($l_i[$loc][$login]["god"]).")</a><br/>
8. <a accesskey=\"8\" href=\"#loc\">Работа с локациями</a>(не работает)


</p></card><card id=\"sum\" title=\"Призвать\"><p>
<input name=\"tsum\" emptyok=\"true\" type=\"text\" value=\"n.c.orc:1:1\"/><br/>
<anchor>[призвать]<go href=\"$PHP_SELF?sid=$sid&use=$use&mod=sum\" method=\"post\">
<postfield name=\"tsum\" value=\"$(tsum)\"/>
<postfield name=\"tsi\" value=\"$(tsi)\"/>
<postfield name=\"tso\" value=\"$(tso)\"/>
<postfield name=\"tr\" value=\"$(tr)\"/>
<postfield name=\"tqn\" value=\"$(tqn)\"/>
</go></anchor>(id_name_weapon:count:follow)
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=listid\">[Список id]</a>
<br/><select name=\"tr\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select>
<br/>Предметы (например: i.money:2000|i.w.s.short:1): <input name=\"tsi\" emptyok=\"true\" type=\"text\" value=\"\"/>
<br/>При освежевании: <input name=\"tso\" emptyok=\"true\" type=\"text\" value=\"\"/>
<br/><br/>Сделать NPC мирным (диалог при найме | при отказе | в локации, куда надо отвести | id локации | отдать предметы: i.money:2000|i.w.s.short:1 | не разговаривать, если нет предмета | id предмета) : <input name=\"tqn\" emptyok=\"true\" type=\"text\" value=\"\"/>
<br/>Обязательны только диалоги при найме и отказе (учтите, с обеих сторон от | должны быть пробелы).

</p></card><card id=\"it\" title=\"Предмет\"><p>
<input name=\"tit\" emptyok=\"true\" type=\"text\" value=\"i.w.\"/>
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=filter&inp=$(tit)\">Список (id)</a>
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=geti&inp=$(tit)\">Артефакт (id_master_..am..mod:count:npc)</a>
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=getms&inp=$(tit)\">Свиток призыва (id_name)</a>
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=listit\">[помощь]</a>

</p></card><card id=\"pers\" title=\"Персонаж\"><p>
Имя: <input name=\"name\" emptyok=\"true\" type=\"text\" value=\"".$tc[0]."\"/>
Описание: <input name=\"sdesc\" emptyok=\"true\" type=\"text\" value=\"Opisanie otsutstvuet\"/>
<br/><select name=\"translit\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select>
<br/>Жизнь: <input name=\"slife\" emptyok=\"true\" value=\"".$tc[1]."\"/>
<br/>Мана: <input name=\"smana\" emptyok=\"true\" value=\"".$tc[3]."\"/>
<br/>Меткость: <input name=\"shit\" emptyok=\"true\" value=\"".$tw[0]."\"/>%
<br/>Скорость: <input name=\"sspeed\" emptyok=\"true\" value=\"".$tw[3]."\"/> сек
<br/>Урон min: <input name=\"sdmin\" emptyok=\"true\" value=\"".$tw[1]."\"/>
<br/>Урон max: <input name=\"sdmax\" emptyok=\"true\" value=\"".$tw[2]."\"/>
Чем бьет: <input name=\"sweap\" emptyok=\"true\" type=\"text\" value=\"".$tw[12]."\"/>
<br/>Броня: <input name=\"sarm\" emptyok=\"true\" value=\"".$tw[5]."\"/>
<br/>Сопр.магии: <input name=\"sres\" emptyok=\"true\" value=\"".$tw[10]."\"/>%
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=set&name=$(name)&translit=$(translit)&slife=$(slife)&shit=$(shit)&sspeed=$(sspeed)&sdmin=$(sdmin)&sdmax=$(sdmax)&sarm=$(sarm)&sres=$(sres)&sweap=$(sweap)&smana=$(smana)&sdesc=$(sdesc)\">Отправить</a>

</p></card><card id=\"say\" title=\"Say all\"><p>
<input name=\"text\" emptyok=\"true\" type=\"text\" maxlength=\"140\"/>\n<br/><select name=\"translit\" multiple=\"true\" value=\"1\"><option value=\"1\">Транслит</option></select>
<br/><anchor>Отправить<go href=\"$PHP_SELF?sid=$sid&use=$use&mod=say\" method=\"post\">
<postfield name=\"text\" value=\"$(text)\"/>
<postfield name=\"translit\" value=\"$(translit)\"/>
</go></anchor>

</p></card><card id=\"loc\" title=\"блокировка локаций\"><p>
Закрыть локации(через пробел):
<input name=\"text\" emptyok=\"true\" type=\"text\" maxlength=\"140\" value=\"qv,qv1,qv2\"/>\n<br/>
для игроков:<br/>
от <input name=\"min\" emptyok=\"true\" type=\"text\" maxlength=\"140\" value=\"\"/><br/>
до <input name=\"max\" emptyok=\"true\" type=\"text\" maxlength=\"140\" value=\"\"/> уровня<br/>
<select name=\"t\" title=\"time\">
<option value=\"0.30\">30 мин</option>
<option value=\"1\">1 час</option>
<option value=\"2\">2 часа</option>
<option value=\"3\">3 часа</option>
<option value=\"5\">5 часов</option>
</select><br/>
<br/><anchor>Отправить<go href=\"$PHP_SELF?sid=$sid&use=$use&mod=\" method=\"post\">
<postfield name=\"text\" value=\"$(text)\"/>
<postfield name=\"t\" value=\"$(t)\"/>
<postfield name=\"min\" value=\"$(min)\"/>
<postfield name=\"max\" value=\"$(max)\"/>
</go></anchor><br/>
если поле пустое то оно не считаетса, тоисть если только заполнено поле до какого левела то выше этого уровня игроки не смогут зайти в локацию

</p></card><card id=\"tele\" title=\"Teleport\"><p>
<input name=\"to\" emptyok=\"true\" type=\"text\" maxlength=\"140\"/>
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=$(to)\">Teleport(loc или id:loc)</a>
<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=portal&to=$(to)\">Портал(loc)</a><br/><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=qv\">База</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x1011x396\">Сев.вор</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x1259x510\">Вост.вор</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x1173x603\">Южн.вор</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x1284x393\">Кладбище</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x1476x277\">Пещера</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x1884x246\">Ансалон</a><br/>
<a href=\"$PHP_SELF?sid=$sid&use=$use&mod=tele&to=x147x1227\">Остров центр</a>

",$loc);
	}
	if ($id=='loc') {
	$l="yyy";
	$file=fopen("./blok/m_loc.inc","a+");@fputs($file,$l);@fclose($file);

	
	}
	if ($mod=='ban') { $l_i[$loc][$to]['ban']=time()+86400;}
	if ($mod=='gdn') {if ($l_i[$loc][$login]["god"]) unset($l_i[$loc][$login]["god"]); else $l_i[$loc][$login]["god"]=1;}

	if ($mod=="say") {
	if (!$text) msg("Нет текста для отправки");
	$text=tsrus($text);
	if ($translit) {include "f_translit.dat"; $text=trans($text);}
	
	$tl=array();
	$dh = opendir("online"); 
	while (($fname = readdir($dh))!== false) if ($fname!="." && $fname!=".." && $fname!="1.htaccess" && $fname!=".htaccess") {
		$tmp=file("online/".$fname);
		$tmp=trim($tmp[0]);
		if (!isset($tl[$tmp])) {$tl[$tmp]="1"; loadloc($tmp); addjournal($tmp,"all","Всем внимание: ".$text);
///////////////////////////////////////////////////////////////////////////
	$log="логин: ".$login."|Say: ".$text."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
		}
		}
	closedir($dh);
	}

if ($mod=='tele') {
	if (strpos($to,":")!==false) {
		$to=explode(":",$to);
		
		if (!isset($l_i[$loc][$to[0]])) msg("Рядом с вами нет существ с id ".$to[0].", кот. можно телепортировать");
		if (!file_exists("l_i/".$to[1])) msg("Локации с id ".$to[1]." не существует");
		if (substr($to[0],0,2)=="n.") {addnpc($to[0],$loc,strtolower($to[1]));} 
		elseif(substr($to[0],0,2)=="u.halfer") { 
		addnpc($to[0],$loc,strtolower($to[1]));  $file = fopen ("online/".$to[0], "w"); fputs($file,$to[1]."\n".time());fclose($file);}
		else msg ("Телепортировать можно только NPC или игроков"); 
		 
///////////////////////////////////////////////////////////////////////////
	$log="логин: ".$login."|teleport: ".$to[0].":".$to[1]."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
	//@mail("[email protected]", "qv teleport ".$to[0].":".$to[1], date("d/m Y H:i",time()));
	} else {

			if ($loc=="qv") foreach($loc_i[$loc] as $k=>$val) if (substr($k,0,2)=="n.") addnpc($k,$loc,strtolower($to)); 
			addnpc($login,$loc,strtolower($to)); 
			$loc_c=explode("|",$loc_tt[$loc]["d"]);
			
///////////////////////////////////////////////////////////////////////////
	$log="|логин: ".$login."|teleport: ".$to."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
			}
	}

if ($mod=='portal') {
	if (!file_exists("l_i/".$to)) msg("Локации с id $to не существует");
	if ($to=="x1087x543" || $to=="x1080x539" || $to=="x1087x528" || $to=="x1080x532") msg("В таверну нельзя телепортироваться");
	$l_i[$loc]["i.s.portal_".$to]="портал телепортации|0|".(time()+3*60);	// 3 минуты
	addjournal($loc,"all",$char[0]." создал портал телепортации");
///////////////////////////////////////////////////////////////////////////
	$log="|логин: ".$login."|port: ".$to."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
	}

if ($mod=="set") {
	if (!$name) msg("Нет имени");
	$tc=explode("|",$l_i[$loc][$login]["char"]);
	if ($translit) {include "f_translit.dat"; $name=trans($name); $sweap=trans($sweap); $sdesc=trans($sdesc);}
	if ($sdesc) $l_i[$loc][$login]["qvi"]=tsrus($sdesc); else unset($l_i[$loc][$login]["qvi"]);
	$tc[0]=tsrus($name);
	$tc[1]=$slife;
	$tc[2]=$slife;
	$tc[3]=$smana;
	$tc[4]=$smana;
	$l_i[$loc][$login]["char"]=implode("|",$tc);

	$tc=explode("|",$l_i[$loc][$login]["war"]);
	$tc[0]=$shit;
	$tc[1]=$sdmin;
	$tc[2]=$sdmax;
	$tc[3]=$sspeed;
	$tc[5]=$sarm;
	$tc[10]=$sres;
	$tc[11]=$sres;
	$tc[12]=tsrus($sweap);
	$l_i[$loc][$login]["war"]=implode("|",$tc);
	//@mail("[email protected]", "qv set ".$name.": ".$l_i[$loc][$login]["war"], date("d/m Y H:i",time()));
//////////////////////////////////////////////////////////////////////////////
 	$log="логин: ".$login."|set: ".$name.":".$l_i[$loc][$login]["war"]."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
}
if ($mod=="sum") {
	if (substr($tsum,0,4)!="n.c." && substr($tsum,0,4)!="n.a." && substr($tsum,0,4)!="n.g.") msg("Призывать можно только на n.c. и n.a.");
	$npc="";
	$tsum=explode(":",$tsum);
	if (!$tsum[1]) $tnum=1; else $tnum=$tsum[1];
	if ($tnum>10) $tnum=10;
	$tsn=""; $tsq="";
	if (strpos($tsum[0],"_")!==false) {$tsn=substr($tsum[0],strpos($tsum[0],"_")+1);$tsum[0]=substr($tsum[0],0,strpos($tsum[0],"_"));}
	if (strpos($tsn,"_")!==false) {$tsq=substr($tsn,strpos($tsn,"_")+1);$tsn=substr($tsn,0,strpos($tsn,"_"));}
	$tfollow=$tsum[2];
	$tsum=$tsum[0];
	@include("npc/".$tsum);
	if (!$npc) msg("Существа с id=$tsum не существует");
	if ($tr && ($tsq || $tsn || $tqn)) {include "f_translit.dat"; $tsq=trans($tsq);}
	if ($tsq) {
		$tsq=trans($tsq);
		$tsq=tsrus($tsq);
		if (!$tsq) msg("Нет названия оружия");
		$twar=explode("|",$npc["war"]);
		$twar[12]=$tsq;
		$npc["war"]=implode("|",$twar);
		}
	if ($tsn) {
		$tsn=tsrus($tsn);
		$tsn=trans($tsn);
		$tc=explode("|",$npc["char"]);
		if (!$tsn) msg("Нет имени");
		$tc[0]=$tsn;
		$npc["char"]=implode("|",$tc);
		}
	if ($tsi) $npc["items"]=$tsi;
	if ($tso) $npc["osvej"]=$tso;
	if ($tqn) {
		$tsn.=" | ".$tqn;
		$tqn = explode(" | ",$tqn);
		if (!$tqn[0]) msg("Задайте текст, кот. будет показан при согласии проводить NPC");
		if (!$tqn[1]) msg("Задайте текст, кот. будет показан при отказе проводить NPC");
		if ($tqn[3] && !$tqn[2]) msg("Если указали локацию куда привести, то нужен и текст, кот. будет показан при разговоре в этой локации");
		if ($tqn[3] && !file_exists("l_i/".$tqn[3])) msg("Локации ".$tqn[3].", куда надо проводить NPC не существует");

		if ($tr) {if($tqn[0]) $tqn[0]=trans($tqn[0]); if($tqn[1]) $tqn[1]=trans($tqn[1]); if($tqn[2]) $tqn[2]=trans($tqn[2]); if($tqn[5]) $tqn[5]=trans($tqn[5]);}
		$tqn[0]=tsrus($tqn[0]);
		$tqn[1]=tsrus($tqn[1]);
		$tqn[2]=tsrus($tqn[2]);
		$tqn[5]=tsrus($tqn[5]);

		$npc["in"]=$tqn[0];
		$npc["out"]=$tqn[1];
		if ($tqn[2]) $npc["ok"] = $tqn[3]." | ".$tqn[2]." | ".$tqn[4];
		if ($tqn[5] && $tqn[6]) $npc["nspeak"] = $tqn[5]." | ".$tqn[6];
		$l_i[$loc]["n.q.".rand(99,9999)]=$npc;
		} else {
			$npc["owner"]=$login."|";
			if ($tfollow) $npc["owner"].=$login;
			$npc["owner"].="||0";
			for($i=0;$i<$tnum;$i++) $l_i[$loc][$tsum.".".rand(99,9999)]=$npc;
			}
//////////////////////////////////////////////////////////////////////////////////////
 	$log="логин: ".$login."|summon: ".$tsum.":".$tnum.":".$tfollow."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
 //@mail("[email protected]", "qv summon ".$tsum.":".$tnum.":".$tfollow." ".$tsn, date("d/m Y H:i",time()));
	}

if ($mod=="listid") {
	$stmp="Список id:";
	$dh = opendir("npc"); 
	while (($fname = readdir($dh))!== false) if ($fname!="." && $fname!=".." && $fname!="1.htaccess" && $fname!=".htaccess") {
		if (substr($fname,0,4)=="n.c." || substr($fname,0,4)=="n.a.") $stmp.="<br/>".$fname;
		}
	closedir($dh);
	msg($stmp);
	}

if ($mod=="res") {
	$char[1]=$char[2];$char[3]=$char[4];$char[8]=0;$char[9]=0;$l_i[$loc][$login]["char"]=implode("|",$char);
/////////////////////////////////////////////////////////////////////////////////////////
 	$log="логин: ".$login."|воскрешение|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
	}

if ($mod=="calc") {
	unset($l_i[$loc][$login]["qvi"]);
	calcparam($loc,$login);
	}

if ($mod=='filter' && $inp) {
	$stmp="<p>Кол-во: <input name=\"num\" format=\"*N\" maxlength=\"2\" value=\"1\"/>";
	$dh = opendir("items/"); 
	while (($fname = readdir($dh))!== false) if ($fname!="." && $fname!=".." && substr($fname,0,strlen($inp))==$inp) {
		$item=explode("|",implode("",file("items/".$fname)));
		$stmp.="\n<br/><a href=\"$PHP_SELF?sid=$sid&use=$use&mod=add&item=$fname&num=$(num)\">".$item[0]."</a>";
		$count++;
		}
	closedir($dh);
	msg($stmp,"Предметы",0);
	} 

if ($mod=='add' && $item) {
	additem($loc,"",$login,$item,$num);
///////////////////////////////////////////////////////////////////////////////////////////
	$log="|логин: ".$login."|additem: ".$item."|количество: ".$num."|локация: ".$loc."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
	//@mail("[email protected]", "qv add ".$item.":".$num, date("d/m Y H:i",time()));
	}

if ($mod=='geti' && $inp) {
	$arr=explode(":",$inp);

	if (strpos($arr[0],"_")!==false) $fn=substr($arr[0],0,strpos($arr[0],"_")); else $fn=$arr[0];
	if (!file_exists("items/".$fn)) msg("Предмета с id ".$arr[0]." не существует");

	if (strpos($arr[0],"..")!==false) {
		if (substr($arr[0],0,4)!="i.a." && substr($arr[0],0,4)!="i.w.") msg("Создавать артефакты можно только на основе одежды i.a. или оружия i.w.");
		if (strpos($arr[0],"_")===false) msg("В артефактах с самоцветами обязательно надо указать имя мастера, любое слово англ. буквами.");
		$xF = preg_match_all("/\.\.(\w\w)/",$arr[0],$regF);
		for($j=0;$j<$xF;$j++) if (!file_exists("items/i.i.".$regF[1][$j])) msg("Самоцвет ".$regF[1][$j]." не существует");
		}

	if (strpos($arr[0]," ")!==false) msg("В id не должно быть пробелов");
	if (!$arr[1]) msg("Надо указать количество count");
	
	if ($arr[2] && ((substr($arr[2],0,2)!="n." && substr($arr[2],0,2)!="u.") || !isset($l_i[$loc][$arr[2]]))) msg("Третьим параметром должен быть id NPC или игрока рядом с вами, учитывая регистр, которому передать предмет. Если не указано, то себе.");

	if (!$arr[2]) additem($loc,"",$login,$arr[0],$arr[1]);	else {additem($loc,"",$arr[2],$arr[0],$arr[1]); addjournal($loc,$login,"Предмет ".$arr[0].":".$arr[1]." добавлен к NPC ".$arr[2]);}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	$log="|логин: ".$login."|additem: ".$inp."|локация: ".$loc."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
 //@mail("[email protected]", "qv addi ".$inp, date("d/m Y H:i",time()));
	}

if ($mod=='addi' && $inp) {
	$arr=explode(":",$inp);
	if (strpos($arr[0],"_")!==false) $fn=substr($arr[0],0,strpos($arr[0],"_")); else $fn=$arr[0];
	if (!file_exists("items/".$fn)) msg("Предмета с id ".$arr[0]." не существует");
	if (!$arr[2] || (substr($arr[2],0,2)!="n." && substr($arr[2],0,2)!="u.") || !isset($l_i[$loc][$arr[2]])) msg("Третьим параметром должен быть id NPC или игрока рядом с вами, учитывая регистр");

	additem($loc,"",$arr[2],$arr[0],$arr[1]);
	addjournal($loc,$login,"Предмет ".$arr[0].":".$arr[1]." добавлен к NPC ".$arr[2]);
/////////////////////////////////////////////////////////////////////////////////////////////////
 	$log="логин: ".$login."|add NPC: ".$inp."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
	//@mail("[email protected]", "qv addi NPC ".$inp, date("d/m Y H:i",time()));
 }

if ($mod=='getms' && $inp) {
	if (substr($inp,0,4)!="n.c." && substr($inp,0,4)!="n.a.") msg("Свитки призыва можно создавать только на основе id монстров или животных, т.е. n.c.xxx или n.a.xxx");
	$inp=preg_replace('/([^.A-z])/',"",$inp);
	if (strpos($inp,"_")!==false) $id=substr($inp,0,strpos($inp,"_")); else $id=$inp;
	if (!file_exists("npc/".$id)) msg("id ".$id." не существует");
	additem($loc,"",$login,"i.ms_".$inp,1);
////////////////////////////////////////////////////////////////////////////////////////////////
 	$log="логин: ".$login."|addms: ".$inp."|время: ".date("d/m Y H:i",time())."|юзер: ".getenv('HTTP_USER_AGENT')."|\r\n";
	$file=fopen("z_modlog.dat","a+");@fputs($file,$log);@fclose($file);
 //@mail("[email protected]", "qv addms ".$inp, date("d/m Y H:i",time()));
	}


if ($mod=='listit') msg("i.w. - оружие (i.w.s. - мечи, i.w.k. - ножи, i.w.r. - стрелковое и т.д.)
<br/>i.a. - броня (i.a.b. - на тело, i.a.h. - на голову и т.д.)
<br/>i.q. - квестовые предметы
<br/>i.f. - еда (i.f.b. - элексиры)
<br/>i.h. - охотничье трофеи
<br/>i.i. - самоцветы
<br/>i.m. - свитки
<br/>i.r. - руны
<br/>i.s. - стационарные (НЕ ИСПОЛЬЗОВАТЬ!)
<br/><br/>Если создаете артефакт, то обязательно указывать мастера (любое слово англ. буквами), для инкрустации доступны самоцветы: ag, am, az, mod, dy, hr, ku, ma, me, ne, ob, on, sa, zm (перед каждым самоцветом обязательно две точки, напр.: ..ag..am..az). Инкрустировать можно любое количество любых самоцветов (или ни одного, а только имя мастера), но не злоупотребляйте нестандартными артефактами, они должны быть редкими, обоснованными и логичными (в том числе по балансу).
<br/>Если указан третий параметр npc, то предмет добавляется NPC или игроку рядом с вами с таким id (регистр учитывается, а имя мастера и самоцветы можно не писать), например: i.money:2000:n.Lukas или i.w.s.p_Natan_:1:n.Lukas
<br/>Свиток призыва можно создать на основе id любого монстра (n.c.xxx) или животного (n.a.xxx) и при желании задать имя name, но только транслитом.
");

if ($mod=='online') {	
	if (time()>$game["lastai"]+240) include "f_online.dat";	// обновим список
	$g_list=10;
	$stmp="";  if (!$start) $start=0; $i=-1;
	$dh = opendir("online/"); 
	while (($fname = readdir($dh))!== false) if ($fname!="." && $fname!=".." && $fname!="1.htaccess" && $fname!=".htaccess") {
		$i++;
		if($i>=$start && $i<$start+$g_list) {
			$tmp = file("online/".$fname);
			if ($tmp[0]==".") continue;
			for($it=0;$it<2;$it++) {$tmp[$it]=str_replace("\n","",$tmp[$it]);$tmp[$it]=str_replace("\r","",$tmp[$it]);}
			if (!$tmp[0]) {@unlink("online/".$fname); $i--; continue;}
			loadloc($tmp[0]);
			if (isset($l_i[$tmp[0]][$fname])) {
				$tmp1=explode("|",$l_i[$tmp[0]][$fname]["char"]);
				if ($tmp1[9]=="0") $tmp1[9]="";
				$tmp3=@file("online/$fname");
				$tmp4=explode("\n",$tmp3[0]);
				$tmp5=explode(":||:",$l_i[$tmp[0]][$fname]["inf"]);
				$tt2=explode('|',$l_i[$tmp[0]][$fname]['skills']);
				$ur=0;
				for($g=0;$g<count($tt2);$g++) if ($g!=3) $ur+=$tt2[$g];
				$ur=round(($ur-5)*100/($g_attr+$g_skills));
	if ($fname!="u.halfer" && $fname!="u." && $fname!="u.") $stmp.="\n<br/>-----<br/><b>[".$ur."] ".$tmp1[0]."</b> ".$tmp1[9]."<br/>ip: ".$tmp5[0]."<br/>браузер: ".$tmp5[1]."<small><br/><a href=\"$PHP_SELF?sid=$sid&mod=tele&to=".$tmp4[0]."\">".$tmp4[0]."</a></small>";
				} else {$i--;@unlink("online/".$fname);}
			}
		}
	closedir($dh);

	if ($i>-1) $stmp="<p>Сейчас в игре ".($i+1)." (на этом сервере разрешено не более $g_max) игроков:".$stmp;
	if ($i>-1) {

		if ($start) {$stmp.= "\n<br/><a href=\"$PHP_SELF?sid=$sid&mod=online\">^ </a>";}
		if ($start+$g_list<$i+1) {if (!$start) $stmp.="\n<br/>"; $stmp.= "<a href=\"$PHP_SELF?sid=$sid&mod=online&start=".($start+$g_list)."\">+ (".($i+1+1-$start-$g_list).")</a>";}
		} else $stmp="<p>Сейчас в игре никого нет"; 

	//$stmp.= "\n<br/><br/><a href=\"f_site_list.php\">Список серверов</a><br/><br/><anchor>[Назад]<prev/></anchor>";

	msg($stmp,"Онлайн (Cервер ".implode("",file("server.dat")).")");

}
if ($mod=='loc') {
if  (!$text) msg('не указаны локации для блакировки!');
if  (!$t) msg('не указано врямя на которое блакируетса локация!');
if ($min>$max) msg('Не верно указанны значения уровней персонажа, минимальный уровень не может быть больше максимального!');

}

////транслит
function tsrus($s) {
	if (!$s) return $s;
	// UTF-8 русские буквы
	$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);
	return $s;
	}


//} else { msg("пошел на хуй гандон!"); }