19.08.2014, 17:26
Hi guys, I've got a problem with this code:
It doesn't run because of the second loop, if I delete him it run succesfully.
These are the results of crashdetect:
[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at index 20 past array upper bound 19
[debug] AMX backtrace:
[debug] #0 0000b350 in ?? () from farmer.amx
[debug] #1 000069c4 in public zcmd_OnGameModeInit () from farmer.amx
[debug] #2 native CallLocalFunction () from samp-server.exe
[debug] #3 00006110 in public SSCANF_OnGameModeInit () from farmer.amx
[debug] #4 native CallLocalFunction () from samp-server.exe
[debug] #5 000003ec in public OnGameModeInit () from farmer.amx
Code:
LoadTerrain() { new lString[128]; for(new j; j<MAX_TERRAINS; j++){ format(Query, sizeof(Query), "SELECT * FROM Terrain WHERE ID = '%d'", j); mysql_query(Query); mysql_store_result(); if(mysql_num_rows() != 0){ if(mysql_fetch_row_format(Query,"|")){ sscanf(Query, "p<|>e<ds[24]ddfffffffddddf>", TerrainInfo[j]); TerrainCount++; } if(TerrainInfo[j][tStatus] == true) { format(lString, 128, "Lotto{FFFFFF} N: %d", TerrainInfo[j][tID]); } else{ format(lString, 128, "Lotto{FFFFFF} N: %d\nIn vendita", TerrainInfo[j][tID]); } TerrainInfo[j][tPick] = CreatePickup(1239, 1, TerrainInfo[j][tX], TerrainInfo[j][tY], TerrainInfo[j][tZ], 0); TerrainInfo[j][tLabel] = Create3DTextLabel(lString, 0xC4C400FF, TerrainInfo[j][tX], TerrainInfo[j][tY], TerrainInfo[j][tZ]+0.5, 40.0, 0, 0); TerrainInfo[j][tZone] = GangZoneCreate(TerrainInfo[j][tminX], TerrainInfo[j][tminY], TerrainInfo[j][tmaxX], TerrainInfo[j][tmaxY]); if(TerrainInfo[j][tNPlants] > 0){ for(new x; x<TerrainInfo[j][tNPlants]; x++){ new Float: rX = RandomXY(TerrainInfo[j][tminX], TerrainInfo[j][tmaxX]), Float: rY = RandomXY(TerrainInfo[j][tminY], TerrainInfo[j][tmaxY]), Float: rZ; GetPointZPos(rX, rY, rZ); TerrainInfo[j][tObject][x] = CreateObject(19473, rX, rY, rZ-1, 0, 0, 0, 0); } } if(TerrainInfo[j][tGrowing] == 1){ SetTimerEx("GrowUP", 1000, true, "i", j); } } } printf("Sono stati caricati %d terreni", TerrainCount); mysql_free_result(); return 1; }
These are the results of crashdetect:
[debug] Run time error 4: "Array index out of bounds"
[debug] Accessing element at index 20 past array upper bound 19
[debug] AMX backtrace:
[debug] #0 0000b350 in ?? () from farmer.amx
[debug] #1 000069c4 in public zcmd_OnGameModeInit () from farmer.amx
[debug] #2 native CallLocalFunction () from samp-server.exe
[debug] #3 00006110 in public SSCANF_OnGameModeInit () from farmer.amx
[debug] #4 native CallLocalFunction () from samp-server.exe
[debug] #5 000003ec in public OnGameModeInit () from farmer.amx