stock ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new pos = 0;
while (text[pos] < 0x21)
{
if (text[pos] == 0) return INVALID_PLAYER_ID;
pos++;
}
new userid = INVALID_PLAYER_ID;
if (IsNumeric(text[pos]))
{
userid = strval(text[pos]);
if (userid >=0 && userid < MAX_PLAYERS)
{
if(!IsPlayerConnected(userid))
{
userid = INVALID_PLAYER_ID;
}
else
{
return userid;
}
}
}
new len = strlen(text[pos]);
new count = 0;
new name[MAX_PLAYER_NAME];
for (new i = 0; i < MAX_PLAYERS; i++)
{
if (IsPlayerConnected(i))
{
GetPlayerName(i, name, sizeof (name));
if (strcmp(name, text[pos], true, len) == 0)
{
if (len == strlen(name))
{
return i;
}
else
{
count++;
userid = i;
}
}
}
}
if (count != 1)
{
if (playerid != INVALID_PLAYER_ID)
{
if (count)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
}
else
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
}
}
userid = INVALID_PLAYER_ID;
}
return userid;
}
А чем тебя не устраивает ReturnUser? |
stock ReturnUser(text[], playerid = INVALID_PLAYER_ID)
{
new text_int = strval(text);
if (IsNumeric(text_int) && IsPlayerConnected(text_int)) return text_int;
new player_name[MAX_PLAYER_NAME],
text_len = strlen(text),
userid = INVALID_PLAYER_ID,
count = 0;
foreach (Player,id)
{
GetPlayerName(id,player_name,sizeof(player_name));
if (!strcmp(player_name,text,false,text_len))
{
if (!strcmp(player_name,text,false))
{
return id;
}
else
{
count++;
userid = id;
}
}
}
if (playerid != INVALID_PLAYER_ID)
{
if (count > 1)
{
SendClientMessage(playerid, 0xFF0000AA, "Multiple users found, please narrow earch");
userid = INVALID_PLAYER_ID;
}
else if (count != 1)
{
SendClientMessage(playerid, 0xFF0000AA, "No matching user found");
userid = INVALID_PLAYER_ID;
}
}
return userid;
}
IsNumeric не стандартная функция, ведь так? Не сталкивался еще с ней.
|
stock IsNumeric(const string[])
{
for (new i=strlen(string)-1;i>=0;i--)
{
switch(string[i])
{
case 0..9: continue;
default: return 0;
}
}
return 1;
}
IsNumeric не стандартная функция, ведь так? Не сталкивался еще с ней.
|