07.04.2016, 20:16
IsRPName
Check if the specified username is a valid Roleplay name (i.e. with '_' and chars between 'A' to 'z').
Return true if a valid name
Return false if not a RP name
Usage
Check if the specified username is a valid Roleplay name (i.e. with '_' and chars between 'A' to 'z').
Return true if a valid name
Return false if not a RP name
pawn Код:
bool:IsRPName(name[], min_underscores = 1, max_uderscores = 3, bool:first_letter_upper = true)
{
new tempname[MAX_PLAYER_NAME];
strcat(tempname, name);
#pragma unused name
new count;
new pos;
new dest[MAX_PLAYER_NAME];
while ((pos = strfind(tempname, "_")) != -1)
{
strmid((dest[0] = EOS, dest), tempname, 0, pos, MAX_PLAYER_NAME);
strdel(tempname, 0, (pos + 1));
if (! dest[0])
return false;
if (first_letter_upper && dest[0] >= 'a')
return false;
for (new i, j = strlen(dest); i < j; i++)
{
if (dest[i] < 'A' || dest[i] > 'z' || dest[i] == ' ')
return false;
}
count++;
}
if (count < min_underscores)
return false;
if (! tempname[0])
return false;
if (first_letter_upper && tempname[0] >= 'a')
return false;
for (new i, j = strlen(tempname); i < j; i++)
{
if (tempname[i] < 'A' || tempname[i] > 'z' || tempname[i] == ' ')
return false;
}
count++;
if (count > max_uderscores)
return false;
return true;
}
pawn Код:
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
if (! IsRPName(name, 1, 3, true))
{
return Kick(playerid);
}
return 1;
}