Доступ к архиву

Переход в группу "Пользователь"

300.00
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

/id [Часть имени (3...20) / ID]

Статус
В этой теме нельзя размещать новые ответы.

SporTsmaN

Изучающий
Пользователь
Регистрация
16 Апр 2013
Сообщения
742
Лучшие ответы
0
Репутация
218
Привет всем. Хочу поделиться с вами уникальной и очень удобной командой такой как /id [Часть имени (3...20) / ID]. Функционал очень просто, вы можете найти до 5 совпадений в никах игроков. К примеру хотите найти у кого в ники есть такие символы как vasya, вводите /id vasya и вам покажет до 5 ников игроков у которых есть в нике такие символы. Если вы знаете сразу ID игрока, то вводите /id 100 и вам покажет всю информацию об игроке. Автор данной команды я. Так же прошу заметить, что вам придется немного её подкорректировать под свой мод (AFK, Уровень и т.д.).
PHP:
#define Offline "Игрок не найден."

CMD:id(playerid,params[])
{
    if(GetPVarInt(playerid,"[CMD]id") > gettime()) return SCM(playerid,COLOR_GREY,"Подожди...");
	new find_nick[20];
	if(sscanf(params,"s[20]",find_nick)) return SCM(playerid,COLOR_GREY,"Используй: /id [Часть имени (3...20) / ID].");
    SetPVarInt(playerid,"[CMD]id",gettime()+2);
	new giveplayerid = INVALID_PLAYER_ID,count,bool:nick_value,bool:offgame;
	//--------------------------------------------------------------------------
    for(new i = 0; i < strlen(find_nick); i++)
    {
		if(find_nick[i] >= '0' && find_nick[i] <= '9') nick_value = true;
		else
		{
		    nick_value = false;
		    break;
		}
    }
    //--------------------------------------------------------------------------
	if(nick_value == true) 
	{
	    giveplayerid = strval(find_nick);
	    if(!IsPlayerConnected(giveplayerid))
		{
			offgame = true;
			goto function;
		}
		ID_PlayerInfo(playerid,giveplayerid);
	    return true;
	}
	//--------------------------------------------------------------------------
	function:
	{
	    strinz = "Варианты: ";
	    foreach(Player,i)
	    {
	        if(Player[playerid][pAdmin] == 0 && Player[i][pAdmin] == 6) continue;
	        if(strfind(PlayerName(i),params,true) != -1)
	        {
	            format(zcmd_string,35,"%s[%d], ",PlayerName(i),i);
	            strcat(strinz,zcmd_string);
	            if(count++ == 6) break;
	        }
	    }
	    if(count > 0)
	    {
	        strdel(strinz,strlen(strinz)-2,strlen(strinz)); 
	        SendMes(playerid,COLOR_LIGHTBLUE,"%s",strinz);
	        return true;
	    }
	    if(offgame == true)
	    {
	        SCM(playerid,COLOR_GREY,Offline);
	        return true;
	    }
	}
    //--------------------------------------------------------------------------
    //sscanf(params,"u",giveplayerid);
    giveplayerid = ReturnUser(params);
	if(IsPlayerConnected(giveplayerid))
	{
	    if(Player[giveplayerid][pAdmin] == 6 && Player[playerid][pAdmin] == 0) SCM(playerid,COLOR_GREY,Offline);
		else ID_PlayerInfo(playerid,giveplayerid);
 	}
	else SCM(playerid,COLOR_GREY,Offline);
	return true;
}
stock ID_PlayerInfo(playerid,giveplayerid)
{
 	strinz = "";
	format(zcmd_string,65,"ID %d - %s | Уровень - %d | Ping - %d",giveplayerid, PlayerName(giveplayerid),Player[giveplayerid][pLevel],GetPlayerPing(giveplayerid));
	strcat(strinz,zcmd_string);
	if(OnlineAFK[giveplayerid] == true)
	{
	    new string[25];
	    if(Player[playerid][pAdmin] > 0) format(string,25," | AFK - %s",ConvertSeconds(AFK[giveplayerid]));
	    else format(string,25," | AFK - %s",AFK[giveplayerid] > 900 ? ("+15:00"):(ConvertSeconds(AFK[giveplayerid])));
		strcat(strinz,string);
	}
	if(Player[giveplayerid][pJailTime] > 0)
	{
		new jailds[20],jails;
		switch(Player[giveplayerid][pJailed])
		{
		    case 1: jailds = "КПЗ LSPD";
		    case 2: jailds = "КПЗ LVPD";
		    case 3: jailds = "КПЗ F.B.I.";
		    //case 4: jailds = "ФДМ";
		    case 5: jailds = "КПЗ Army";
		    case 6: jailds = "Модер-КПЗ";
	    }
    	jails = Player[giveplayerid][pJailTime];
		new Float:minutes = jails / 60,seconds = jails % 60;
		format(zcmd_string,144," | До выхода из %s %.0f мин %d сек.",jailds,minutes,seconds);
		strcat(strinz,zcmd_string);
	}
	else strcat(strinz,".");
    SCM(playerid,COLOR_LIGHTBLUE,strinz);
	return true;
}

stock ConvertSeconds(time)
{
	new str_seconds[20];
	if(time < 60) format(str_seconds,10,"00:%02d",time);
	else if(time == 60) str_seconds = "00:60";
	else if(time > 60 && time < 3600) format(str_seconds,15,"%02d:%02d",time / 60,time % 60);
	else if(time == 3600) str_seconds = "01:00:00";
	else if(time > 3600)
	{
		new hours,minutes_int,minutes,seconds;
		hours = time / 3600;
		minutes_int = time % 3600;
		minutes = minutes_int / 60;
		seconds = minutes_int % 60;
		format(str_seconds,15,"%02d:%02d:%02d",hours,minutes,seconds);
	}
	return str_seconds;
}
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу