23.09.2017, 18:15
Quote:
|
Code:
function:Query_LoadInvItems(playerid, invid)
{
new rows, fields;
cache_get_row_count(rows);
cache_get_field_count(fields);
for (new i = 0; i < rows; i++)
{
cache_get_value_name_int(i, "items_id", InvItems[i][iItemsID]);
cache_get_value_name_int(i, "char_id", InvItems[i][iCharID]);
cache_get_value_name_int(i, "modelid", InvItems[i][iModelID]);
cache_get_value_name(i, "item_name", InvItems[i][iItemName], 50);
cache_get_value_name_int(i, "item_amount", InvItems[i][iItemAmount]);
}
}
It should be (If you have no clue how to assign the right index, make a 3d array [just use my version below]):
cache_get_value_name_int(i, "items_id", InvItems[playerid][i][iItemsID]);
cache_get_value_name_int(i, "char_id", InvItems[playerid][i][iCharID]);
cache_get_value_name_int(i, "modelid", InvItems[playerid][i][iModelID]);
cache_get_value_name(i, "item_name", InvItems[playerid][i][iItemName], 50);
cache_get_value_name_int(i, "item_amount", InvItems[playerid][i][iItemAmount]);
But you should use (better version):
cache_get_value_name_int(i, "items_id", InvItems[playerid*MAX_ITEM+i][iItemsID]);
cache_get_value_name_int(i, "char_id", InvItems[playerid*MAX_ITEM+i][iCharID]);
cache_get_value_name_int(i, "modelid", InvItems[playerid*MAX_ITEM+i][iModelID]);
cache_get_value_name(i, "item_name", InvItems[playerid*MAX_ITEM+i][iItemName], 50);
cache_get_value_name_int(i, "item_amount", InvItems[playerid*MAX_ITEM+i][iItemAmount]);
// Explaination:
// Loop [player id: 0]
InvItems[playerid * 20 + i (0)][variable]
InvItems[playerid * 20 + i (1)][variable]
InvItems[playerid * 20 + i (2)][variable]
// Loop [player id: 1]
InvItems[playerid * 20 + i (20)][variable]
InvItems[playerid * 20 + i (21)][variable]
InvItems[playerid * 20 + i (22)][variable]
// To test out the values
GetPlayerItems(playerid) {
new i=-1, tempStr[256];
for(;++i<MAX_ITEMS;) {
format(tempStr, sizeof tempStr, "Assigned Index: %i | iItemsID: %i", (playerid * MAX_ITEMS + i), InvItems[playerid*MAX_ITEM+i][iItemsID]);
}
SendClientMessage(playerid, -1, tempStr);
return 1;
}
Change the array size to:
InvItems[MAX_ITEMS * MAX_PLAYERS][ENUM]
|
Well, it's fetching it, just not setting it to the enums.


