diff --git a/[esx]/es_extended/server/common.lua b/[esx]/es_extended/server/common.lua index 1eb6aa62..9dd4e574 100644 --- a/[esx]/es_extended/server/common.lua +++ b/[esx]/es_extended/server/common.lua @@ -18,6 +18,13 @@ function getSharedObject() return ESX end +local function StartDBSync() + Citizen.CreateThread(function() + Citizen.Wait(10 * 60 * 1000) + ESX.SavePlayers() + end) +end + MySQL.ready(function() MySQL.Async.fetchAll('SELECT * FROM items', {}, function(result) for k,v in ipairs(result) do @@ -54,8 +61,8 @@ MySQL.ready(function() end ESX.Jobs = Jobs print('[^2INFO^7] ESX ^5Legacy^0 initialized') - ESX.StartDBSync() - ESX.StartPayCheck() + StartDBSync() + StartPayCheck() end) end) end) diff --git a/[esx]/es_extended/server/functions.lua b/[esx]/es_extended/server/functions.lua index f6e1d821..1f5d41ee 100644 --- a/[esx]/es_extended/server/functions.lua +++ b/[esx]/es_extended/server/functions.lua @@ -239,15 +239,6 @@ ESX.SavePlayers = function(cb) end end -ESX.StartDBSync = function() - function saveData() - ESX.SavePlayers() - SetTimeout(10 * 60 * 1000, saveData) - end - - SetTimeout(10 * 60 * 1000, saveData) -end - ESX.GetPlayers = function() local sources = {} diff --git a/[esx]/es_extended/server/paycheck.lua b/[esx]/es_extended/server/paycheck.lua index 293898f9..77ad01e1 100644 --- a/[esx]/es_extended/server/paycheck.lua +++ b/[esx]/es_extended/server/paycheck.lua @@ -1,44 +1,40 @@ -ESX.StartPayCheck = function() - function payCheck() - local xPlayers = ESX.GetPlayers() +StartPayCheck = function() + Citizen.CreateThread(function() + while true do + Citizen.Wait(Config.PaycheckInterval) + local xPlayers = ESX.GetExtendedPlayers() + for _, xPlayer in pairs(xPlayers) do + local job = xPlayer.job.grade_name + local salary = xPlayer.job.grade_salary - for i=1, #xPlayers, 1 do - local xPlayer = ESX.GetPlayerFromId(xPlayers[i]) - local job = xPlayer.job.grade_name - local salary = xPlayer.job.grade_salary + if salary > 0 then + if job == 'unemployed' then -- unemployed + xPlayer.addAccountMoney('bank', salary) + TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_help', salary), 'CHAR_BANK_MAZE', 9) + elseif Config.EnableSocietyPayouts then -- possibly a society + TriggerEvent('esx_society:getSociety', xPlayer.job.name, function (society) + if society ~= nil then -- verified society + TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function (account) + if account.money >= salary then -- does the society money to pay its employees? + xPlayer.addAccountMoney('bank', salary) + account.removeMoney(salary) - if salary > 0 then - if job == 'unemployed' then -- unemployed - xPlayer.addAccountMoney('bank', salary) - TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_help', salary), 'CHAR_BANK_MAZE', 9) - elseif Config.EnableSocietyPayouts then -- possibly a society - TriggerEvent('esx_society:getSociety', xPlayer.job.name, function (society) - if society ~= nil then -- verified society - TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function (account) - if account.money >= salary then -- does the society money to pay its employees? - xPlayer.addAccountMoney('bank', salary) - account.removeMoney(salary) - - TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) - else - TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), '', _U('company_nomoney'), 'CHAR_BANK_MAZE', 1) - end - end) - else -- not a society - xPlayer.addAccountMoney('bank', salary) - TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) - end - end) - else -- generic job - xPlayer.addAccountMoney('bank', salary) - TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) + TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) + else + TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), '', _U('company_nomoney'), 'CHAR_BANK_MAZE', 1) + end + end) + else -- not a society + xPlayer.addAccountMoney('bank', salary) + TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) + end + end) + else -- generic job + xPlayer.addAccountMoney('bank', salary) + TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) + end end end - end - - SetTimeout(Config.PaycheckInterval, payCheck) - end - - SetTimeout(Config.PaycheckInterval, payCheck) + end) end