Noticias:

Debes de estar registrado para poder ver el contenido indicado. Registrate o Conectate

Menú Principal

Restricciones de nombres "_"

Iniciado por Swarlog, Feb 04, 2023, 12:50 AM

Tema anterior - Siguiente tema

Swarlog

Información Adicional:

Pues básicamente es para evitar que se conecten a vuestro servidor aquellos usuarios que no contenga el "_" en su nombre.

Código:

En OnPlayerConnect:

new string[256];
NombreValidador(playerid);
if(NombreValidador(playerid) == 0)
{
new pNombre[MAX_PLAYER_NAME];
GetPlayerName(playerid, pNombre, sizeof(pNombre));
SendClientMessage(playerid, COLOR, "AYUDA: Tu nombre no es válido. Debe ser un nombre real.");
SendClientMessage(playerid, COLOR, "AYUDA: Tu nombre tiene que seguir el formato de Nombre_Apellido (Mayúsculas incluidas)");
Kick(playerid);
format(string, 256, "Servidor: %s ha sido auto-kickeado, Razon: Nombre NO-RP", pNombre);
SendClientMessageToAll(COLOR, string);
return 1;
}

forward NombreValidador(playerid);
public NombreValidador(playerid)
{
if(IsPlayerConnected(playerid))
{
new pNombre[MAX_PLAYER_NAME],underline=0;
GetPlayerName(playerid, pNombre, sizeof(pNombre));
if(strfind(pNombre,"[",true) != (-1)) return 0;
else if(strfind(pNombre,"]",true) != (-1)) return 0;
else if(strfind(pNombre,"$",true) != (-1)) return 0;
else if(strfind(pNombre,"(",true) != (-1)) return 0;
else if(strfind(pNombre,")",true) != (-1)) return 0;
else if(strfind(pNombre,"=",true) != (-1)) return 0;
else if(strfind(pNombre,"@",true) != (-1)) return 0;
else if(strfind(pNombre,"1",true) != (-1)) return 0;
else if(strfind(pNombre,"2",true) != (-1)) return 0;
else if(strfind(pNombre,"3",true) != (-1)) return 0;
else if(strfind(pNombre,"4",true) != (-1)) return 0;
else if(strfind(pNombre,"5",true) != (-1)) return 0;
else if(strfind(pNombre,"6",true) != (-1)) return 0;
else if(strfind(pNombre,"7",true) != (-1)) return 0;
else if(strfind(pNombre,"8",true) != (-1)) return 0;
else if(strfind(pNombre,"9",true) != (-1)) return 0;
new maxname = strlen(pNombre);
for(new i=0; i<maxname; i++)
{
if(pNombre[i] == '_') underline ++;
}
if(underline != 1) return 0;
pNombre[0] = toupper(pNombre[0]);
for(new x=1; x<maxname; x++)
{
if(pNombre[x] == '_') pNombre[x+1] = toupper(pNombre[x+1]);
else if(pNombre[x] != '_' && pNombre[x-1] != '_') pNombre[x] = tolower(pNombre[x]);
}
SetPlayerName(playerid, "Nuevo_Nombre");
SetPlayerName(playerid, pNombre);
return 1;
}
return 0;
}