-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserver.lua
More file actions
50 lines (45 loc) · 1.74 KB
/
server.lua
File metadata and controls
50 lines (45 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
local QBCore = exports['qb-core']:GetCoreObject()
local Marketplace = {}
RegisterServerEvent("rod_market:getItems")
AddEventHandler("rod_market:getItems", function()
local src = source
TriggerClientEvent("rod_market:openMenu", src, Marketplace)
end)
RegisterServerEvent("rod_market:listItem")
AddEventHandler("rod_market:listItem", function(item, amount, price)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if not Player then return end
if Player.Functions.RemoveItem(item, amount) then
local newItem = {
id = math.random(100000, 999999),
name = QBCore.Shared.Items[item].label,
item = item,
amount = amount,
price = price,
seller = Player.PlayerData.charinfo.firstname
}
table.insert(Marketplace, newItem)
TriggerClientEvent("QBCore:Notify", src, "Item listed!")
else
TriggerClientEvent("QBCore:Notify", src, "You don’t have that item!", "error")
end
end)
RegisterServerEvent("rod_market:buyItem")
AddEventHandler("rod_market:buyItem", function(data)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
for i, v in pairs(Marketplace) do
if v.id == data.id then
local totalPrice = v.price * v.amount
if Player.Functions.RemoveMoney("cash", totalPrice) then
Player.Functions.AddItem(v.item, v.amount)
table.remove(Marketplace, i)
TriggerClientEvent("QBCore:Notify", src, "Item purchased!")
else
TriggerClientEvent("QBCore:Notify", src, "Not enough cash!", "error")
end
break
end
end
end)