Quote:
Originally Posted by DesingMyCry
Podriamos hookear la funciуn nativa GetPlayerName con otros dos parбmetro que eliminen cierto carбcter de los nombres.
pawn Код:
stock GetPlayerName_(playerid, name[], len, character = -1, replace = -1) { GetPlayerName(playerid, name, len); if(character == -1) return 1; for(new l = 0; l < sizeof(name); l++) { if(name[l] == character) name[l] = replace; } return 1; } #define GetPlayerName GetPlayerName_
Se usarнa de la misma forma que GetPlayerName nativa, solo que se agregan los parбmetros character y replace.
El primero es el carбcter que reemplazaremos y el segundo seria el nuevo carбcter. En tu caso, seria algo asi.
pawn Код:
new usuario[MAX_PLAYER_NAME]; GetPlayerName(playerid, usuario, sizeof(usuario), '_', ' ');
La variable "usuario" seria la contenedora del nombre de usuario y reemplazarнa los signos "_" (guiones bajos) por " " (espacios).
O biйn, podemos hacer una funciуn que retorne directamente el nick reemplazando los carбcteres.
pawn Код:
stock ObtenerNombre(playerid, caracter = '_', reemplazo = ' ') { new nom[MAX_PLAYER_NAME]; GetPlayerName(playerid, nom, sizeof nom); for(new n = 0; n < MAX_PLAYER_NAME; n++) { if(nom[n] == caracter) nom[n] = reemplazo; } return nom; }
Se usaria de la forma.
pawn Код:
//ID cualquiera para probar la funciуn con printf const playerid = 3;
//Enviamos un mensaje a la consola printf("El jugador ID %d, con nombre de usuario %s.", playerid, ObtenerNombre(playerid));
Ademбs tengamos en cuenta que podemos utilizar esta funciуn con 2 parбmetros adicionales.
pawn Код:
printf("%s", ObtenerNombre(0, 'a', 'A'));
Eso retornarнa el nombre del jugador con ID 0 reemplazando todas las 'a' (minъsculas) de su nombre por 'A' (mayъsculas).
|
Funciono muchнsimas gracias!