SA-MP Forums Archive
[AYUDA]Problema - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [AYUDA]Problema (/showthread.php?tid=303701)



[AYUDA]Problema(Sin soluciуn aun) - Fluid016 - 14.12.2011

Hola forum samp, bueno mi problema es que cuando puse el crashdetect para ver que me largaba en su log me puso esto
[20:17:22]: The server has been crashed by 'gamemodes\DM.amx'.
[20:17:22]: Call stack (most recent call first):
[20:17:22]: 0x0001E5B4 => native format()
Que tengo que solucionar para no causar ese crash??

Gracias de ante mano


Respuesta: [AYUDA]Problema - Jovanny - 14.12.2011

estas dandole un mal uso a la funciуn "format" busca en todo tu script esta funciуn con el buscador de pawn y analizala


Respuesta: [AYUDA]Problema - Fluid016 - 14.12.2011

Si eso creнa pero me das un ejemplo de que mal uso puede ser??


Respuesta: [AYUDA]Problema - Jovanny - 14.12.2011

Puede ser que estes incluyendo una variable que no estes mostrando el especificador en el formato, la verdad no se si esto crashearia el servidor pero aqui tienes el ejemplo para que veas y busques
pawn Код:
new string[32],name[24];
GetPlayerName(playerid,24,name);
format(string,32,"Hola %s tu id es: ",name,playerid);// no puse %d para mostrar el playerid, podria causar crash, la verdad no lo se



Respuesta: [AYUDA]Problema - Fluid016 - 15.12.2011

Ya me fije todo y no encontrй ninguno

EDIT:Puede ser otra cosa


Re: [AYUDA]Problema - Daniel-92 - 15.12.2011

Seguramente estas usando mal el parametro que indica el tamaсo en la funciуn format
pawn Код:
new string[128]; //arrar de 128 celdas
format(string,256,"Cualquier texto que sobre pase el tamaсo de 128 caracteres harian que el server se cierre")
//El 256 que lleva el format indica el tamaсo que puede tener el array
//este nъmero nunca debe ser mayor al del array que en este ejemplo es de 128
La soluciуn es aumetar el tamaсo del array al que pusistes en el format quedando asн.
pawn Код:
new string[256]; //array 256 celdas
format(string,256,"Ahora el server no se cerraria aunque se pasen los 256 caracteres");



Respuesta: Re: [AYUDA]Problema - TheChaoz - 15.12.2011

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
Seguramente estas usando mal el parametro que indica el tamaсo en la funciуn format
pawn Код:
new string[128]; //arrar de 128 celdas
format(string,256,"Cualquier texto que sobre pase el tamaсo de 128 caracteres harian que el server se cierre")
//El 256 que lleva el format indica el tamaсo que puede tener el array
//este nъmero nunca debe ser mayor al del array que en este ejemplo es de 128
La soluciуn es aumetar el tamaсo del array al que pusistes en el format quedando asн.
pawn Код:
new string[256]; //array 256 celdas
format(string,256,"Ahora el server no se cerraria aunque se pasen los 256 caracteres");
Por mas q lo que dices paresca correcto, no lo es. La funcion "format" esta diseсada para evitar un overflow por lo que el servidor no crasheara. Mi sugerencia es mirar cuando crashea y comenzar a aislar codigo hasta que encuentres la linea exacta, en ese punto si no puedes resolver el crash editas y nos avisas y te podremos ayudar mucho mas facilmente.


Re: [AYUDA]Problema - Daniel-92 - 15.12.2011

En realidad la funciуn format no estб preparada para eso
pawn Код:
new string[5];
format(string,64,"Cualquier texto que no alcanse en el array");
print(string);
si se intenta hacer eso, posiblemente en la consola se muestre todo el texto que estб en el format,
pero donde alcanzу todo ese texto si el array apenas tiene 5 espacios? lo que pasу es que hubo un desbordamiento de buffer y el texto que no alcanzу se almacenу en otras variables que al final esto puede acabar cerrando en servidor.


Respuesta: Re: [AYUDA]Problema - TheChaoz - 15.12.2011

Quote:
Originally Posted by Daniel-92
Посмотреть сообщение
En realidad la funciуn format no estб preparada para eso
pawn Код:
new string[5];
format(string,64,"Cualquier texto que no alcanse en el array");
print(string);
si se intenta hacer eso, posiblemente en la consola se muestre todo el texto que estб en el format,
pero donde alcanzу todo ese texto si el array apenas tiene 5 espacios? lo que pasу es que hubo un desbordamiento de buffer y el texto que no alcanzу se almacenу en otras variables que al final esto puede acabar cerrando en servidor.
en realidad probe en windows y linux (varias veces de diferentes formas) y por eso afirme que no se causa el crash.


Respuesta: [AYUDA]Problema - Fluid016 - 15.12.2011

No no pude solucionar el problema ese error me lo larga cuando crashea el servidor y el servidor crashea cuando ahy mucha gente y se conecta uno mas

EDIT: Entonces que es lo que hace el crash porque el servidor crashea cuando se conecta alguien (si ahн mucha gente si no no crashea mas) y en el log del crashdetect me larga eso nomas