[02:27:39] [debug] Run time error 4: "Array index out of bounds" [02:27:39] [debug] Accessing element at index 1779 past array upper bound 1199 [02:27:39] [debug] AMX backtrace: [02:27:39] [debug] #0 000fccc4 in public LoadMoveDoors () at C:\Users\Nick\Documents\SAMP S\INGENIOUS ROLEPLAY\gamemodes\igrp.pwn:16593 [02:27:39] [debug] Run time error 4: "Array index out of bounds" [02:27:39] [debug] Accessing element at index 1780 past array upper bound 1199 [02:27:39] [debug] AMX backtrace: [02:27:39] [debug] #0 00100624 in public LoadDynamicCCTV () at C:\Users\Nick\Documents\SAMP S\INGENIOUS ROLEPLAY\gamemodes\igrp.pwn:16799
public LoadDynamicCCTV()
{
new rows, fields;
new total = 0;
new object, id, faction, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, interior, world, name[256];
cache_get_data(rows, fields);
if(rows)
{
while(total < rows)
{
id = cache_get_row_int(total, 0);
faction = cache_get_row_int(total, 1);
x = cache_get_row_float(total, 2);
y = cache_get_row_float(total, 3);
z = cache_get_row_float(total, 4);
rx = cache_get_row_float(total, 5);
ry = cache_get_row_float(total, 6);
rz = cache_get_row_float(total, 7);
interior = cache_get_row_int(total, 8);
world = cache_get_row_int(total, 9);
cache_get_row(total, 10, name, dbHandle, 128);
object = CreateDynamicObject(1886, x, y, z, rx, ry, rz, -1, -1, -1, 200.0);
CCTVInfo[object][tvID] = id;
CCTVInfo[object][tvFaction] = faction;
CCTVInfo[object][tvPosX] = x;
CCTVInfo[object][tvPosY] = y;
CCTVInfo[object][tvPosZ] = z;
CCTVInfo[object][tvPosRX] = rx;
CCTVInfo[object][tvPosRY] = ry;
CCTVInfo[object][tvPosRZ] = rz;
CCTVInfo[object][tvInterior] = interior;
CCTVInfo[object][tvVirtualWorld] = world;
format(CCTVInfo[object][tvName], 256, "%s", name);
CCTVInfo[object][tvObjectOn] = 1;
CCTVInfo[object][tvObject] = object;
total++;
}
}
format(msg,sizeof(msg), "Loaded %d dynamic CCTV's from MySQL.", total);
printf(msg);
return 1;
}
public LoadMoveDoors()
{
new rows, fields;
new total = 0;
new object, id, model, faction, Float:x, Float:y, Float:z, Float:rx, Float:ry, Float:rz, Float:openspeed, Float:movex, Float:movey, Float:movez, interior, world, name[256];
cache_get_data(rows, fields);
if(rows)
{
while(total < rows)
{
id = cache_get_row_int(total, 0),
model = cache_get_row_int(total, 1),
faction = cache_get_row_int(total, 2),
x = cache_get_row_float(total, 3),
y = cache_get_row_float(total, 4),
z = cache_get_row_float(total, 5),
rx = cache_get_row_float(total, 6),
ry = cache_get_row_float(total, 7),
rz = cache_get_row_float(total, 8),
interior = cache_get_row_int(total, 8),
world = cache_get_row_int(total, 10),
cache_get_row(total, 11, name, dbHandle, 128),
openspeed = cache_get_row_float(total, 12),
movex = cache_get_row_float(total, 13),
movey = cache_get_row_float(total, 14),
movez = cache_get_row_float(total, 15);
object = CreateDynamicObject(model, x, y, z, rx, ry, rz, world, -1, -1, 200.0);
Doors[object][doorID] = id;
Doors[object][doorModel] = model;
Doors[object][doorFaction] = faction;
Doors[object][doorPosX] = x;
Doors[object][doorPosY] = y;
Doors[object][doorPosZ] = z;
Doors[object][doorPosRX] = rx;
Doors[object][doorPosRY] = ry;
Doors[object][doorPosRZ] = rz;
Doors[object][doorOpenSpeed] = openspeed;
Doors[object][doorMoveX] = movex;
Doors[object][doorMoveY] = movey;
Doors[object][doorMoveZ] = movez;
Doors[object][doorInterior] = interior;
Doors[object][doorVirtualWorld] = world;
format(Doors[object][doorName], 256, "%s", name);
Doors[object][doorObjectOn] = 1;
Doors[object][doorObject] = object;
total++;
}
}
format(msg,sizeof(msg), "Loaded %d dynamic movable doors from MySQL.", total);
printf(msg);
return 1;
}
Run time error 4: "Array index out of bounds"
new array[1000]; // Your current array
// and
array[2000] = id; // But save in a larger index than announced
|
Код:
Run time error 4: "Array index out of bounds" You refer to a non-existent index. Example: PHP код:
|
|
This is just an example. I showed how you can refer to a cell array on the compiler encountered an error
|
// Before
new Doors[1000][?];
// After
new Doors[2000][?]; // <- Up index of 1000 to 2000
enum MOVEABLE_DOORS
{
doorID,
doorModel,
doorObject,
doorName[256],
doorInterior,
doorVirtualWorld,
doorFaction,
doorOpened,
Float:doorPosX,
Float:doorPosY,
Float:doorPosZ,
Float:doorPosRX,
Float:doorPosRY,
Float:doorPosRZ,
Float:doorOpenSpeed,
Float:doorMoveX,
Float:doorMoveY,
Float:doorMoveZ,
doorObjectOn
}
new Doors[MAX_OBJECTS][MOVEABLE_DOORS];
public LoadDynamicCCTV()
{
new
rows,
fields,
total = 0,
object,
world,
Float:x, Float:y, Float:z,
Float:rx, Float:ry, Float:rz
;
cache_get_data(rows, fields);
if(rows) {
while(total < rows) {
x = cache_get_row_float(total, 2);
y = cache_get_row_float(total, 3);
z = cache_get_row_float(total, 4);
rx = cache_get_row_float(total, 5);
ry = cache_get_row_float(total, 6);
rz = cache_get_row_float(total, 7);
world = cache_get_row_int(total, 9);
object = CreateDynamicObject(1886, x, y, z, rx, ry, rz, -1, -1, -1, 200.0);
CCTVInfo[object][tvPosX] = x;
CCTVInfo[object][tvPosY] = y;
CCTVInfo[object][tvPosZ] = z;
CCTVInfo[object][tvPosRX] = rx;
CCTVInfo[object][tvPosRY] = ry;
CCTVInfo[object][tvPosRZ] = rz;
CCTVInfo[object][tvVirtualWorld] = world;
CCTVInfo[object][tvID] = cache_get_row_int(total, 0);
CCTVInfo[object][tvFaction] = cache_get_row_int(total, 1);
CCTVInfo[object][tvInterior] = cache_get_row_int(total, 8);
cache_get_row(total, 10, CCTVInfo[object][tvName], dbHandle, 256);
CCTVInfo[object][tvObjectOn] = 1;
CCTVInfo[object][tvObject] = object;
total++;
}
}
format(msg,sizeof(msg), "Loaded %d dynamic CCTV's from MySQL.", total);
printf(msg);
return 1;
}
public LoadMoveDoors()
{
new
rows,
fields,
total = 0,
object,
world,
Float:x, Float:y, Float:z,
Float:rx, Float:ry, Float:rz
;
cache_get_data(rows, fields);
if(rows) {
while(total < rows) {
x = cache_get_row_float(total, 3);
y = cache_get_row_float(total, 4);
z = cache_get_row_float(total, 5);
rx = cache_get_row_float(total, 6);
ry = cache_get_row_float(total, 7);
rz = cache_get_row_float(total, 8);
world = cache_get_row_int(total, 10);
object = CreateDynamicObject(model, x, y, z, rx, ry, rz, world, -1, -1, 200.0);
Doors[object][doorPosX] = x;
Doors[object][doorPosY] = y;
Doors[object][doorPosZ] = z;
Doors[object][doorPosRX] = rx;
Doors[object][doorPosRY] = ry;
Doors[object][doorPosRZ] = rz;
Doors[object][doorVirtualWorld] = world;
Doors[object][doorID] = cache_get_row_int(total, 0);
Doors[object][doorModel] = cache_get_row_int(total, 1);
Doors[object][doorFaction] = cache_get_row_int(total, 2);
Doors[object][doorPosX] = cache_get_row_float(total, 3);
Doors[object][doorPosY] = cache_get_row_float(total, 4);
Doors[object][doorPosZ] = cache_get_row_float(total, 5);
Doors[object][doorPosRX] = cache_get_row_float(total, 6);
Doors[object][doorPosRY] = cache_get_row_float(total, 7);
Doors[object][doorPosRZ] = cache_get_row_float(total, 8);
Doors[object][doorInterior] = cache_get_row_int(total, 9); // Why ID 8? Fixed.
cache_get_row(total, 11, Doors[object][doorName], dbHandle, 256),
Doors[object][doorOpenSpeed] = cache_get_row_float(total, 12);
Doors[object][doorMoveX] = cache_get_row_float(total, 13);
Doors[object][doorMoveY] = cache_get_row_float(total, 14);
Doors[object][doorMoveZ] = cache_get_row_float(total, 15);
Doors[object][doorObjectOn] = 1;
Doors[object][doorObject] = object;
total++;
}
}
format(msg,sizeof(msg), "Loaded %d dynamic movable doors from MySQL.", total);
printf(msg);
return 1;
}