public OnPlayerConnect(playerid)
{
new first[MAX_PLAYER_NAME], last[MAX_PLAYER_NAME]; // definimos
if(RPName(PlayerName(playerid),first,last)) // aquн comprobamos si tiene nombre roleplay
{
// Aquн lo que pasarб si tiene nombre RP.
// Si no lo tiene
else
{
Kick(playerid,"the server","Nombre errуneo, formato correcto: Nombre_Apellido (EJ: Pedro_Garcнa)."); // lo kickea si no tiene el nombre
}
return 1;
}
RPName(name[],ret_first[],ret_last[])
{
new len = strlen(name),
point = -1,
bool:done = false;
for(new i = 0; i < len; i++)
{
if(name[i] == '_')
{
if(point != -1) return 0;
else {
if(i == 0) return 0;
point = i + 1;
}
} else if(point == -1) ret_first[i] = name[i];
else {
ret_last[i - point] = name[i];
done = true;
}
}
if(!done) return 0;
return 1;
}
pawn Код:
pawn Код:
|
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(496) : error 055: start of function body without function header
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(498) : error 010: invalid function or declaration
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(504) : error 010: invalid function or declaration
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(508) : error 010: invalid function or declaration
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(771) : warning 203: symbol is never used: "RPName"
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(771) : warning 203: symbol is never used: "first"
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(771) : warning 203: symbol is never used: "last"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
public OnPlayerConnect(playerid)
{
new first[MAX_PLAYER_NAME], last[MAX_PLAYER_NAME]; // definimos
if(RPName(PlayerName(playerid),first,last)) // aquн comprobamos si tiene nombre roleplay
{
// Aquн lo que pasarб si tiene nombre RP.
// Si no lo tiene
}
else
{
Kick(playerid,"the server","Nombre errуneo, formato correcto: Nombre_Apellido (EJ: Pedro_Garcнa)."); // lo kickea si no tiene el nombre
}
return 1;
}
Es porque Loox no cerrу con una llave el condicional.. Ponelo asн;
pawn Код:
|
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(496) : error 055: start of function body without function header
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(498) : error 010: invalid function or declaration
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(503) : error 054: unmatched closing brace ("}")
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(504) : error 010: invalid function or declaration
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(508) : error 010: invalid function or declaration
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(771) : warning 203: symbol is never used: "RPName"
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(771) : warning 203: symbol is never used: "first"
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(771) : warning 203: symbol is never used: "last"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
5 Errors.
//OnPlayerConnect
new plname[MAX_PLAYER_NAME];
GetPlayerName(playerid, plname, sizeof(plname));
new namestring = strfind(plname, "_", true);
new pointstring = strfind(plname, ".", true);
if(namestring == -1 || pointstring != -1)
{
Message(playerid, COLOR_YELLOW2, "Su nombre debe ser en el formato Nombre_Apellido. Ejemplo: Juan_Perez");
Kick(playerid);
return 1;
}
stock NameValidator(playerid)
{
if(IsPlayerConnected(playerid))
{
new pname[MAX_PLAYER_NAME],underline=0;
GetPlayerName(playerid, pname, sizeof(pname));
if(strfind(pname,"[",true) != (-1)) return 0;
else if(strfind(pname,"]",true) != (-1)) return 0;
else if(strfind(pname,"$",true) != (-1)) return 0;
else if(strfind(pname,"(",true) != (-1)) return 0;
else if(strfind(pname,")",true) != (-1)) return 0;
else if(strfind(pname,"=",true) != (-1)) return 0;
else if(strfind(pname,"@",true) != (-1)) return 0;
else if(strfind(pname,"1",true) != (-1)) return 0;
else if(strfind(pname,"2",true) != (-1)) return 0;
else if(strfind(pname,"3",true) != (-1)) return 0;
else if(strfind(pname,"4",true) != (-1)) return 0;
else if(strfind(pname,"5",true) != (-1)) return 0;
else if(strfind(pname,"6",true) != (-1)) return 0;
else if(strfind(pname,"7",true) != (-1)) return 0;
else if(strfind(pname,"8",true) != (-1)) return 0;
else if(strfind(pname,"9",true) != (-1)) return 0;
new maxname = strlen(pname);
for(new i=0; i<maxname; i++)
{
if(pname[i] == '_') underline ++;
}
if(underline != 1) return 0;
pname[0] = toupper(pname[0]);
for(new x=1; x<maxname; x++)
{
if(pname[x] == '_') pname[x+1] = toupper(pname[x+1]);
else if(pname[x] != '_' && pname[x-1] != '_') pname[x] = tolower(pname[x]);
}
SetPlayerName(playerid, "New_Name"); //їHarб falta? їSi? їNo? їQuien sabe? їWIki? їAH, que hace falta? Ok pues lo dejo.
SetPlayerName(playerid, pname);
return 1;
}
return 0;
}
public OnPlayerConnect(playerid)
{
new string[256];
NameValidator(playerid);
if(NameValidator(playerid) == 0)
{
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
SendClientMessage(playerid, COLOR, "AYUDA: Tu nombre no es vбlido. Debe ser un nombre real.");
SendClientMessage(playerid, COLOR, "AYUDA: Tu nombre tiene que segir el formato de Nombre_Apellido (Mayъsculas incluidas)");
Kick(playerid);
format(string, 256, "{9C9C41}[KICK] {FFFFA1}%s {9BAF00}ha sido auto-{00FF00}kickeado {FFFFFF}| {FF8E26}Razуn: {FFFFC0}Nombre NO-RP{FFFFFF}|", pname);
SendClientMessageToAll(COLOR, string);
return 1;
}
//Tus otros cуdigos
return 1;
}
Validador de nombres de RP
pawn Код:
pawn Код:
|
C:\Users\cpu\Desktop\Servidor SP RP\gamemodes\SPRP.pwn(491) : warning 217: loose indentation
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
Me sale este error:
pawn Код:
|
stock NameValidator(playerid)
{
if(IsPlayerConnected(playerid))
{
new pname[MAX_PLAYER_NAME],underline=0;
GetPlayerName(playerid, pname, sizeof(pname));
if(strfind(pname,"[",true) != (-1)) return 0;
else if(strfind(pname,"]",true) != (-1)) return 0;
else if(strfind(pname,"$",true) != (-1)) return 0;
else if(strfind(pname,"(",true) != (-1)) return 0;
else if(strfind(pname,")",true) != (-1)) return 0;
else if(strfind(pname,"=",true) != (-1)) return 0;
else if(strfind(pname,"@",true) != (-1)) return 0;
else if(strfind(pname,"1",true) != (-1)) return 0;
else if(strfind(pname,"2",true) != (-1)) return 0;
else if(strfind(pname,"3",true) != (-1)) return 0;
else if(strfind(pname,"4",true) != (-1)) return 0;
else if(strfind(pname,"5",true) != (-1)) return 0;
else if(strfind(pname,"6",true) != (-1)) return 0;
else if(strfind(pname,"7",true) != (-1)) return 0;
else if(strfind(pname,"8",true) != (-1)) return 0;
else if(strfind(pname,"9",true) != (-1)) return 0;
new maxname = strlen(pname);
for(new i=0; i<maxname; i++)
{
if(pname[i] == '_') underline ++;
}
if(underline != 1) return 0;
pname[0] = toupper(pname[0]);
for(new x=1; x<maxname; x++)
{ //aca
if(pname[x] == '_') pname[x+1] = toupper(pname[x+1]);
else if(pname[x] != '_' && pname[x-1] != '_') pname[x] = tolower(pname[x]);
} //aca
SetPlayerName(playerid, "New_Name"); //їHarб falta? їSi? їNo? їQuien sabe? їWIki? їAH, que hace falta? Ok pues lo dejo.
SetPlayerName(playerid, pname);
return 1;
}
return 0;
}