Add job duty

This commit is contained in:
Ilias Rbayti
2024-10-31 15:00:46 +01:00
parent 64e9a2cd83
commit 068056bb11
3 changed files with 32 additions and 1 deletions
+1
View File
@@ -48,6 +48,7 @@ Config.EnableDebug = false -- Use Debug options?
Config.EnableDefaultInventory = true -- Display the default Inventory ( F2 )
Config.EnableWantedLevel = false -- Use Normal GTA wanted Level?
Config.EnablePVP = true -- Allow Player to player combat
Config.DefaultJobDuty = true -- Default job duty when setting a players job
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)
@@ -49,6 +49,12 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
self.license = "license:" .. identifier
end
if type(metadata.jobduty) ~= "boolean" then
self.job.duty = self.job.name ~= "unemployed" and Config.DefaultJobDuty or false
else
self.job.duty = metadata.jobduty
end
_ExecuteCommand(("add_principal identifier.%s group.%s"):format(self.license, self.group))
local stateBag = Player(self.source).state
@@ -485,6 +491,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
id = jobObject.id,
name = jobObject.name,
label = jobObject.label,
duty = jobObject.name ~= "unemployed" and Config.DefaultJobDuty or false,
grade = tonumber(grade),
grade_name = gradeObject.name,
@@ -495,11 +502,33 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory,
skin_female = gradeObject.skin_female and json.decode(gradeObject.skin_female) or {},
}
self.metadata["jobduty"] = self.job.duty
_TriggerEvent("esx:setJob", self.source, self.job, lastJob)
self.triggerEvent("esx:setJob", self.job, lastJob)
Player(self.source).state:set("job", self.job, true)
end
---@param newDuty boolean
---@return nil
function self.setJobDuty(newDuty)
if type(newDuty) ~= "boolean" then
return print(("[ESX] [^3WARNING^7] Ignoring invalid ^5.setJobDuty()^7 usage for ID: ^5%s^7, Duty: ^5%s^7"):format(self.source, newDuty))
end
if self.job.name == "unemployed" then
return
end
local lastJob = ESX.Table.Clone(self.job)
self.job.duty = newDuty
self.metadata["jobduty"] = newDuty
TriggerEvent("esx:setJob", self.source, self.job, lastJob)
self.triggerEvent("esx:setJob", self.job, lastJob)
Player(self.source).state:set("job", self.job, true)
end
---@param weaponName string
---@param ammo number
---@return void
+2 -1
View File
@@ -540,7 +540,8 @@ ESX.RegisterCommand("group", { "user", "admin" }, function(xPlayer, _, _)
end, true)
ESX.RegisterCommand("job", { "user", "admin" }, function(xPlayer, _, _)
print(("%s, your job is: ^5%s^0 - ^5%s^0"):format(xPlayer.getName(), xPlayer.getJob().name, xPlayer.getJob().grade_label))
local job = xPlayer.getJob()
print(("%s, your job is: ^5%s^0 - ^5%s^0 - ^5%s^0"):format(xPlayer.getName(), job.name, job.grade_label, job.duty and "On Duty" or "Off Duty"))
end, false)
ESX.RegisterCommand("info", { "user", "admin" }, function(xPlayer)