[13:54:21] [debug] Run time error 4: "Array index out of bounds" [13:54:21] [debug] Accessing element at negative index -1 [13:54:21] [debug] AMX backtrace: [13:54:21] [debug] #0 0014bdec in public putInVehicle (5) from NFS.amx
SetTimerEx("putInVehicle", 1500, 0, "i", x);
callBack:: putInVehicle(playerid){
if(PlayerInfo[playerid][pInCorrida]){
PutPlayerInVehicle(playerid, PlayerInfo[playerid][pCarroId], 0);
PlayerInfo[playerid][pActualCarro] = PlayerInfo[playerid][pCarroId];
new Float:v[3];
GetVehiclePos(PlayerInfo[playerid][pCarroId],v[0],v[1],v[2]);
SetVehiclePos(PlayerInfo[playerid][pCarroId],v[0],v[1],v[2]);
if (PlayerInfo[playerid][pCarroId] != INVALID_VEHICLE_ID) {
setTunning(playerid);
new corridaid = PlayerInfo[playerid][pInCorrida];
if(corridaInfo[corridaid][rTipo] == 3 && corridaInfo[corridaid][rLadrao] == playerid){
SetVehicleHealth(PlayerInfo[playerid][pCarroId], 250.0);
corridaInfo[corridaid][rTempo] = 0;
}
}
}
}
|
Run time error 4: "Array index out of bounds"
Este erro significa que vocк estб tentando acessar um index que nгo existe dentro de uma matriz/vetor. Por exemplo: Suponha que vocк tem a variбvel PlayerInfo[100][100] e vocк estб tentando acessar PlayerInfo[101][101]; Um index que nгo existe no range da matriz criada, que vai de 0 atй 99. Faz um debug nesse seu cуdigo, usa print mesmo, e tenta ver se quando tu chama essa funзгo, tu passa algum valor que nгo existe na matriz, negativo ou positivo. |
SetTimerEx("putInVehicle", 1500, 0, "i", x);
|
Pode ser que nessa parte do cуdigo playerid assuma -1
Код:
SetTimerEx("putInVehicle", 1500, 0, "i", x);
|
|
Provavelmente o time tб jogando um playerid inexistente na sua call back, posta o cуdigo completo de onde o settimer й executado
|
new Float:v[3];
GetVehiclePos(PlayerInfo[x][pCarroId],v[0],v[1],v[2]);
new corridaid = PlayerInfo[x][pInCorrida];
// Checar se o carro estб abaixo do nнvel do mar
if (v[2] <= 0.1 && (corridaid != -1 && corridaInfo[corridaid][rTipo] != 4)){
SetPVarInt(x, "varTeleport", gettime() + 10);
// Setar o carro a -150 metros abaixo do mar
// Ele volta automaticamente pra superfieie
SetVehiclePos(PlayerInfo[x][pCarroId],v[0],v[1],-150.0);
PutPlayerInVehicle(x, PlayerInfo[x][pCarroId], 0);
GetPlayerPos(x, PlayerInfo[x][pCheckPos][0], PlayerInfo[x][pCheckPos][1], PlayerInfo[x][pCheckPos][2]);
SetTimerEx("putInVehicle", 1500, 0, "i", x);
}