Run time error 4: "Array index out of bounds" at crashdedect. - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Server (
https://sampforum.blast.hk/forumdisplay.php?fid=6)
+--- Forum: Server Support (
https://sampforum.blast.hk/forumdisplay.php?fid=19)
+--- Thread: Run time error 4: "Array index out of bounds" at crashdedect. (
/showthread.php?tid=483204)
Run time error 4: "Array index out of bounds" at crashdedect. -
dovyansas - 24.12.2013
First sorry for my bad english and bad title name( maybye ), but I have problem.
I have that error not in compiler but in concole( when playing ):
Код:
[19:37:54] [debug] AMX backtrace:
[19:37:54] [debug] #0 0000aa98 in public OnPlayerUpdate (playerid=0) at C:\Users\Vartotojas\Desktop\SA-MP\gamemodes\rfe.pwn:682
[19:37:54] [debug] Run time error 4: "Array index out of bounds"
[19:37:54] [debug] Accessing element at index 11 past array upper bound 0
I creating speedometer and i upload some functions, what can help:
Код:
new Float:SpeedOfVehicles[ ][ ] = {
{160.0},//Landstaker
{160.0},
{200.0},
{120.0},
{150.0},
{165.0},
{110.0},
{170.0},//Firetruck
{110.0},//Trashmaster
{180.0},
{160.0},
{240.0},
{160.0},
{160.0},
{140.0},
{230.0},//Cheetah
{155.0}
};//Ambulance
I don't upload all.
Код:
new bar = floatround( GetVehicleSpeed(GetPlayerVehicleID(playerid)) / SpeedOfVehicles[ vehar ][ model - 400 ] * 30,floatround_round);
That is 682 line.
P.S. Merry Christmas and Happy New Year!
Re: Run time error 4: "Array index out of bounds" at crashdedect. -
Konstantinos - 24.12.2013
That's an odd one. It's like the size of the array is 1 and the valid index is 0 but it accessed the element at index 11.
You do have a 2D array that gets only float and you have only float points (the speed). Then your code is:
pawn Код:
SpeedOfVehicles[ vehar ][ model - 400 ]
vehar is the vehicleid? Well, it's pretty pointless. All you need is the modelid so you can subtract from 400 and get the speed on the single array.
pawn Код:
new Float: SpeedOfVehicles[212] = {
160.0, // modelid: 400
// ... {the rest of the speed values for each model},
0.0 // modelid: 611
};
Then:
pawn Код:
new
modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
if (modelid) // valid modelid
{
// ...
new bar = floatround(GetVehicleSpeed(GetPlayerVehicleID(playerid)) / SpeedOfVehicles[modelid - 400] * 30, floatround_round);
// ...
}
Re: Run time error 4: "Array index out of bounds" at crashdedect. -
dovyansas - 24.12.2013
Thanks a lot! Now everytime I can fix that