[Ajuda] Array index out of bounds
#1

alguem pode me ajuda? eu nao consigo arruma isso, fica floodando isso no server log


[debug] Accessing element at index 65535 past array upper bound 49
[debug] AMX backtrace:
[debug] #0 001765e8 in public OnPlayerPickUpPickup (1, 272) from NEWCITY.amx
[debug] Run time error 4: "Array index out of bounds"

Код:
public OnPlayerPickUpPickup(playerid, pickupid)
{
   new ExpID = GetProxExp(playerid);
	if(Pickup[ExpID] == pickupid) {
	    new GranaExp = randomEx(50, 100), Str[55];
	    format(Str, 55, "Vocк roubou R$%i,00", GranaExp);
	    SendClientMessage(playerid, LARANJA, Str);
	    GivePlayerMoney(playerid, GranaExp);
	    DestroyPickup(Pickup[ExpID]);
	    Pickup[ExpID] = 0xFFFF;
	}
    return true;
}
Reply
#2

Veja se resolve :
PHP код:
public OnPlayerPickUpPickup(playeridpickupid)
{
    new 
ExpID GetProxExp(playerid);
    if(
Pickup[ExpID] == pickupid
    {
        new 
GranaExp randomEx(50100), Str[55];
        
format(Str,sizeof(Str), "Vocк roubou R$%i,00"GranaExp);
        
SendClientMessage(playeridLARANJAStr);
        
GivePlayerMoney(playeridGranaExp);
        
DestroyPickup(Pickup[ExpID]);
        
Pickup[ExpID] = 0xFFFF;
    }
    return 
true;

Reply
#3

continua
Reply
#4

Que valor esta funзгo estб retornando ?
pawn Код:
GetProxExp(playerid)
Pois o valor retornado pode estar excedendo o limite de cйlulas do seu vetor.
Reply
#5

Ae, vlw.
Reply
#6

"Run time error 4: "Array index out of bounds", do inglкs: "Erro de tempo de execuзгo 4: Нndice da matriz fora dos limites".

Sempre antes de acessar o нndice de uma matriz verifica-se se o valor passado nгo estб fora dos limites - os limites sгo entre 0 e ((tamanho da matriz) - 1).

PHP код:
new
    
/*
     * Declaro a matriz com tamanho 10.
     */
    
matriz[10],
    
/*
     * Declaro a variбvel do нndice que armazenarб o valor utilizado para acessar a matriz.
     */
    
valorIndice 4;
/*
 * Verifico se 0 й menor que valorIndice que й menor que o tamanho total da matriz.
 * No caso 0 < 4 < 10.
 */
if(valorIndice sizeof(matriz))
{
    
/*
     * Defino o valor desse нndice da matriz como 2. Apenas um exemplo de acesso.
     */
    
matriz[valorIndice] = 2;

Esse й um problema que pode causar bugs fodidos e inesperados, previna a partir de hoje.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)