Advertisement
ykos

Untitled

Aug 8th, 2021
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.74 KB | None | 0 0
  1.  
  2. stock IsRemovePlayerItemData(playerid, const info[inventInfoEnum], &kol_vo = -1) return RemovePlayerItemData(playerid, info[inventInfoEnum], kol_vo, false);
  3. stock RemovePlayerItemData(playerid, const info[inventInfoEnum], &kol_vo = -1, bool:action = true)
  4. {
  5.     new item = info[ITEM];
  6.     new kolvo = info[KOLVO];
  7.     if(!ITEM_INFO[item][STACK] || item >= sizeofs_item_info) return false;
  8.     new bool:shop_close_item[MAX_INVENT_ITEM];
  9.     if(PI[playerid][pLavkaID]!=-1)
  10.     {
  11.         new lavka = PI[playerid][pLavkaID];
  12.         if(LavkaInfo[lavka][lavkaType] == SHOP_TYPE_BUY)
  13.         {
  14.             for(new q = sizeof(SHOP_INVITEM[]), t = 0, shop_close_item_sizeofs = sizeof(shop_close_item); t < q; t++)
  15.             {
  16.                 if(SHOP_INVITEM[lavka][t] != -1 && SHOP_INVITEM[lavka][t] < shop_close_item_sizeofs)
  17.                 {
  18.                     shop_close_item[SHOP_INVITEM[lavka][t]] = true;
  19.                 }
  20.             }
  21.         }
  22.     }
  23.     new max_slot = GetPlayerMaxInventorySlot(playerid);
  24.     if(kolvo == -1)
  25.     {
  26.         new player_info[inventInfoEnum];
  27.         for(new i = 0; i < max_slot; i++)
  28.         {
  29.             GetPlayerInventoryData(playerid, i, player_info);
  30.             if(datacmp(player_info, info) && !shop_close_item[i])
  31.             {
  32.                 if(player_info[KOLVO] > 0) kol_vo += player_info[KOLVO];
  33.                 ResetPlayerInventoryData(playerid, i);
  34.             }
  35.         }
  36.         return bool:kol_vo;
  37.     }
  38.     else
  39.     {
  40.         new value[MAX_INVENT_ITEM][2], it;
  41.         new player_info[inventInfoEnum];
  42.         for(new i = 0; i < max_slot; i++)
  43.         {
  44.             GetPlayerInventoryData(playerid, i, player_info);
  45.             if(datacmp(player_info, info) && !shop_close_item[i])
  46.             {
  47.                 value[it][0] = player_info[KOLVO];
  48.                 value[it][1] = i;
  49.                 if(++it >= sizeof(value)) break;
  50.             }
  51.         }
  52.         if(!it) return false;
  53.         for(new i = 0;i<it;i++)
  54.         {
  55.             if(value[i][0] >= kolvo)
  56.             {
  57.                 kol_vo = kolvo;
  58.                 value[i][0] -= kolvo;
  59.                 kolvo = 0;
  60.                 break;
  61.             }
  62.             else if(value[i][0] < kolvo)
  63.             {
  64.                 kol_vo += value[i][0];
  65.                 kolvo -= value[i][0];
  66.                 value[i][0] = 0;
  67.             }
  68.         }
  69.         if(kolvo > 0) return false;
  70.         if(action)
  71.         {
  72.             for(new i,inv_item,check_item,check_kolvo;i<it;i++)
  73.             {
  74.                 inv_item = value[i][1];
  75.                 check_item = GetPlayerInventoryItem(playerid, inv_item);
  76.                 check_kolvo = GetPlayerInventoryKolvo(playerid, inv_item, check_item);
  77.                 if(check_kolvo != value[i][0])
  78.                 {
  79.                     SetPlayerInventoryKolvo(playerid, inv_item, check_item, value[i][0]);
  80.                     UpdatePlayerInventoryBlock(playerid, inv_item);
  81.                 }
  82.             }
  83.         }
  84.         return true;
  85.     }
  86. }
  87.  
  88.  
  89. stock IsRemovePlayerItem(playerid, item, kolvo, &kol_vo = -1) return RemovePlayerItem(playerid, item, kolvo, kol_vo, false);
  90. stock RemovePlayerItem(playerid, item, kolvo, &kol_vo = -1, bool:action = true)
  91. {
  92.     new info[inventInfoEnum];
  93.     info = inventInfoEnum_NULL;
  94.     info[ITEM] = item;
  95.     info[KOLVO] = kolvo;
  96.     return RemovePlayerItemData(playerid, info, kol_vo, action);
  97. }
  98.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement