mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-09-04 08:13:21 +00:00
Improved paycheck system, added advanced notifications, see desc
- Improved paycheck system
- we now take society money if there is any, or else the employees wont get a salary at all
- now using ESX.ShowAdvancedNotifications
This commit is contained in:
+10
-2
@@ -17,8 +17,16 @@ end, function(source, args, user)
|
||||
end, {help = "Teleport to coordinates", params = {{name = "x", help = "X coords"}, {name = "y", help = "Y coords"}, {name = "z", help = "Z coords"}}})
|
||||
|
||||
TriggerEvent('es:addGroupCommand', 'setjob', 'jobmaster', function(source, args, user)
|
||||
local xPlayer = ESX.GetPlayerFromId(args[1])
|
||||
xPlayer.setJob(args[2], tonumber(args[3]))
|
||||
if tonumber(args[1]) and args[2] and tonumber(args[3]) then
|
||||
local xPlayer = ESX.GetPlayerFromId(args[1])
|
||||
if xPlayer ~= nil then
|
||||
xPlayer.setJob(args[2], args[3])
|
||||
else
|
||||
TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Player not online.")
|
||||
end
|
||||
else
|
||||
TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Invalid usage.")
|
||||
end
|
||||
end, function(source, args, user)
|
||||
TriggerClientEvent('chatMessage', source, "SYSTEM", {255, 0, 0}, "Insufficient Permissions.")
|
||||
end, {help = _U('setjob'), params = {{name = "id", help = _U('id_param')}, {name = "job", help = _U('setjob_param2')}, {name = "grade_id", help = _U('setjob_param3')}}})
|
||||
|
||||
+37
-19
@@ -1,29 +1,47 @@
|
||||
ESX.StartPayCheck = function()
|
||||
|
||||
function payCheck()
|
||||
function payCheck()
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
for i=1, #xPlayers, 1 do
|
||||
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
|
||||
local job = xPlayer.job.grade_name
|
||||
local salary = xPlayer.job.grade_salary
|
||||
|
||||
for i=1, #xPlayers, 1 do
|
||||
if salary > 0 then
|
||||
if job == 'unemployed' then -- unemployed
|
||||
xPlayer.addAccountMoney('bank', salary)
|
||||
TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('recived_money'), _U('recived_help', salary), 'CHAR_BANK_MAZE', 9)
|
||||
elseif job == 'employee' then -- generic job, not a society
|
||||
xPlayer.addAccountMoney('bank', salary)
|
||||
TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('recived_money'), _U('recived_salary', salary), 'CHAR_BANK_MAZE', 9)
|
||||
else -- 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('recived_money'), _U('recived_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, use 'employee' as grade name!
|
||||
xPlayer.addAccountMoney('bank', salary)
|
||||
TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('recived_money'), _U('recived_salary', salary), 'CHAR_BANK_MAZE', 9)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
|
||||
end
|
||||
|
||||
if xPlayer.job.grade_salary > 0 then
|
||||
xPlayer.addMoney(xPlayer.job.grade_salary)
|
||||
SetTimeout(Config.PaycheckInterval, payCheck)
|
||||
|
||||
if xPlayer.job.grade_name == 'interim' then
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rec_help') .. '~g~$' .. xPlayer.job.grade_salary)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, _U('rec_salary') .. '~g~$' .. xPlayer.job.grade_salary)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
SetTimeout(Config.PaycheckInterval, payCheck)
|
||||
|
||||
end
|
||||
|
||||
SetTimeout(Config.PaycheckInterval, payCheck)
|
||||
SetTimeout(Config.PaycheckInterval, payCheck)
|
||||
|
||||
end
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
ESX.StartPayCheck = function ()
|
||||
|
||||
function payCheck ()
|
||||
local xPlayers = ESX.GetPlayers()
|
||||
for i=1, #xPlayers, 1 do
|
||||
local xPlayer = ESX.GetPlayerFromId(xPlayers[i])
|
||||
if xPlayer.job.grade_name == 'interim' or xPlayer.job.grade_name == 'rsa' or xPlayer.job.grade_name == 'employee' then -- only if the player is employeed in a company
|
||||
if xPlayer.job.grade_salary > 0 then
|
||||
xPlayer.addAccountMoney('bank', xPlayer.job.grade_salary)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, ('L\'état vous a payé ') .. '~g~$' .. xPlayer.job.grade_salary)
|
||||
end
|
||||
else -- Else take money from society
|
||||
TriggerEvent('esx_society:getSociety', xPlayer.job.name, function (society)
|
||||
TriggerEvent('esx_addonaccount:getSharedAccount', society.account, function (account)
|
||||
if account.money >= xPlayer.job.grade_salary then
|
||||
xPlayer.addAccountMoney('bank',xPlayer.job.grade_salary)
|
||||
account.removeMoney(xPlayer.job.grade_salary)
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, ('Votre entreprise vous a payé ') .. '~g~$' .. xPlayer.job.grade_salary)
|
||||
else
|
||||
TriggerClientEvent('esx:showNotification', xPlayer.source, 'Votre entreprise n\'a plus d\'argent pour vous payer !')
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
SetTimeout(Config.PaycheckInterval, payCheck)
|
||||
end
|
||||
SetTimeout(Config.PaycheckInterval, payCheck)
|
||||
end
|
||||
Reference in New Issue
Block a user