Nombre Jugador sin _
#1

Hola gente.

Tengo un problema al crear el gamemode de 0, todo bien pero ahн un problema cuando me logeo y hablo por chat normal, dice "Raylan_Givens", y yo quiero que diga "Raylan Givens" Sin el _

Osea el Texto sale asн "Raylan_Givens Dice: Hola

Yo quiero que salga asн "Raylan Givens Dice: Hola

y en el tab la tabla tambiйn dice Raylan_Givens.

Quiero que no aparezca el _

Acб unas imбgenes para guiarlos mas.

Imagen 1


Imagen 2
Reply
#2

pawn Код:
stock Nombre(playerid)
{
    new Nombre[24];
    GetPlayerName(playerid,Nombre,24);
    new N[24];
    strmid(N,Nombre,0,strlen(Nombre),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (N[i] == '_') N[i] = ' ';
    }
    return N;
}
Reply
#3

Quote:
Originally Posted by GROVE22
Посмотреть сообщение
pawn Код:
stock Nombre(playerid)
{
    new Nombre[24];
    GetPlayerName(playerid,Nombre,24);
    new N[24];
    strmid(N,Nombre,0,strlen(Nombre),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (N[i] == '_') N[i] = ' ';
    }
    return N;
}
Lo probй pero no funciona e.e Sigue apareciendo igual.
Reply
#4

No entiendo al 100%

Quieres que NO aparezca el "_" en el chat?

Para eso usa el stock que te pasу GROVE22

pawn Код:
stock nJugador(playerid) //Creador: "Giuly"
{
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    { if (pName[i] == '_') pName[i] = ' '; }
    return pName;
}
Sуlo puedes quitar el "_" en los textos, pero en la lista de usuarios no se puede, es imposible (AFAIK).
Reply
#5

Quote:
Originally Posted by Edugta.
Посмотреть сообщение
No entiendo al 100%

Quieres que NO aparezca el "_" en el chat?

Para eso usa el stock que te pasу GROVE22

pawn Код:
stock nJugador(playerid) //Creador: "Giuly"
{
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    { if (pName[i] == '_') pName[i] = ' '; }
    return pName;
}
Sуlo puedes quitar el "_" en los textos, pero en la lista de usuarios no se puede, es imposible (AFAIK).
Lo saque de pastebin poniendo stock Nombre xD, pero ni idea quien es el creador.
Reply
#6

El cуdigo que dejo GROVE22 crea una variable para nada.
Reply
#7

Miren Con el codigo de GROVE22 me salieron errores ya conocidos

pawn Код:
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(459) : error 021: symbol already defined: "Nombre"
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(461) : error 021: symbol already defined: "Nombre"
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(464) : error 021: symbol already defined: "strmid"
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(465) : error 010: invalid function or declaration
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(467) : error 010: invalid function or declaration
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(469) : error 010: invalid function or declaration
C:\Users\Administrador\Desktop\GM de 0\gamemodes\Untitled.pwn(706) : warning 203: symbol is never used: "N"
Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase


6 Errors.
Pero lo solucione cambiandolo asi,

pawn Код:
stock NombreS(playerid)
{
    new NombreS[24];
    GetPlayerName(playerid,NombreS,24);
    new N[24];
    strmid(N,NombreS,0,strlen(NombreS),24);
    for(new i = 0; i < MAX_PLAYER_NAME; i++)
    {
        if (N[i] == '_') N[i] = ' ';
    }
    return N;
}
pero no me anda, sigue igual apareciendo con _
Reply
#8

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).
Reply
#9

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!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)