SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Español/Spanish

Reply
 
Thread Tools Display Modes
Old 05/04/2012, 04:21 PM   #1
godoy32
Huge Clucker
 
Join Date: Jul 2011
Posts: 264
Reputation: 8
Question Ayuda con pNick

Hola. Bueno desde hace ya mucho tiempo llevo usando la función pNick(playerid) (originalmente la saqué de garsinio), es una función donde se obtiene el nombre del jugador
Resulta que desde que actualicé (mas o menos) a la 0.3d, me está dando muchos problemas.
Por ej: con el comando /congelar
pawn Code:
//Con pNick dice que el comando NO EXISTE
COMMAND:congelar(playerid,params[])
{
    if(Informacion[playerid][Admin] >= 1)
    {
        new id;
        if(sscanf(params,"d",id))
        {
            if(Informacion[id][Idioma]==0) SendClientMessage(playerid,-1,"Usa: {FF0000}/congelar {FFFFFF}[ID/Nombre]");
            if(Informacion[id][Idioma]==1) SendClientMessage(playerid,-1,"Use: {FF0000}/freeze {FFFFFF}[ID/Name]");
            return 1;
        }
        if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0xFF0000FF,"Jugador no conectado");
        TogglePlayerControllable(id,0);
        new st[128 char];
        if(Informacion[id][Idioma]==0) format(st,128,"Has congelado a {FF0000}%s (%d)",pNick(id),id);
        if(Informacion[id][Idioma]==1) format(st,128,"You freeze {FF0000}%s (%d)",pNick(id),id);
        SendClientMessage(playerid,-1,st);
        if(Informacion[id][Idioma]==0) SendClientMessage(id,-1,"Has sido congelado por {FF0000}un admin");
        if(Informacion[id][Idioma]==1) SendClientMessage(id,-1,"You was freeze by{FF0000} admin");
        return 1;
    }
    return 1;
}
//Pero si saco el pNick y pongo por ej: "id"
COMMAND:congelar(playerid,params[])
{
    if(Informacion[playerid][Admin] >= 1)
    {
        new id;
        if(sscanf(params,"d",id))
        {
            if(Informacion[id][Idioma]==0) SendClientMessage(playerid,-1,"Usa: {FF0000}/congelar {FFFFFF}[ID/Nombre]");
            if(Informacion[id][Idioma]==1) SendClientMessage(playerid,-1,"Use: {FF0000}/freeze {FFFFFF}[ID/Name]");
            return 1;
        }
        if(!IsPlayerConnected(id)) return SendClientMessage(playerid,0xFF0000FF,"Jugador no conectado");
        TogglePlayerControllable(id,0);
        new st[128 char];
        if(Informacion[id][Idioma]==0) format(st,128,"Has congelado a {FF0000}%s (%d)",id,id);
        if(Informacion[id][Idioma]==1) format(st,128,"You freeze {FF0000}%s (%d)",id,id);
        SendClientMessage(playerid,-1,st);
        if(Informacion[id][Idioma]==0) SendClientMessage(id,-1,"Has sido congelado por {FF0000}un admin");
        if(Informacion[id][Idioma]==1) SendClientMessage(id,-1,"You was freeze by{FF0000} admin");
        return 1;
    }
    return 1;
}
//el comando anda PERFECTO (obviamente no muestra el nombre)
stock pNick(playerid)
{
    new nick[MAX_PLAYER_NAME];
    GetPlayerName(playerid, nick, MAX_PLAYER_NAME);
    return nick;
}


AGREGO:
Anduve probando con GetPlayerName
pawn Code:
new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,24);
Pero tampoco funciona :S

Last edited by godoy32; 05/04/2012 at 05:22 PM.
godoy32 is offline   Reply With Quote
Old 05/04/2012, 05:53 PM   #2
TiNcH010
High-roller
 
TiNcH010's Avatar
 
Join Date: Apr 2010
Location: Buenos Aires, Argentina.
Posts: 1,986
Reputation: 42
Default Respuesta: Ayuda con pNick

Quote:
Originally Posted by godoy32 View Post
Anduve probando con GetPlayerName
pawn Code:
new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,24);
Pero tampoco funciona :S
Por que definis con MAX_PLAYER_NAME si después usas 24.
Podes probar de 2 formas:
pawn Code:
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));

ó

pawn Code:
new name[24];
GetPlayerName(playerid, name, 24);
TiNcH010 is offline   Reply With Quote
Old 05/04/2012, 06:04 PM   #3
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,687
Reputation: 217
Default Respuesta: Ayuda con pNick

Estas causando un overflow, el tamaño de st deberia ser 128, no 128 chars.

Quote:
Originally Posted by TiNcH010 View Post
Por que definis con MAX_PLAYER_NAME si después usas 24.
Podes probar de 2 formas:
pawn Code:
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof (name));

ó

pawn Code:
new name[24];
GetPlayerName(playerid, name, 24);
Eso es porque si el día de mañana, se admiten nombres de 32 caracteres, deberas cambiar todo tu script o podrias causar un overflow, en cambio si utilizas MAX_PLAYER_NAME no tendras este problema.
__________________
TheChaoz is offline   Reply With Quote
Old 05/04/2012, 06:10 PM   #4
godoy32
Huge Clucker
 
Join Date: Jul 2011
Posts: 264
Reputation: 8
Default Respuesta: Ayuda con pNick

Quote:
Originally Posted by the_chaoz View Post
Estas causando un overflow, el tamaño de st deberia ser 128, no 128 chars.
(...)
Perfecto, era eso. Pero cuando se debería usar 'char'?
godoy32 is offline   Reply With Quote
Old 05/04/2012, 06:18 PM   #5
TheChaoz
High-roller
 
TheChaoz's Avatar
 
Join Date: Dec 2009
Location: Argentina
Posts: 4,687
Reputation: 217
Default Respuesta: Ayuda con pNick

se lo utiliza para strings comprimidos/empaquetados.
__________________
TheChaoz is offline   Reply With Quote
Old 05/04/2012, 06:19 PM   #6
godoy32
Huge Clucker
 
Join Date: Jul 2011
Posts: 264
Reputation: 8
Default Respuesta: Ayuda con pNick

Quote:
Originally Posted by the_chaoz View Post
se lo utiliza para strings comprimidos/empaquetados.
Perfecto. Muchas gracias por tu ayuda!
godoy32 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ayuda] Tengo problemas con mi Script ¡Se me borro! ¡Ayuda! ronaldsojo Español/Spanish 22 18/08/2010 02:40 AM
[AYUDA]Necesito Ayuda Con un Game Mode Pablo_14 Español/Spanish 3 20/07/2010 09:46 PM
[AYUDA]Nesecito ayuda con unos errores que me tira el pawn Luis_Valenzuela Español/Spanish 6 05/06/2010 05:21 AM
[Ayuda] Solicito ayuda para sacar algo. Nacho350 Español/Spanish 2 07/05/2010 04:17 PM
[AYUDA] necesito ayuda de los qe tienen paginas web de su server angel-laam Español/Spanish 9 26/01/2010 02:15 PM


All times are GMT. The time now is 09:49 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.