- Регистрация
- 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;
}
Последнее редактирование: