2021-05-17, 09:05 AM
(2021-05-17, 08:51 AM)Y_Less Wrote: You used `>` instead of `>=` to check the slot upper-bounds.
You also use a define for the upper bound, which is good, then hard-coded the value in the string, which defeats the object.
The error notifcation steal running sir
Code:
[TRUNK_DEBUG]: Loaded trunk have:[0 row(s)]
[debug] Run time error 4: "Array index out of bounds"
[debug]? Attempted to read/write array element at index 4 in array of size 4
[debug] AMX backtrace:
[debug] #0 00052014 in ?? () in SuhartawanWorld.amx
[debug] #1 000fd494 in public GEOLITE_OnGameModeInit () in SuhartawanWorld.amx
[debug] #2 0004ed58 in public T3DV4_OnGameModeInit () in SuhartawanWorld.amx
[debug] #3 0004ca6c in public Indirection_OnGameModeInit () in SuhartawanWorld.amx
[debug] #4 0002b860 in public ScriptInit_OnGameModeInit () in SuhartawanWorld.amx
[debug] #5 0001d968 in public GZ_OnGameModeInit () in SuhartawanWorld.amx
[debug] #6 0001b454 in ?? () in SuhartawanWorld.amx
[debug] #7 native CallLocalFunction () in samp-server.exe
[debug] #8 0001aff8 in public SSCANF_OnGameModeInit () in SuhartawanWorld.amx
[debug] #9 0000d004 in public FIXES_OnGameModeInit () in SuhartawanWorld.amx
[debug] #10 000037c4 in public OnPlayerLeaveDynamicArea () in SuhartawanWorld.amx
[debug] Run time error 20: "Invalid index parameter (bad entry point)"
Script[gamemodes/SuhartawanWorld.amx]: Run time error 20: "Invalid index parameter (bad entry point)"
Pawn script:
Code:
stock LoadOCTrunks()
{
? ? ? ? ?
? ? ? ? ? new Cache: result, rows;
? ? ? ? ? new vehicleid, VID, slot, buffer;
? ? ? ? ? result = mysql_query(g_Sql, "SELECT * FROM `trunkdata` ORDER BY oc_id ASC, slot ASC", true);
? ? ? ? ? rows = cache_num_rows();
? ? ? ? ? printf("[TRUNK_DEBUG]: Loaded trunk have:[%d row(s)]", rows);
? ? ? ? ? //VID = GetOwnableCarBySqlID( cache_get_value_int(idx, "oc_id", GetOwnableCarData(vehicleid, OC_SQL_ID) ));
? ? ? ? ? //v=GetRealIdCar(VID);
? ? ? ? ? for(new v; v <= MAX_VEHICLES; v )
? ? ? ? ? {
? ? ? ? ? ? ? for(new s; s <= MAX_VEHICLE_TRUNK_SLOTS; s )
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? for(new idx; idx <= rows; idx )
? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? cache_get_value_int(idx, "slot", get_vehicle_trunk[v][s][TRUNK_SLOT] );
? ? ? ? ? ? ? ? ? ? ? ? ? slot = get_vehicle_trunk[v][s][TRUNK_SLOT];
? ? ? ? ? ? ? ? ? ? ? ? ? if(slot != 0)
? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(get_vehicle_trunk[v][s][TRUNK_SLOT] == slot)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("[TRUNK_DEBUG]: Slot loaded in ID:[%d]", slot);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if(v != INVALID_VEHICLE_ID)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //if(GetTrunkData(v, slot, TRUNK_SQL_ID)) continue;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cache_get_value_int(idx, "id", get_vehicle_trunk[v][slot][TRUNK_SQL_ID] );
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? printf("[TRUNK_DEBUG]: Data trunk was? downloaded from SQL ID:[%d]", get_vehicle_trunk[v][slot][TRUNK_SQL_ID]);
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cache_get_value_int(idx, "item_type", get_vehicle_trunk[v][slot][TRUNK_ITEM_TYPE] );
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cache_get_value_int(idx, "amount", get_vehicle_trunk[v][slot][TRUNK_ITEM_AMOUNT] );
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cache_get_value_int(idx, "value", get_vehicle_trunk[v][slot][TRUNK_ITEM_VALUE] );
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? buffer ;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }?
? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? ? ? ?
? ? ? ? ? cache_delete(result);
? ? ? ? ? printf("[Trunks]: Item on upload from SQL: %d", buffer);
}