switch(Desconocido[playerid])
{
case 0:format(string, sizeof(string), "* %s compra un arma.",NombreJ(playerid));
case 1:format(string, sizeof(string), "* Desconocido compra un arma.");
}
ProxDetector(20.0, playerid, string, -1, -1, -1, -1, -1);
stock NombreJ(playerid)
{
new NombrePJ[24], N[24];
GetPlayerName(playerid, NombrePJ, 24);
strmid(N, NombrePJ, 0, strlen(NombrePJ), 24);
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
if (N[i] == '_') N[i] = ' ';
}
return N;
}
stock NombreJ(playerid)
{
new
nombrePJ[MAX_PLAYER_NAME];
if(Desconocido[playerid] == 1)
return format(nombrePJ, sizeof nombrePJ, "Desconocido");
for(new i = 0, len = strlen(nombrePJ); i < len; i ++)
{
if (nombrePJ[i] == '_')
{
nombrePJ[i] = ' ';
}
}
return nombrePJ;
}
PHP код:
|
Hola, gracias por responder pero me sale un error:
error 079: inconsistent return types (array & non-array) En la linea: return format(nombrePJ, sizeof nombrePJ, "Desconocido"); sera que lo podrнas arreglar? |
return format(nombrePJ, sizeof(nombrePJ), "Desconocido");
pawn Код:
|
Hola, gracias por responder pero me sale un error:
error 079: inconsistent return types (array & non-array) En la linea: return format(nombrePJ, sizeof nombrePJ, "Desconocido"); sera que lo podrнas arreglar? |
NombreJ(playerid, &nombrePJ[MAX_PLAYER_NAME])
{
if(Desconocido[playerid] == 1)
format(nombrePJ, sizeof nombrePJ, "Desconocido");
for(new i = 0, len = strlen(nombrePJ); i < len; i ++)
{
if (nombrePJ[i] == '_')
{
nombrePJ[i] = ' ';
}
}
}
No puedes retornar un array, solo tipos primitivos, un char en este caso.
Pasalo por parametro, por referencia, entrada salida. PHP код:
|
stock NombreJ(playerid)
{
new nombrePJ[MAX_PLAYER_NAME];
if(Desconocido[playerid] == 1) format(nombrePJ, sizeof(nombrePJ), "Desconocido");
else
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
format(nombrePJ, sizeof(nombrePJ), "%s", ReplaceString("_", " ", name));
}
return nombrePJ;
}
stock ReplaceString(search[], replace[], source[])
{
new newstring[256], newlen;
for(new i; i < strlen(source); i++)
{
if(strlen(search) > 1 && i != (strlen(source) - 1))
{
new matched = 1, start = i;
for(new s = 0; s < strlen(search) && matched == 1; s++)
{
if(source[i] != search[s] && s == 0)
{
newstring[newlen] = source[i];
matched = 0;
}
else
{
if(source[i] == search[s]) i++;
else matched = 0;
}
}
if(matched == 0)
{
while(start <= i)
{
newstring[newlen] = source[start];
newlen++;
start++;
}
}
else
{
for(new r; r < strlen(replace); r++)
{
newstring[newlen] = replace[r];
newlen++;
}
i = (start + (strlen(search) - 1));
}
}
else
{
if(strlen(search) == 1 && source[i] == search[0])
{
for(new r; r < strlen(replace); r++)
{
newstring[newlen] = replace[r];
newlen++;
}
}
else
{
newstring[newlen] = source[i];
newlen++;
}
}
}
newstring[newlen] = EOS;
return newstring;
}