Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- stock IsRemovePlayerItemData(playerid, const info[inventInfoEnum], &kol_vo = -1) return RemovePlayerItemData(playerid, info[inventInfoEnum], kol_vo, false);
- stock RemovePlayerItemData(playerid, const info[inventInfoEnum], &kol_vo = -1, bool:action = true)
- {
- new item = info[ITEM];
- new kolvo = info[KOLVO];
- if(!ITEM_INFO[item][STACK] || item >= sizeofs_item_info) return false;
- new bool:shop_close_item[MAX_INVENT_ITEM];
- if(PI[playerid][pLavkaID]!=-1)
- {
- new lavka = PI[playerid][pLavkaID];
- if(LavkaInfo[lavka][lavkaType] == SHOP_TYPE_BUY)
- {
- for(new q = sizeof(SHOP_INVITEM[]), t = 0, shop_close_item_sizeofs = sizeof(shop_close_item); t < q; t++)
- {
- if(SHOP_INVITEM[lavka][t] != -1 && SHOP_INVITEM[lavka][t] < shop_close_item_sizeofs)
- {
- shop_close_item[SHOP_INVITEM[lavka][t]] = true;
- }
- }
- }
- }
- new max_slot = GetPlayerMaxInventorySlot(playerid);
- if(kolvo == -1)
- {
- new player_info[inventInfoEnum];
- for(new i = 0; i < max_slot; i++)
- {
- GetPlayerInventoryData(playerid, i, player_info);
- if(datacmp(player_info, info) && !shop_close_item[i])
- {
- if(player_info[KOLVO] > 0) kol_vo += player_info[KOLVO];
- ResetPlayerInventoryData(playerid, i);
- }
- }
- return bool:kol_vo;
- }
- else
- {
- new value[MAX_INVENT_ITEM][2], it;
- new player_info[inventInfoEnum];
- for(new i = 0; i < max_slot; i++)
- {
- GetPlayerInventoryData(playerid, i, player_info);
- if(datacmp(player_info, info) && !shop_close_item[i])
- {
- value[it][0] = player_info[KOLVO];
- value[it][1] = i;
- if(++it >= sizeof(value)) break;
- }
- }
- if(!it) return false;
- for(new i = 0;i<it;i++)
- {
- if(value[i][0] >= kolvo)
- {
- kol_vo = kolvo;
- value[i][0] -= kolvo;
- kolvo = 0;
- break;
- }
- else if(value[i][0] < kolvo)
- {
- kol_vo += value[i][0];
- kolvo -= value[i][0];
- value[i][0] = 0;
- }
- }
- if(kolvo > 0) return false;
- if(action)
- {
- for(new i,inv_item,check_item,check_kolvo;i<it;i++)
- {
- inv_item = value[i][1];
- check_item = GetPlayerInventoryItem(playerid, inv_item);
- check_kolvo = GetPlayerInventoryKolvo(playerid, inv_item, check_item);
- if(check_kolvo != value[i][0])
- {
- SetPlayerInventoryKolvo(playerid, inv_item, check_item, value[i][0]);
- UpdatePlayerInventoryBlock(playerid, inv_item);
- }
- }
- }
- return true;
- }
- }
- stock IsRemovePlayerItem(playerid, item, kolvo, &kol_vo = -1) return RemovePlayerItem(playerid, item, kolvo, kol_vo, false);
- stock RemovePlayerItem(playerid, item, kolvo, &kol_vo = -1, bool:action = true)
- {
- new info[inventInfoEnum];
- info = inventInfoEnum_NULL;
- info[ITEM] = item;
- info[KOLVO] = kolvo;
- return RemovePlayerItemData(playerid, info, kol_vo, action);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement