Scripts/resources/[jims]/jim-recycle/server/server.lua

73 lines
3.4 KiB
Lua
Raw Normal View History

2024-12-29 19:49:12 +00:00
local QBCore = exports['qb-core']:GetCoreObject()
RegisterNetEvent('QBCore:Server:UpdateObject', function() if source ~= '' then return false end QBCore = exports['qb-core']:GetCoreObject() end)
AddEventHandler('onResourceStart', function(resource) if GetCurrentResourceName() ~= resource then return end
for k in pairs(Config.Prices) do if not QBCore.Shared.Items[k] then print("^5Debug^7: ^6Prices^7: ^2Missing Item from ^4QBCore^7.^4Shared^7.^4Items^7: '^6"..k.."^7'") end end
if not QBCore.Shared.Items["recyclablematerial"] then print("^5Debug^7: ^2Missing Item from ^4QBCore^7.^4Shared^7.^4Items^7: '^6recyclablematerial^7'") end
end)
QBCore.Functions.CreateCallback('jim-recycle:GetRecyclable', function(source, cb)
if QBCore.Functions.GetPlayer(source).Functions.GetItemByName("recyclablematerial") then cb(QBCore.Functions.GetPlayer(source).Functions.GetItemByName("recyclablematerial").amount)
else cb(0) end
end)
QBCore.Functions.CreateCallback('jim-recycle:GetCash', function(source, cb) cb(QBCore.Functions.GetPlayer(source).Functions.GetMoney("cash")) end)
RegisterServerEvent("jim-recycle:DoorCharge", function() QBCore.Functions.GetPlayer(source).Functions.RemoveMoney("cash", Config.PayAtDoor) end)
--- Event For Getting Recyclable Material----
RegisterServerEvent("jim-recycle:getrecyclablematerial", function()
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local amount = math.random(Config.RecycleAmounts.recycleMin, Config.RecycleAmounts.recycleMax)
Player.Functions.AddItem("recyclablematerial", amount)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items["recyclablematerial"], 'add', amount)
Wait(500)
end)
RegisterServerEvent("jim-recycle:TradeItems", function(data)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
local remAmount, min, max
if data == 1 then
remAmount = 1
itemAmount = 1
min = 1
max = 1
elseif data == 2 then
remAmount = 10
itemAmount = 2
min = Config.RecycleAmounts.tenMin
max = Config.RecycleAmounts.tenMax
elseif data == 3 then
remAmount = 100
itemAmount = 6
min = Config.RecycleAmounts.hundMin
max = Config.RecycleAmounts.hundMax
elseif data == 4 then
remAmount = 1000
itemAmount = 8
min = Config.RecycleAmounts.thouMin
max = Config.RecycleAmounts.thouMax
end
if Player.Functions.RemoveItem("recyclablematerial", remAmount) then
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items["recyclablematerial"], 'remove', remAmount) end
Wait(1000)
for i = 1, itemAmount do
randItem = Config.TradeTable[math.random(1, #Config.TradeTable)]
local amount = math.random(min, max)
Player.Functions.AddItem(randItem, amount)
TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[randItem], 'add', amount)
end
end)
RegisterNetEvent("jim-recycle:Selling:Mat", function(item)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if Player.Functions.GetItemByName(item) ~= nil then
local amount = Player.Functions.GetItemByName(item).amount
local pay = (amount * Config.Prices[item])
if Player.Functions.RemoveItem(item, amount) then TriggerClientEvent('inventory:client:ItemBox', src, QBCore.Shared.Items[item], 'remove', amount) end
Player.Functions.AddMoney('cash', pay)
TriggerClientEvent("QBCore:Notify", src, Loc[Config.Lan].success["get_paid"]..pay..",-", "success")
end
end)