Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Inventaire client
- ITEMS = {}
- -- flag to keep track of whether player died to prevent
- -- multiple runs of player dead code
- local playerdead = false
- -- register events, only needs to be done once
- RegisterNetEvent("item:reset")
- RegisterNetEvent("item:getItems")
- RegisterNetEvent("item:updateQuantity")
- RegisterNetEvent("item:setItem")
- RegisterNetEvent("item:sell")
- RegisterNetEvent("gui:getItems")
- -- handles when a player spawns either from joining or after death
- AddEventHandler("playerSpawned", function()
- TriggerServerEvent("item:getItems")
- -- reset player dead flag
- playerdead = false
- end)
- AddEventHandler("gui:getItems", function(THEITEMS)
- ITEMS = {}
- ITEMS = THEITEMS
- end)
- AddEventHandler("player:receiveItem", function(item, quantity)
- item = tonumber(item)
- if (ITEMS[item] == nil) then
- new(item, quantity)
- else
- add({ item, quantity })
- end
- end)
- AddEventHandler("player:looseItem", function(item, quantity)
- item = tonumber(item)
- if (ITEMS[item].quantity >= quantity) then
- delete({ item, quantity })
- end
- end)
- AddEventHandler("player:sellItem", function(item, price)
- item = tonumber(item)
- if (ITEMS[item].quantity > 0) then
- sell({ item, price })
- end
- end)
- function sell(arg)
- local itemId = tonumber(arg[1])
- local price = arg[2]
- local item = ITEMS[itemId]
- item.quantity = item.quantity - 1
- TriggerServerEvent("item:sell", itemId, item.quantity, price)
- end
- function delete(arg)
- local itemId = tonumber(arg[1])
- local qty = arg[2]
- local item = ITEMS[itemId]
- item.quantity = item.quantity - qty
- TriggerServerEvent("item:updateQuantity", item.quantity, itemId)
- InventoryMenu()
- end
- function add(arg)
- local itemId = tonumber(arg[1])
- local qty = arg[2]
- local item = ITEMS[itemId]
- item.quantity = item.quantity + qty
- TriggerServerEvent("item:updateQuantity", item.quantity, itemId)
- InventoryMenu()
- end
- function new(item, quantity)
- TriggerServerEvent("item:setItem", item, quantity)
- TriggerServerEvent("item:getItems")
- end
- function getQuantity(itemId)
- return ITEMS[tonumber(itemId)].quantity
- end
- AddEventHandler("player:getQuantity", function(item, call)
- call({count=getQuantity(item)})
- end)
- function InventoryMenu()
- ped = GetPlayerPed(-1);
- MenuTitle = "Inventaire:"
- ClearMenu()
- for ind, value in pairs(ITEMS) do
- if (value.quantity > 0) then
- Menu.addButton(tostring(value.libelle) .. " : " .. tostring(value.quantity), "ItemMenu", ind)
- end
- end
- end
- function ItemMenu(itemId)
- MenuTitle = "Details:"
- ClearMenu()
- Menu.addButton("Supprimer 1", "delete", { itemId, 1 })
- Menu.addButton("Ajouter 1", "add", { itemId, 1 })
- end
- Citizen.CreateThread(function()
- while true do
- Citizen.Wait(0)
- if IsControlJustPressed(1, 311) then
- InventoryMenu() -- Menu to draw
- Menu.hidden = not Menu.hidden -- Hide/Show the menu
- end
- Menu.renderGUI() -- Draw menu on each tick if Menu.hidden = false
- if IsEntityDead(PlayerPedId()) then
- PlayerIsDead()
- -- prevent the death check from overloading the server
- playerdead = true
- end
- end
- end)
- function PlayerIsDead()
- -- do not run if already ran
- if playerdead then
- return
- end
- TriggerServerEvent("item:reset")
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement