Можно сделать следующее
PHP код:
SSCANF:return_user(text[])
{
new p_nick[MAX_PLAYER_NAME];
for(new t = strlen(text)-1; t != -1; t--)
{
switch(text[t])
{
case '0'..'9': continue;
default:
{
for(new i; i < MAX_PLAYERS; i++)//foreach(new i: Player)
{
if(!IsPlayerConnected(i)) continue;
GetPlayerName(i, p_nick, MAX_PLAYER_NAME);
if(!strcmp(p_nick, text, true)) return i;
}
return INVALID_PLAYER_ID;
}
}
}
return strval(text);
}
И теперь использовать так:
PHP код:
else if(!strcmp(cmd, "/gethere"))
{
if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, COLOR_ERROR, "Недостаточно прав для использования команды.");
if(sscanf(params, "k<return_user>", params[0])) return SendClientMessage(playerid, COLOR_ERROR, "Команда /gethere [playerid/PartOfName]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, COLOR_ERROR, "Этот игрок в данный момент не в сети.");
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
SetPlayerInterior(params[0], GetPlayerInterior(playerid));
SetPlayerVirtualWorld(params[0], GetPlayerVirtualWorld(playerid));
if(GetPlayerState(params[0]) == 2) SetVehiclePos(GetPlayerVehicleID(params[0]), X, Y+4, Z);
else SetPlayerPos(params[0], X, Y+2, Z);
return 1;
}
- - - Добавлено - - -
Сообщение от
Wise
Попробовал вместо U использовать R все равно такой же баг.
"u" ищет среди всех игроков и ботов.
"r" ищет только среди игроков, пропуская ботов
"q" ищет только среди ботов.
В общем, это активирует разные проверки в цикле, который проверяет игроков