2026-04-14 17:41:39 +02:00

101 lines
4.0 KiB
Lua

function CreateDailyMission()
local missions = {}
for _, v in pairs(Config.DailyMissions) do
missions[_] = v
missions[_].process = 0
end
return missions
end
local spamDailyMissionPlayer = {}
RegisterServerEvent("codem-truckerjob:AddDailyMissionProcess")
AddEventHandler("codem-truckerjob:AddDailyMissionProcess", function(key)
local src = source
local identifier = GetIdentifier(src)
local playerData = GetPlayerJobData(src)
if playerData then
if spamDailyMissionPlayer[src] then
print('Player ' .. src .. ' tried to execute dailymission trigger too fast')
return
end
spamDailyMissionPlayer[src] = true
SetTimeout(5000, function()
spamDailyMissionPlayer[src] = false
end)
if playerData.dailymissions.data[key].max > playerData.dailymissions.data[key].process then
playerData.dailymissions.data[key].process = playerData.dailymissions.data[key].process + 1
end
if playerData.dailymissions.data[key].process == playerData.dailymissions.data[key].max then
playerData.dailymissions.data[key].process = playerData.dailymissions.data[key].max
AddXP(src, playerData.dailymissions.data[key].xp)
end
SyncPlayerDataByKey(src, "dailymissions", playerData.dailymissions)
ExecuteSql("UPDATE codem_truckerjob SET `dailymissions` = '" ..
json.encode(playerData.dailymissions) .. "' WHERE `identifier` = '" .. identifier .. "'")
end
end)
RegisterServerEvent('codem-truckerjob:CheckDailyMission')
AddEventHandler('codem-truckerjob:CheckDailyMission', function()
local src = source
local identifier = GetIdentifier(src)
local playerData = GetPlayerJobData(src)
if playerData then
local diff = os.difftime(playerData.dailymissions.resetAt, os.time())
if diff <= 0 then
playerData.dailymissions.resetAt = os.time() + 86400
playerData.dailymissions.data = CreateDailyMission()
ExecuteSql("UPDATE codem_truckerjob SET `dailymissions` = '" ..
json.encode(playerData.dailymissions) .. "' WHERE `identifier` = '" .. playerData.identifier .. "'")
SyncPlayerDataByKey(src, "dailymissions", playerData.dailymissions)
end
end
end)
function addMoney(src, payment)
local Player = GetPlayer(src)
if Config.Framework == 'esx' or Config.Framework == 'oldesx' then
Player.addMoney(payment)
else
Player.Functions.AddMoney("cash", payment)
end
end
function AddInventoryItem(src, item, amount)
local Player = GetPlayer(src)
amount = tonumber(amount) or 1
if Player then
if Config.Inventory == "qb_inventory" then
Player.Functions.AddItem(item, amount)
elseif Config.Inventory == "esx_inventory" then
Player.addInventoryItem(item, amount)
elseif Config.Inventory == "ox_inventory" then
exports.ox_inventory:AddItem(src, item, amount)
elseif Config.Inventory == "codem-inventory" then
exports["codem-inventory"]:AddItem(src, item, amount)
elseif Config.Inventory == "qs_inventory" then
exports['qs-inventory']:AddItem(src, item, amount)
end
end
end
function RemoveItem(src, item, amount)
local Player = GetPlayer(src)
amount = tonumber(amount) or 1
if Player then
if Config.Inventory == "qb_inventory" then
Player.Functions.RemoveItem(item, amount)
elseif Config.Inventory == "esx_inventory" then
Player.removeInventoryItem(item, amount)
elseif Config.Inventory == "ox_inventory" then
exports.ox_inventory:RemoveItem(src, item, amount)
elseif Config.Inventory == "codem-inventory" then
exports["codem-inventory"]:RemoveItem(src, item, amount)
elseif Config.Inventory == "qs_inventory" then
exports['qs-inventory']:RemoveItem(src, item, amount)
end
end
end