SA-MP Forums Archive
A que se debe este error de crashdetect - 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: A que se debe este error de crashdetect (/showthread.php?tid=556561)



A que se debe este error de crashdetect - pep_25 - 10.01.2015

Код:
[16:48:15] [debug] AMX backtrace:
[16:48:15] [debug] #0 00000036 in ?? (52, 0, 2992620) from gamemode.amx
[16:48:15] [debug] #1 0000e350 in ?? (52, 0, 1783793664, 0, 2992712, 320916, 4, 2, 0, 0, ... <3 arguments>) from gamemode.amx
[16:48:15] [debug] #2 00000036 in public cmd_setscore () from gamemode.amx
[16:48:15] [debug] #3 native CallLocalFunction () from samp03svr
[16:48:15] [debug] #4 0001167c in ?? (2, 2976556) from gamemode.amx
[16:48:15] [debug] #5 00006260 in public OnPlayerCommandText (2, 2976556) from gamemode.amx
este es el comando:
Код:
CMD:setscore(playerid, params[])
{
    if(IsPlayerAdmin(playerid))
    {
		if(sscanf(params, "ud", params[0], params[1])) return SendClientMessage(playerid, COLOR_ROJO, "Usa: /setscore [id] [score]");
		if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ROJO, "Ese jugador no esta conectado");
		
		PlayerInfo[params[0]][Score] = params[1];
		SetPlayerScore(params[0], PlayerInfo[params[0]][Score]);
		SaveAccount(params[0]);
 	}
	else SendClientMessage(playerid, COLOR_ROJO, "Comando solo para administradores RCON!");
 	return 1;
}
gracias


Respuesta: A que se debe este error de crashdetect - Zume - 10.01.2015

cuбnto score le diste al probarlo?


Respuesta: A que se debe este error de crashdetect - JustBored - 11.01.2015

Creo que la funciуn SaveAccount esta haciendo crashear el servidor por alguna razуn.


Respuesta: A que se debe este error de crashdetect - pep_25 - 11.01.2015

pasa cuando se da mucho score, tambien con comandos como setcash, pero solo cuando se da mucho


Respuesta: A que se debe este error de crashdetect - Zume - 11.01.2015

Sн.. es por que sobrepasas enteros que sobrepasan los 32 bit.


Respuesta: A que se debe este error de crashdetect - pep_25 - 11.01.2015

Bueno entonces no hay error en ese cmd??


Respuesta: A que se debe este error de crashdetect - Zume - 11.01.2015

sн, al sobrepasar el mбximo de enteros si no me equivoco pasa el nъmero a negativo, por lo que bastaria con lo siguiente:

pawn Код:
if(params[1] < 1) return 1;
Tambiйn deberнas de usar IsPlayerConnected para comprobar si el params[0] estб conectado, asн no podrнa causar bugs.


Respuesta: A que se debe este error de crashdetect - JustBored - 11.01.2015

Quote:
Originally Posted by _Zume
Посмотреть сообщение
sн, al sobrepasar el mбximo de enteros si no me equivoco pasa el nъmero a negativo, por lo que bastaria con lo siguiente:

pawn Код:
if(params[1] < 1) return 1;
Tambiйn deberнas de usar IsPlayerConnected para comprobar si el params[0] estб conectado, asн no podrнa causar bugs.
No, porque ya usa sscanf para comprobar eso.


Respuesta: A que se debe este error de crashdetect - jotajeda - 12.01.2015

pawn Код:
CMD:setscore(playerid, params[])
{
    if(IsPlayerAdmin(playerid))
    {
        if(sscanf(params, "ud", params[0], params[1])) return SendClientMessage(playerid, COLOR_ROJO, "Usa: /setscore [id] [score]");
        if(params[0] == INVALID_PLAYER_ID) return SendClientMessage(playerid, COLOR_ROJO, "Ese jugador no esta conectado");
//______------¬--------¬¬¬¬¬¬¬¬---¬¬¬¬¬¬¬¬¬---¬------------------------
        if(params[1] > 9000000 || params[1] < 1) return SendClientMessage(playerid, COLOR_ROJO, "[score] nomas de 9kk y no menos de 1");

        PlayerInfo[params[0]][Score] = params[1];
        SetPlayerScore(params[0], PlayerInfo[params[0]][Score]);
        SaveAccount(params[0]);
    }
    else SendClientMessage(playerid, COLOR_ROJO, "Comando solo para administradores RCON!");
    return 1;
}