72 lines
5.1 KiB
Lua
72 lines
5.1 KiB
Lua
function StartPayCheck()
|
|
CreateThread(function()
|
|
while true do
|
|
Wait(Config.PaycheckInterval)
|
|
for player, xPlayer in pairs(ESX.Players) do
|
|
local jobLabel = xPlayer.job.label
|
|
local job = xPlayer.job.grade_name
|
|
local onDuty = xPlayer.job.onDuty
|
|
local salary = (job == "unemployed" or onDuty) and xPlayer.job.grade_salary or ESX.Math.Round(xPlayer.job.grade_salary * Config.OffDutyPaycheckMultiplier)
|
|
|
|
if xPlayer.paycheckEnabled then
|
|
if salary > 0 then
|
|
if job == "unemployed" then -- unemployed
|
|
xPlayer.addAccountMoney("bank", salary, "Welfare Check")
|
|
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_help", salary), "CHAR_BANK_MAZE", 9)
|
|
if Config.LogPaycheck then
|
|
ESX.DiscordLogFields("Paycheck", "Paycheck - Unemployment Benefits", "green", {
|
|
{ name = "Player", value = xPlayer.name, inline = true },
|
|
{ name = "ID", value = xPlayer.source, inline = true },
|
|
{ name = "Amount", value = salary, inline = true },
|
|
})
|
|
end
|
|
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, "Paycheck")
|
|
account.removeMoney(salary)
|
|
if Config.LogPaycheck then
|
|
ESX.DiscordLogFields("Paycheck", "Paycheck - " .. jobLabel, "green", {
|
|
{ name = "Player", value = xPlayer.name, inline = true },
|
|
{ name = "ID", value = xPlayer.source, inline = true },
|
|
{ name = "Amount", value = salary, inline = true },
|
|
})
|
|
end
|
|
|
|
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9)
|
|
else
|
|
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), "", TranslateCap("company_nomoney"), "CHAR_BANK_MAZE", 1)
|
|
end
|
|
end)
|
|
else -- not a society
|
|
xPlayer.addAccountMoney("bank", salary, "Paycheck")
|
|
if Config.LogPaycheck then
|
|
ESX.DiscordLogFields("Paycheck", "Paycheck - " .. jobLabel, "green", {
|
|
{ name = "Player", value = xPlayer.name, inline = true },
|
|
{ name = "ID", value = xPlayer.source, inline = true },
|
|
{ name = "Amount", value = salary, inline = true },
|
|
})
|
|
end
|
|
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9)
|
|
end
|
|
end)
|
|
else -- generic job
|
|
xPlayer.addAccountMoney("bank", salary, "Paycheck")
|
|
if Config.LogPaycheck then
|
|
ESX.DiscordLogFields("Paycheck", "Paycheck - Generic", "green", {
|
|
{ name = "Player", value = xPlayer.name, inline = true },
|
|
{ name = "ID", value = xPlayer.source, inline = true },
|
|
{ name = "Amount", value = salary, inline = true },
|
|
})
|
|
end
|
|
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end)
|
|
end
|