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

Размер файла: 9.73Kb
<?php

// сылка воскрешение для админа
if ( $login == $g_admin || $gm == $gm_id )
{
		if ( $adm == 'smp' )
		{
				msg( "<p><input name=\"inp\" emptyok=\"true\"/>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=$(inp)\">teleport (loc)</a> <a href=\"#tele\"> [select]</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=mnn&inp=$(inp)\">money (count)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=filter&inp=$(inp)\">additem (filter)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=gdn\">god (" . intval( $loc_i[$loc][$login]["god"] ) .
						")</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=getibm\">[items,bank,magic]</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=view&inp=$(inp)\">view (field|login|loc|t)</a>
	<br/><input name=\"val\" emptyok=\"true\"/>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=adni&inp=$(inp)&val=$(val)&new=$(new)\">add (item,count,[bank|loc])</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=del&inp=$(inp)&val=$(val)&new=$(new)\">delete (item,count|all,[bank])</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=gtp&inp=$(inp)&val=$(val)\">get (field,index)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=unset&inp=$(inp)&val=$(val)\">unset (field,index)</a>
	<br/><input name=\"new\" emptyok=\"true\"/>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=stn&inp=$(inp)&val=$(val)&new=$(new)\">set (field,index,val)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=skillinfo\">[skill info]</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=locmail&inp=$(inp)\">mail_loc(email)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=reploc&inp=$(inp)\">load_bank(npc)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=resp&inp=$(inp)&val=$(val)&new=$(new)\">timer (id,min,max)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=guard&inp=$(inp)\">guard (1|0)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=setgclan&inp=$(inp)&val=$(val)\">setgclan (clan,glava)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=ban&inp=$(inp)\">CLEAR(skills=1)</a>
	<br/>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=stop&inp=$(inp)\">stop 5 min(msg)</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=play\">play (msg: " . intval( isset( $game["msg"] ) ) .
						")</a>
	<br/><a href=\"$PHP_SELF?sid=$sid&adm=blank\">blank world</a>
	\n</p>\n</card>\n<card id=\"tele\" title=\"Телепорт\">\n<p>\n<a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=_begin\">Начало</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x1092x474\">Банк</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x1284x393\">Кладбище</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x902x254\">Замок</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x1486x247\">Пещера</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x2169x273\">Ансалон</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x1778x493\">Крепость</a><br/><a href=\"$PHP_SELF?sid=$sid&adm=tln&inp=x2247x786\">Подземелье</a>",
						$loc, 0 );
		}

		if ( $adm == 'rsn' )
		{
				$char[1] = $char[2];
				$char[3] = $char[4];
				$char[8] = 0;
				$char[9] = 0;
				$loc_i[$loc][$login]["char"] = implode( "|", $char );
				$char = explode( "|", $loc_i[$loc][$login]["char"] );
				$loc_i[$loc][$login]["magic"] = preg_replace( '/:(\d+)/', ":0", $loc_i[$loc][$login]["magic"] );
				$loc_i[$loc][$login]["priem"] = preg_replace( '/:(\d+)/', ":0", $loc_i[$loc][$login]["priem"] );
		}
		if ( $adm == 'tln' )
				if ( $inp )
				{
						addnpc( $login, $loc, strtolower( $inp ) );
						$loc_c = explode( "|", $loc_tt[$loc]["d"] );
				}
		if ( $adm == 'mnn' && $inp )
				additem( $loc, "", $login, "i.money", $inp );
		if ( $adm == 'gtp' )
		{
				$field = explode( "|", $loc_i[$loc][$login][strtolower( $inp )] );
				msg( $field[strtolower( $val )] );
		}
		if ( $adm == 'unset' )
		{
				$field = explode( "|", $loc_i[$loc][$login][strtolower( $inp )] );
				unset( $field[strtolower( $val )] );
				$loc_i[$loc][$login][strtolower( $inp )] = implode( "|", $field );
				if ( $val == "items" )
						calcparam( $loc, $login );
		}
		if ( $adm == 'stn' )
		{
				$field = explode( "|", $loc_i[$loc][$login][strtolower( $inp )] );
				$field[strtolower( $val )] = $new;
				$loc_i[$loc][$login][strtolower( $inp )] = implode( "|", $field );
				calcparam( $loc, $login );
		}
		if ( $adm == 'adni' && $inp && $val )
		{
				if ( $new == "loc" )
						$to = "loc";
				else
						$to = $login;
				if ( $new != "bank" )
						$new = "items";
				additem( $loc, "", $to, $inp, $val . "items", $new );
		}
		if ( $adm == 'del' && $inp && $val )
		{
				if ( $new != "bank" )
						$new = "items";
				if ( $val == "all" )
						$loc_i[$loc][$login][$new] = "";
				else
						additem( $loc, $login, "", strtolower( $inp ), $val, "items", $new );
				calcparam( $loc, $login );
		}
		if ( $adm == 'gdn' )
		{
				if ( $loc_i[$loc][$login]["god"] )
						unset( $loc_i[$loc][$login]["god"] );
				else
						$loc_i[$loc][$login]["god"] = 1;
		}
		if ( $adm == 'blank' )
		{
				$f_all = 1;
				include "f_online.dat";
				include "f_blank.dat";
				msg( "Мир обновлен, все игроки переведены в оффлайн." );
		}
		if ( $adm == 'locsave' )
		{
				if ( $desc )
				{
						$file = fopen( "loc_f/" . $loc, "w" );
						fputs( $file, str_replace( '\"', '"', $desc ) );
						fclose( $file );
				}
				if ( $exits )
				{
						$dloc = str_replace( "\r\n", "|", $exits );
						if ( substr( $dloc, strlen( $dloc ) - 1 ) == "|" )
								$dloc = substr( $dloc, 0, strlen( $dloc ) - 1 );
						$loc_tt[$loc]["d"] = $dloc;
						$loc_tt[$loc]["save"] = 1;
						$loc_c = explode( "|", $loc_tt[$loc]["d"] );
				}
		}
		if ( $adm == 'view' )
		{
				echo $inp . ":<br/>";
				if ( $inp == "loc" )
						echo serialize( $loc_i[$loc] );
				else
						if ( $inp == "t" )
								echo serialize( $loc_tt[$loc]["t"] );
						else
								if ( $inp == "login" )
										echo serialize( $loc_i[$loc][$login] );
								else
										msg( $loc_i[$loc][$login][strtolower( $inp )] );
				msg( "<a href=\"$PHP_SELF?sid=$sid\">В игру</a>" );
		}
		if ( $adm == 'ban' )
		{
				$loc_i[$loc][$login]["items"] = "";
				$loc_i[$loc][$login]["bank"] = "";
				if ( $inp == 1 )
				{
						$loc_i[$loc][$login]["skills"] =
								"1|1|1|0|2|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0";
						$loc_i[$loc][$login]["magic"] = "";
				}
				calcparam( $loc, $login );
				msg( "Персонаж обнулен" );
		}
		if ( $adm == "locmail" )
		{
				if ( !$inp )
						$inp = "[email protected]";
				if ( @mail( $inp, "location: " . $loc, serialize( $loc_tt[$loc] ), "From: [email protected]\r\nReply-To: [email protected]\r\n" ) )
						addjournal( $loc, $login, "Текущая локация отправлена на " . $inp );
				else
						addjournal( $loc, $login, "Не удалось отправить письмо на " . $inp );
		}
		if ( $adm == 'getibm' )
				msg( "items: " . $loc_i[$loc][$login]["items"] . "<br/>bank: " . $loc_i[$loc][$login]["bank"] .
						"<br/>magic: " . $loc_i[$loc][$login]["magic"] . "<br/>skills: " . $loc_i[$loc][$login]["skills"] );
		if ( $adm == 'resp' )
		{
				addtimer( $loc, 0, $val, $inp . "|$val:$new" );
				addjournal( $loc, $login, "Таймер установлен" );
		}
		if ( $adm == 'skillinfo' )
		{
				msg( "skills = 0:str|1:dex|2:int|3:level|4:points|5:meditation|6:steal|7:animaltaming|8:hand|9:coldweapon|10:ranged|11:parring|12:uklon|13:magic|14:magic_resist|15:magic_uklon|16:regeneration|17:hiding|18:look|19:steallook|20:animallore|21:spirit|22:healing|23:alchemy|24:mine|25:smith|26:lumb|27:bow|28:stone|29:fish|30:food" );
		}
		if ( $adm == 'stop' )
		{
				$game["stop"] = time() + 180;
				if ( $inp )
						$game["stopmsg"] = 'Игра обновляется. зайдите позже';
				msg( "Остановка через 3 минут" );
		}
		if ( $adm == 'play' )
		{
				unset( $game["journal"] );
				unset( $game["info"] );
				unset( $game["stop"] );
				unset( $game["msg"] );
				msg( "Игра запущена" );
		}
		if ( $adm == 'guard' )
		{
				$d = explode( "|", $loc_tt[$loc]["d"] );
				if ( $inp )
						$d[1] = 1;
				else
						$d[1] = 0;
				$loc_tt[$loc]["d"] = implode( "|", $d );
				$loc_tt[$loc]["save"] = 1;
		}
		if ( $adm == 'filter' && $inp )
		{
				$stmp = "<p>Добавить предмет:";
				$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&adm=adni&inp=$fname&val=1\">" . $item[0] .
										"</a>";
								$count++;
						}
				closedir( $dh );
				msg( $stmp, "Предметы", 0 );
		}
		if ( $adm == 'setgclan' && $inp && $val )
		{
				if ( file_exists( "../clans/" . $inp ) )
						$tmp = unserialize( implode( "", file( "../clans/" . $inp ) ) );
				else
						msg( "нет клана" );
				if ( substr( $val, 0, 2 ) != "u." )
						$val = "u." . $val;
				$tmp["g"] = array( $val => "" );
				$file = fopen( "../clans/" . $inp, "w" );
				if ( $file !== false )
				{
						fputs( $file, serialize( $tmp ) );
						fclose( $file );
				}
				msg( "Глава клана установлен" );
		}
		if ( $adm == 'unset' && $to )
		{
				if ( isset( $loc_i[$loc][$to] ) )
				{
						unset( $loc_i[$loc][$to] );
						msg( "Объект удален" );
				}
				else
						msg( "Нет объекта" );
		}
		if ( $adm == 'reploc' && $inp )
		{
				if ( substr( $inp, 0, 2 ) !== "n." )
						msg( "npc должен начинаться на n. и быть в локации в вами" );
				if ( !isset( $loc_i[$loc][$inp] ) )
						msg( "рядом с вами нет npc с id " . $inp . " (регистр учитывается)" );
				include ( "npc/" . $inp );
				if ( gettype( $npc ) !== "array" )
						msg( "ошибка загрузки npc/" . $inp );
				$loc_i[$loc][$inp]["bank"] = $npc["bank"];
				msg( "Банк у $inp загружен из файла npc/$inp" );
		} //if($inp==1) $inp=$loc; if(!file_exists("loc_t/".$inp)) msg("Нет локации $inp"); copy("loc_t/".$inp,"loc_i/".$inp); msg("Локация восстановлена");}
}