Ayuda Crash Detect -
Fpwn - 11.08.2017
Hola a todos, he tenido algunos problemas de crasheo en mi servidor, alguien sabe a que se debe o que tengo que hacer para solucionarlo, esto fue lo que el plugin crash detect me arrojo:
PHP код:
[debug] Run time error 4: "Array index out of bounds"
[debug] Attempted to read/write array element at index 65535 in array of size 200
[debug] AMX backtrace:
[debug] #0 0008c19c in public _lspec (playerid=30, params[]=@000f7aa0 "463") at D:\GM 2015\GM 2017\gamemodes\NEWGM.pwn:9332
[debug] #1 native CallLocalFunction () from samp03svr
[debug] #2 0003edbc in public OnPlayerCommandText (playerid=30, cmdtext[]=@000f7a74 "/lspec 463") at D:\GM 2015\GM 2017\gamemodes\NEWGM.pwn:3042
Gracias por su atenciуn.
![Smiley](images/smilies/smile.png)
![Smiley](images/smilies/smile.png)
Re: Ayuda Crash Detect -
Unrea1 - 11.08.2017
A ver si usas el traductor...
"Нndice de matriz fuera de lнmites", estбs intentando acceder a un valor del array inexistente, en este caso en el
callback _lspec estб el problema.
Re: Ayuda Crash Detect -
Jastak - 12.08.2017
Apoyo al comentario de arriba, prбcticamente te dice la razуn y hasta la lнnea... (linea 9332)
Respuesta: Ayuda Crash Detect -
Revelation - 12.08.2017
Ahн tienes las lнneas, busca en el gm esas lнneas.
Код:
[debug] #0 0008c19c in public _lspec (playerid=30, params[]=@000f7aa0 "463") at D:\GM 2015\GM 2017\gamemodes\NEWGM.pwn:9332
[debug] #2 0003edbc in public OnPlayerCommandText (playerid=30, cmdtext[]=@000f7a74 "/lspec 463") at D:\GM 2015\GM 2017\gamemodes\NEWGM.pwn:3042
Respuesta: Ayuda Crash Detect -
Fpwn - 12.08.2017
Que es lo que podrнa estar mal con este codigo:
PHP код:
CMD:lspec(playerid,params[])
{
new player;
if(sscanf(params,"k<player_id>",player))
return SendClientMessage(playerid,ROJO,"Uso /lspec [jugadorid/nombre]");
if(player == INVALID_PLAYER_ID)
return SendClientMessage(playerid,ROJO,"Ese jugador no esta conectado");
if(PlayerInfo[playerid][AdminLevel] < 1)
return SendClientMessage(playerid,ROJO,"No tienes el nivel para usar este comando");
if(player == playerid)
return SendClientMessage(playerid,ROJO,"No puedes espiarte a ti mismo");
if(IsPlayerInAnyVehicle(player))
{
TogglePlayerSpectating(playerid, 1);
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(player));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player));
SetPlayerInterior(playerid,GetPlayerInterior(player));
}
else
{
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player));
SetPlayerInterior(playerid,GetPlayerInterior(player));
TogglePlayerSpectating(playerid, 1);
PlayerSpectatePlayer(playerid, player);
}
return 1;
}
Gracias por su atencion.
Re: Ayuda Crash Detect -
Unrea1 - 12.08.2017
Que yo sepa el prefijo
"k" no existe en sscanf, cambia
"k<player_id>" por
"r" (que serнa jugadores, excluyendo bots).
PHP код:
Specifier(s) Name Example values
i, d Integer 1, 42, -10
c Character a, o, *
l Logical true, false
b Binary 01001, 0b1100
h, x Hex 1A, 0x23
o Octal 045 12
n Number 42, 0b010, 0xAC, 045
f Float 0.7, -99.5
g IEEE Float 0.7, -99.5, INFINITY, -INFINITY, NAN, NAN_E
u User name/id (bots and players) ******, 0
q Bot name/id ShopBot, 27
r Player name/id ******, 42
Mбs info:
https://sampforum.blast.hk/showthread.php?tid=570927
Respuesta: Ayuda Crash Detect -
Fpwn - 13.08.2017
He estado revisando otros Cуdigos de algunos GM y FS, los cuales presentan la misma sentencia que yo planteo "k<player_id>", no se realmente si sea esa la falla o algo mas este causando este conflicto.
O' que otra cosa podrнa estar mal con el cуdigo que anexe, gracias por su tiempo.
Re: Ayuda Crash Detect -
pabloalber84ban - 13.08.2017
Mira te explico:
Puedes usar tanto el especificador "u" como el "r", son casi iguales.
El especificador "k" es para alojar un especificador custom, es decir, algo tipo como lo que trataste de hacer:
PHP код:
SSCANF:player_id(playerid)
{
// Codigo
}
Esto sirve para hacer especificadores personalizables, como por ejemplo, encontrar la id de un sistema como de casas, etc etc.
Aunque no te lo recomiendo para lo que trataste de usar.