@@ -6,13 +6,13 @@ function zf.hasItem(source, item, amount)
66 local itemData = ox_inventory :GetItem (source , item , nil , true )
77 if itemData >= amount then return true end
88 elseif zf .core == " qb-core" then
9- local Player = zf . CoreObject .Functions .GetPlayer (source )
9+ local Player = CoreObject .Functions .GetPlayer (source )
1010 if not Player then return false end
1111 local itemData = Player .Functions .GetItemByName (item )
1212 if not itemData then return false end
1313 if itemData .amount >= amount then return true end
1414 elseif zf .core == " esx" then
15- local Player = zf . CoreObject .GetPlayerFromId (source )
15+ local Player = CoreObject .GetPlayerFromId (source )
1616 local itemName , itemCount = Player .hasItem (item )
1717 if itemCount >= amount then return true end
1818 end
2121
2222function zf .giveItem (source , item , amount , metadata )
2323 if zf .inventory == ' ox' then
24- ox_inventory :AddItem (source , item , amount , metadata )
24+ local added , _ = ox_inventory :AddItem (source , item , amount , metadata )
25+ return added
2526 elseif zf .core == " qb-core" then
26- local Player = zf . CoreObject .Functions .GetPlayer (source )
27+ local Player = CoreObject .Functions .GetPlayer (source )
2728 if not Player then return end
28- Player .Functions .AddItem (item , amount , false , metadata or {})
29- TriggerClientEvent (" inventory:client:ItemBox" , source , zf .CoreObject .Shared .Items [item ], " add" , amount )
29+ if Player .Functions .AddItem (item , amount , false , metadata or {}) then
30+ TriggerClientEvent (" inventory:client:ItemBox" , source , CoreObject .Shared .Items [item ], " add" , amount )
31+ return true
32+ end
3033 elseif zf .core == " esx" then
31- local Player = zf .CoreObject .GetPlayerFromId (source )
34+ local Player = CoreObject .GetPlayerFromId (source )
35+ local original_amount = Player .getInventoryItem (item )?.count
3236 Player .addInventoryItem (item , amount , metadata or {})
37+ local new_amount = Player .getInventoryItem (item )?.count
38+ if new_amount >= original_amount + amount then
39+ return true
40+ end
3341 end
42+ return false
3443end
3544
3645function zf .removeItem (source , item , amount , metadata )
@@ -41,14 +50,14 @@ function zf.removeItem(source, item, amount, metadata)
4150 return true
4251 end
4352 elseif zf .core == " qb-core" then
44- local Player = zf . CoreObject .Functions .GetPlayer (source )
53+ local Player = CoreObject .Functions .GetPlayer (source )
4554 if not Player then return end
4655 if Player .Functions .RemoveItem (item , amount ) then
47- TriggerClientEvent (" inventory:client:ItemBox" , source , zf . CoreObject .Shared .Items [item ], " remove" , amount )
56+ TriggerClientEvent (" inventory:client:ItemBox" , source , CoreObject .Shared .Items [item ], " remove" , amount )
4857 return true
4958 end
5059 elseif zf .core == " esx" and zf .inventory == ' esx' then
51- local Player = zf . CoreObject .GetPlayerFromId (source )
60+ local Player = CoreObject .GetPlayerFromId (source )
5261 local removedItem = Player .getInventoryItem (item )
5362 if removedItem .count >= amount then
5463 Player .removeInventoryItem (item , amount )
6170function zf .createUsableItem (item , cb )
6271 if ConsumableItems [item ] then print (' [ZF-LIB] The item ' .. item .. ' is already registered as a consumable item. Skipping the registration of this item.' ) end
6372 if zf .core == " qb-core" then
64- zf . CoreObject .Functions .CreateUseableItem (item , cb )
73+ CoreObject .Functions .CreateUseableItem (item , cb )
6574 ConsumableItems [item ] = cb
6675 elseif zf .core == " esx" and zf .inventory == ' esx' then
67- zf . CoreObject .RegisterUsableItem (item , cb )
76+ CoreObject .RegisterUsableItem (item , cb )
6877 ConsumableItems [item ] = cb
6978 end
7079end
@@ -82,12 +91,12 @@ function zf.getItemCount(source, item)
8291 local itemData = ox_inventory :GetItem (source , item , nil , true )
8392 if itemData then return itemData else return 0 end
8493 elseif zf .core == " qb-core" then
85- local Player = zf . CoreObject .Functions .GetPlayer (source )
94+ local Player = CoreObject .Functions .GetPlayer (source )
8695 if not Player then return 0 end
8796 local itemData = Player .Functions .GetItemByName (item )
8897 if itemData then return itemData .amount else return 0 end
8998 elseif zf .core == " esx" then
90- local Player = zf . CoreObject .GetPlayerFromId (source )
99+ local Player = CoreObject .GetPlayerFromId (source )
91100 local itemData = Player .getInventoryItem (item )
92101 if itemData then return itemData .count else return 0 end
93102 end
@@ -105,7 +114,7 @@ zf.callback.register('zf:getItemCount', function(source, item)
105114end )
106115
107116zf .callback .register (' zf:getItemLabel' , function (source , itemName )
108- local itemLabel = zf . CoreObject .GetItemLabel (itemName )
117+ local itemLabel = CoreObject .GetItemLabel (itemName )
109118 return itemLabel
110119end )
111120
0 commit comments