Problema con mi funcion EnviarMensajeFormateado -
losrivarola98 - 22.08.2014
Bueno pasa que hice esta funcion:
pawn Код:
stock EnviarMensajeFormateado(playerid,color,const mensaje[], {Float,_}:...)
{
new cad[128];
for(new i; i < numargs(); i++)
format(cad,sizeof(cad),mensaje,getarg(i));
SendClientMessage(playerid,color,cad);
return 1;
}
Pero no me funciona, por ejemplo, la funcion lo uso asi:
pawn Код:
EnviarMensajeFormateado(playerid,-1,"Tu ID: %i, tu nombre: %s",playerid,Nombre[playerid]);
Pero me sale asi en el servidor:
Код:
Tu ID: 108, tu nombre:
Osea me sale una ID que no tengo y el nombre no me sale. Porfavor si alguien me puede ayudar, gracias!
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
adri1 - 22.08.2014
Como tienes definido nombre cuando envias el mensaje?
Re: Respuesta: Problema con mi funcion EnviarMensajeFormateado -
Orei - 22.08.2014
Quote:
Originally Posted by adri1
Como tienes definido nombre cuando envias el mensaje?
|
Creo que tiene que definirlo con GetPlayerName їNo?
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
losrivarola98 - 22.08.2014
Nombre[MAX_PLAYERS];
El problema al parecer es que no detecta los arrays, solo las variables simples, creo que tengo que detectar el index del argumento con getarg, pero nose como, probe con esto:
pawn Код:
stock Funcion(const mensaje[],...)
{
new cad[128],arg;
for(new i; i < numargs(); i++)
{
getarg(i,arg);
format(cad,sizeof(cad),mensaje,getarg(i,arg));
}
return print(cad);
}
Pero no funciona, solo me sale el primer caracter, los demas no
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
Juance - 22.08.2014
Y si probas asн?.
pawn Код:
CMD:msg(playerid,params[])
{
new Nombre[MAX_PLAYER_NAME];
GetPlayerName(playerid,Nombre,sizeof(Nombre));
EnviarMensajeFormateado(playerid,-1,"Tu ID: %i, tu nombre: %s",playerid,Nombre);
return 1;
}
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
Glimma - 22.08.2014
Yo lo harнa con un macro lo de EnviarMensajeFormateado.
pawn Код:
new stringf[128];
#define EnviarMensajeFormateado(%1, %2, %3) SendClientMessage(%1, %2, (format(stringf, sizeof(stringf), %3), stringf))
Con respecto a lo de Nombre, antes debes utilizar la funciуn GetPlayerName con esa variable, pero la misma debe ser un array, y no un argumento de ese tipo. Para no tener que estar definiendo a cada rato lo de GetPlayerName, creas esta funciуn:
pawn Код:
stock ObtenerNombre(playerid)
{
new string[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, string, sizeof(string));
return string;
}
Quedando asн:
pawn Код:
EnviarMensajeFormateado(playerid, -1, "Tu ID: %i, tu nombre: %s", playerid, ObtenerNombre(playerid));
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
losrivarola98 - 22.08.2014
Se desviaron del tema, el problema va con la funcion, no con el Nombre[playerid], que es lo que esta mal en la funcion?
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
Juance - 22.08.2014
Quote:
Originally Posted by losrivarola98
Se desviaron del tema, el problema va con la funcion, no con el Nombre[playerid], que es lo que esta mal en la funcion?
|
їCуmo sabes que el problema estб en al funciуn? їprobaste los mйtodos que te dimos?
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
losrivarola98 - 22.08.2014
Porque solo di un ejemplo, diganme que esta mal en la funcion, porque tengo entendido que getarg devuelve el valor del argumento, no el argumento en si, como solucionar mi funcion??
Respuesta: Problema con mi funcion EnviarMensajeFormateado -
Swedky - 22.08.2014
Tu variable no almacenarнa todo el nick. Deberнa ser asн:
pawn Код:
static Nombre[MAX_PLAYERS][MAX_PLAYER_NAME];
Su uso serнa el mismo.
Quote:
Originally Posted by Glimma
Yo lo harнa con un macro lo de EnviarMensajeFormateado.
pawn Код:
new stringf[128]; #define EnviarMensajeFormateado(%1, %2, %3) SendClientMessage(%1, %2, (format(stringf, sizeof(stringf), %3), stringf))
|
Eso no funcionarб,
format no devuelve la cadena a la que se le da formato y entre los parбmetros de la funciуn no debe llevar espacios.