From 36ac7ef2d10735b6337f7bbb44885e40fd9dfb9c Mon Sep 17 00:00:00 2001 From: ZF <48424078+zf-development@users.noreply.github.com> Date: Fri, 18 Mar 2022 19:15:48 -0400 Subject: [PATCH] New OnDuty System for jobs. - Added a setDuty event. - Added a job.onduty data. - Default onduty is false at connection and creation of the user, job change. - Added a esx:toggleDuty event to change the state of the duty. --- [esx]/es_extended/locales/br.lua | 4 ++++ [esx]/es_extended/locales/cs.lua | 4 ++++ [esx]/es_extended/locales/de.lua | 4 ++++ [esx]/es_extended/locales/en.lua | 4 ++++ [esx]/es_extended/locales/es.lua | 4 ++++ [esx]/es_extended/locales/fi.lua | 4 ++++ [esx]/es_extended/locales/fr.lua | 4 ++++ [esx]/es_extended/locales/pl.lua | 4 ++++ [esx]/es_extended/locales/sc.lua | 4 ++++ [esx]/es_extended/locales/sv.lua | 4 ++++ [esx]/es_extended/locales/tc.lua | 4 ++++ [esx]/es_extended/server/classes/player.lua | 6 ++++++ [esx]/es_extended/server/common.lua | 1 + [esx]/es_extended/server/main.lua | 14 ++++++++++++++ [esx]/es_extended/server/paycheck.lua | 5 +++-- 15 files changed, 68 insertions(+), 2 deletions(-) diff --git a/[esx]/es_extended/locales/br.lua b/[esx]/es_extended/locales/br.lua index 491b7cca..a83ad402 100644 --- a/[esx]/es_extended/locales/br.lua +++ b/[esx]/es_extended/locales/br.lua @@ -222,4 +222,8 @@ Locales['br'] = { ['tint_lspd'] = 'blue skin', ['tint_orange'] = 'orange skin', ['tint_platinum'] = 'platinum skin', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/cs.lua b/[esx]/es_extended/locales/cs.lua index 487df57a..1a41172e 100644 --- a/[esx]/es_extended/locales/cs.lua +++ b/[esx]/es_extended/locales/cs.lua @@ -222,4 +222,8 @@ Locales['cs'] = { ['tint_lspd'] = 'modry skin', ['tint_orange'] = 'oranzovy skin', ['tint_platinum'] = 'platinovy skin', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/de.lua b/[esx]/es_extended/locales/de.lua index 961fb19d..1aa2d8a2 100644 --- a/[esx]/es_extended/locales/de.lua +++ b/[esx]/es_extended/locales/de.lua @@ -222,4 +222,8 @@ Locales['de'] = { ['tint_lspd'] = 'blau', ['tint_orange'] = 'orange', ['tint_platinum'] = 'platin', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/en.lua b/[esx]/es_extended/locales/en.lua index 4420bd79..6db91292 100644 --- a/[esx]/es_extended/locales/en.lua +++ b/[esx]/es_extended/locales/en.lua @@ -343,4 +343,8 @@ Locales['en'] = { ['tint_lspd'] = 'blue skin', ['tint_orange'] = 'orange skin', ['tint_platinum'] = 'platinum skin', + + -- Duty related + ['stopped_duty'] = 'You\'ve stopped your duty.', + ['started_duty'] = 'You\'ve started your duty.', } diff --git a/[esx]/es_extended/locales/es.lua b/[esx]/es_extended/locales/es.lua index 1d31dc82..5e038594 100644 --- a/[esx]/es_extended/locales/es.lua +++ b/[esx]/es_extended/locales/es.lua @@ -343,4 +343,8 @@ Locales['es'] = { ['tint_lspd'] = 'Skin Azul', ['tint_orange'] = 'Skin Naranja', ['tint_platinum'] = 'Skin Plata', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/fi.lua b/[esx]/es_extended/locales/fi.lua index affa148e..7adf0c41 100644 --- a/[esx]/es_extended/locales/fi.lua +++ b/[esx]/es_extended/locales/fi.lua @@ -222,4 +222,8 @@ Locales['fi'] = { ['tint_lspd'] = 'blue skin', ['tint_orange'] = 'orange skin', ['tint_platinum'] = 'platinum skin', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/fr.lua b/[esx]/es_extended/locales/fr.lua index 38565b1e..5cf46d2c 100644 --- a/[esx]/es_extended/locales/fr.lua +++ b/[esx]/es_extended/locales/fr.lua @@ -222,4 +222,8 @@ Locales['fr'] = { ['tint_lspd'] = 'skin bleu', ['tint_orange'] = 'skin orange', ['tint_platinum'] = 'skin platine', + + -- Duty related + ['stopped_duty'] = 'Vous êtes maintenant hors-service.', + ['started_duty'] = 'Vous êtes maintenant en-service.', } diff --git a/[esx]/es_extended/locales/pl.lua b/[esx]/es_extended/locales/pl.lua index 38597069..54aa3954 100644 --- a/[esx]/es_extended/locales/pl.lua +++ b/[esx]/es_extended/locales/pl.lua @@ -221,4 +221,8 @@ Locales['pl'] = { ['tint_lspd'] = 'niebieski skin', ['tint_orange'] = 'pomarańczowy skin', ['tint_platinum'] = 'platynowy skin', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/sc.lua b/[esx]/es_extended/locales/sc.lua index 0d81e991..2be7015f 100644 --- a/[esx]/es_extended/locales/sc.lua +++ b/[esx]/es_extended/locales/sc.lua @@ -222,4 +222,8 @@ Locales['sc'] = { ['tint_lspd'] = '洛圣都警局色调', ['tint_orange'] = '橙色调', ['tint_platinum'] = '铂金色调', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/sv.lua b/[esx]/es_extended/locales/sv.lua index 8de56f35..e727ffd1 100644 --- a/[esx]/es_extended/locales/sv.lua +++ b/[esx]/es_extended/locales/sv.lua @@ -222,4 +222,8 @@ Locales['sv'] = { ['tint_lspd'] = 'blåskinn', ['tint_orange'] = 'orangeskinn', ['tint_platinum'] = 'platinaskinn', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/locales/tc.lua b/[esx]/es_extended/locales/tc.lua index 4560c727..f1411018 100644 --- a/[esx]/es_extended/locales/tc.lua +++ b/[esx]/es_extended/locales/tc.lua @@ -222,4 +222,8 @@ Locales['tc'] = { ['tint_lspd'] = '洛聖都警察局色調', ['tint_orange'] = '橘色調', ['tint_platinum'] = '柏金色調', + + -- Duty related + ['stopped_duty'] = 'NEED TRANSLATION', + ['started_duty'] = 'NEED TRANSLATION', } diff --git a/[esx]/es_extended/server/classes/player.lua b/[esx]/es_extended/server/classes/player.lua index 1243c6d1..c3d973c7 100644 --- a/[esx]/es_extended/server/classes/player.lua +++ b/[esx]/es_extended/server/classes/player.lua @@ -356,6 +356,11 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, end end + function self.setDuty(onDuty) + self.job.onduty = onDuty + self.triggerEvent('esx:setJob', self.job) + end + function self.setJob(job, grade) grade = tostring(grade) local lastJob = json.decode(json.encode(self.job)) @@ -371,6 +376,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, self.job.grade_name = gradeObject.name self.job.grade_label = gradeObject.label self.job.grade_salary = gradeObject.salary + self.job.onduty = false if gradeObject.skin_male then self.job.skin_male = json.decode(gradeObject.skin_male) diff --git a/[esx]/es_extended/server/common.lua b/[esx]/es_extended/server/common.lua index 552e3d4b..73eb53b4 100644 --- a/[esx]/es_extended/server/common.lua +++ b/[esx]/es_extended/server/common.lua @@ -93,6 +93,7 @@ MySQL.ready(function() grade = 0, label = 'Unemployed', salary = 200, + onduty = false, skin_male = {}, skin_female = {} } diff --git a/[esx]/es_extended/server/main.lua b/[esx]/es_extended/server/main.lua index 37584df5..e4da1b8d 100644 --- a/[esx]/es_extended/server/main.lua +++ b/[esx]/es_extended/server/main.lua @@ -156,6 +156,7 @@ function loadESXPlayer(identifier, playerId, isNew) userData.job.grade_name = gradeObject.name userData.job.grade_label = gradeObject.label userData.job.grade_salary = gradeObject.salary + userData.job.onduty = false userData.job.skin_male = {} userData.job.skin_female = {} @@ -600,3 +601,16 @@ AddEventHandler('txAdmin:events:scheduledRestart', function(eventData) end) end end) + +RegisterNetEvent('esx:toggleDuty') +AddEventHandler('esx:toggleDuty', function() + local xPlayer = ESX.GetPlayerFromId(source) + if xPlayer.job.onduty then + xPlayer.setDuty(false) + xPlayer.triggerEvent('esx:showNotification', _U('stopped_duty')) + else + xPlayer.setDuty(true) + xPlayer.triggerEvent('esx:showNotification', _U('started_duty')) + end + TriggerClientEvent('esx:setJob', source, xPlayer.job) +end) \ No newline at end of file diff --git a/[esx]/es_extended/server/paycheck.lua b/[esx]/es_extended/server/paycheck.lua index bd6ec910..e084866b 100644 --- a/[esx]/es_extended/server/paycheck.lua +++ b/[esx]/es_extended/server/paycheck.lua @@ -5,13 +5,14 @@ function StartPayCheck() local xPlayers = ESX.GetExtendedPlayers() for _, xPlayer in pairs(xPlayers) do local job = xPlayer.job.grade_name + local onduty = xPlayer.job.onduty 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 + elseif Config.EnableSocietyPayouts and onduty 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) @@ -29,7 +30,7 @@ function StartPayCheck() TriggerClientEvent('esx:showAdvancedNotification', xPlayer.source, _U('bank'), _U('received_paycheck'), _U('received_salary', salary), 'CHAR_BANK_MAZE', 9) end end) - else -- generic job + elseif onduty then -- 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