mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 01:08:54 +00:00
feat(es_extended/server/modules/paycheck): add offDuty pay
This commit is contained in:
@@ -6,61 +6,63 @@ function StartPayCheck()
|
||||
local jobLabel = xPlayer.job.label
|
||||
local job = xPlayer.job.grade_name
|
||||
local salary = xPlayer.job.grade_salary
|
||||
|
||||
local onDuty = xPlayer.job.onDuty
|
||||
local effectiveSalary = (job == "unemployed" or onDuty) and salary or ESX.Math.Round(salary * Config.OffDutyPaycheckMultiplier)
|
||||
|
||||
if xPlayer.paycheckEnabled then
|
||||
if salary > 0 then
|
||||
if effectiveSalary > 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)
|
||||
xPlayer.addAccountMoney("bank", effectiveSalary, "Welfare Check")
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_help", effectiveSalary), "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 },
|
||||
{ name = "Amount", value = effectiveSalary, 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 account.money >= effectiveSalary then -- does the society money to pay its employees?
|
||||
xPlayer.addAccountMoney("bank", effectiveSalary, "Paycheck")
|
||||
account.removeMoney(effectiveSalary)
|
||||
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 },
|
||||
{ name = "Amount", value = effectiveSalary, inline = true },
|
||||
})
|
||||
end
|
||||
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9)
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", effectiveSalary), "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")
|
||||
xPlayer.addAccountMoney("bank", effectiveSalary, "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 },
|
||||
{ name = "Amount", value = effectiveSalary, inline = true },
|
||||
})
|
||||
end
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9)
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", effectiveSalary), "CHAR_BANK_MAZE", 9)
|
||||
end
|
||||
end)
|
||||
else -- generic job
|
||||
xPlayer.addAccountMoney("bank", salary, "Paycheck")
|
||||
xPlayer.addAccountMoney("bank", effectiveSalary, "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 },
|
||||
{ name = "Amount", value = effectiveSalary, inline = true },
|
||||
})
|
||||
end
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", salary), "CHAR_BANK_MAZE", 9)
|
||||
TriggerClientEvent("esx:showAdvancedNotification", player, TranslateCap("bank"), TranslateCap("received_paycheck"), TranslateCap("received_salary", effectiveSalary), "CHAR_BANK_MAZE", 9)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -44,6 +44,7 @@ Config.SaveDeathStatus = true -- Save the death status of a player
|
||||
Config.EnableDebug = false -- Use Debug options?
|
||||
|
||||
Config.DefaultJobDuty = true -- A players default duty status when changing jobs
|
||||
Config.OffDutyPaycheckMultiplier = 0.5 -- The multiplier for off duty paychecks. 0.5 = 50% of the on duty paycheck
|
||||
|
||||
Config.Multichar = GetResourceState("esx_multicharacter") ~= "missing"
|
||||
Config.Identity = true -- Select a character identity data before they have loaded in (this happens by default with multichar)
|
||||
|
||||
Reference in New Issue
Block a user