Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <a_samp>
- #include <mSelection> // d0
- #include <zcmd> // Zeex
- #include <md-sort> // Slice
- #define MAX_INV_ITEMS (150)
- static
- pInvItems[MAX_PLAYERS][MAX_INV_ITEMS];
- #define EXPORT%1(%3) \
- forward %1(%3); \
- public %1(%3)
- #define INV_MENU (0x9ACD32)
- CMD:inventaire(playerid, params[])
- {
- if(!pInvItems[playerid][0])
- return SendClientMessage(playerid, -1, "Inventaire vide !");
- SortDeepArray(pInvItems, playerid, .order = SORT_DESC);
- if(isnull(params))
- ShowModelSelectionMenuEx(playerid, pInvItems[playerid], strlen(pInvItems[playerid]), "Inventaire", INV_MENU);
- else
- {
- new items;
- for(new i = 0, l = strval(params); i < l; ++i)
- {
- if(pInvItems[playerid][i]) items++;
- else break;
- }
- ShowModelSelectionMenuEx(playerid, pInvItems[playerid], items, "Inventaire", INV_MENU);
- }
- return 1;
- }
- public OnPlayerModelSelectionEx(playerid, response, extraid, modelid)
- {
- if(extraid == INV_MENU)
- {
- new itemid;
- for(new i = 0; i < MAX_INV_ITEMS; ++i)
- {
- if(pInvItems[playerid][i] == modelid)
- {
- itemid = i;
- break;
- }
- }
- CallRemoteFunction("OnPlayerSelectInvItem", "iii", playerid, itemid, modelid);
- }
- return 1;
- }
- // EXPORT
- EXPORT AddInvItem(playerid, modelid)
- {
- if(strlen(pInvItems[playerid]) == MAX_INV_ITEMS)
- return -1;
- if(!modelid)
- return -1;
- SortDeepArray(pInvItems, playerid, .order = SORT_DESC);
- new len = strlen(pInvItems[playerid]);
- pInvItems[playerid][len] = modelid;
- return len;
- }
- EXPORT DelInvItemByItem(playerid, itemid)
- {
- if(!pInvItems[playerid][itemid])
- return 0;
- pInvItems[playerid][itemid] = 0;
- SortDeepArray(pInvItems, playerid, .order = SORT_DESC);
- return 1;
- }
- EXPORT DelInvItemByModel(playerid, modelid)
- {
- SortDeepArray(pInvItems, playerid, .order = SORT_DESC);
- for(new i = 0, l = strlen(pInvItems[playerid]); i < l; ++i)
- {
- if(pInvItems[playerid][i] == modelid)
- return pInvItems[playerid][i] = 0, 1;
- }
- return 0;
- }
- EXPORT GetPlayerInv(playerid, arr[MAX_INV_ITEMS], const size)
- {
- for(new i = 0; i < size; ++i) arr[i] = pInvItems[playerid][i];
- return 1;
- }
- EXPORT HasInvItem(playerid, itemid)
- {
- return bool:pInvItems[playerid][itemid];
- }
- EXPORT HasInvModel(playerid, modelid)
- {
- for(new i = 0, l = strlen(pInvItems[playerid]); i < l; ++i)
- {
- if(pInvItems[playerid][i] == modelid) return true;
- }
- return false;
- }
- EXPORT ShowPlayerInv(playerid, const size)
- {
- if(!size)
- {
- new emptystr[2];
- emptystr[0] = EOS;
- emptystr[1] = EOS;
- return cmd_inventaire(playerid, emptystr);
- }
- else
- {
- if(size > MAX_INV_ITEMS)
- return 0;
- new params[4];
- format(params, 4, "%d", size);
- return cmd_inventaire(playerid, params);
- }
- }
- EXPORT SetPlayerInv(playerid, arr[MAX_INV_ITEMS], const size)
- {
- for(new i = 0; i < size; ++i) pInvItems[playerid][i] = arr[i];
- SortDeepArray(pInvItems, playerid, .order = SORT_DESC);
- return 1;
- }
- EXPORT SetPlayerInvItem(playerid, itemid, modelid)
- {
- if(!pInvItems[playerid][itemid])
- return 0;
- if(!modelid)
- return 0;
- pInvItems[playerid][itemid] = modelid;
- SortDeepArray(pInvItems, playerid, .order = SORT_DESC);
- return 1;
- }
- EXPORT CountInvItem(playerid, modelid)
- {
- new count;
- for(new i = 0, l = strlen(pInvItems[playerid]); i < l; ++i)
- {
- if(pInvItems[playerid][i] == modelid) count++;
- }
- return count;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement