diff --git a/server/commands.lua b/server/commands.lua index 866bdea..ca038f9 100644 --- a/server/commands.lua +++ b/server/commands.lua @@ -98,18 +98,21 @@ QBCore.Commands.Add("setmoney", "Set Players Money Amount (Admin Only)", {{name= end end, "admin") -QBCore.Commands.Add("setjob", "Set A Players Job (Admin Only)", {{name="id", help="Speler ID"}, {name="job", help="Job name"}}, true, function(source, args) +QBCore.Commands.Add("setjob", "Set A Players Job (Admin Only)", {{name="id", help="Player ID"}, {name="job", help="Job name"}, {name="grade", help="Grade"}}, true, function(source, args) local Player = QBCore.Functions.GetPlayer(tonumber(args[1])) - if Player ~= nil then - Player.Functions.SetJob(tostring(args[2])) - else + if (args[1] == nil) or (args[2] == nil) or (args[3] == nil) then + TriggerClientEvent('QBCore:Notify', source, "All Arguments Must Be Filled", "error") + elseif Player == nil then TriggerClientEvent('QBCore:Notify', source, "Player is not online!", "error") + else + Player.Functions.SetJob(tostring(args[2]), tonumber(args[3])) end end, "admin") + QBCore.Commands.Add("job", "Check Your Job", {}, false, function(source, args) local Player = QBCore.Functions.GetPlayer(source) - TriggerClientEvent('QBCore:Notify', source, "Job: "..Player.PlayerData.job.label) + TriggerClientEvent('QBCore:Notify', source, "Job: "..Player.PlayerData.job.label.. " Grade: "..Player.PlayerData.job.grade.name) end) QBCore.Commands.Add("setgang", "Set A Players Gang (Admin Only)", {{name="id", help="Player ID"}, {name="job", help="Name of a gang"}}, true, function(source, args) diff --git a/server/player.lua b/server/player.lua index 550011f..9df4a83 100644 --- a/server/player.lua +++ b/server/player.lua @@ -90,7 +90,8 @@ QBCore.Player.CheckPlayerData = function(source, PlayerData) } PlayerData.metadata["licences"] = PlayerData.metadata["licences"] ~= nil and PlayerData.metadata["licences"] or { ["driver"] = true, - ["business"] = false + ["business"] = false, + ["weapon"] = false } PlayerData.metadata["inside"] = PlayerData.metadata["inside"] ~= nil and PlayerData.metadata["inside"] or { house = nil, @@ -106,13 +107,18 @@ QBCore.Player.CheckPlayerData = function(source, PlayerData) PlayerData.job = PlayerData.job ~= nil and PlayerData.job or {} PlayerData.job.name = PlayerData.job.name ~= nil and PlayerData.job.name or "unemployed" - PlayerData.job.label = PlayerData.job.label ~= nil and PlayerData.job.label or "unemployed" + PlayerData.job.label = PlayerData.job.label ~= nil and PlayerData.job.label or "" PlayerData.job.payment = PlayerData.job.payment ~= nil and PlayerData.job.payment or 10 PlayerData.job.onduty = PlayerData.job.onduty ~= nil and PlayerData.job.onduty or true + -- Added for grade system + PlayerData.job.isboss = PlayerData.job.isboss ~= nil and PlayerData.job.isboss or false + PlayerData.job.grade = PlayerData.job.grade ~= nil and PlayerData.job.grade or {} + PlayerData.job.grade.name = PlayerData.job.grade.name ~= nil and PlayerData.job.grade.name or nil + PlayerData.job.grade.level = PlayerData.job.grade.level ~= nil and PlayerData.job.grade.level or 0 PlayerData.gang = PlayerData.gang ~= nil and PlayerData.gang or {} - PlayerData.gang.name = PlayerData.gang.name ~= nil and PlayerData.gang.name or "geen" - PlayerData.gang.label = PlayerData.gang.label ~= nil and PlayerData.gang.label or "Geen Gang" + PlayerData.gang.name = PlayerData.gang.name ~= nil and PlayerData.gang.name or "none" + PlayerData.gang.label = PlayerData.gang.label ~= nil and PlayerData.gang.label or "No Gang Affiliaton" PlayerData.position = PlayerData.position ~= nil and PlayerData.position or QBConfig.DefaultSpawn PlayerData.LoggedIn = true @@ -131,17 +137,36 @@ QBCore.Player.CreatePlayer = function(PlayerData) QBCore.Commands.Refresh(self.PlayerData.source) end - self.Functions.SetJob = function(job) + self.Functions.SetJob = function(job, grade) local job = job:lower() - local grade = tonumber(grade) + local grade = tostring(grade) ~= nil and tostring(grade) or '0' + if QBCore.Shared.Jobs[job] ~= nil then self.PlayerData.job.name = job self.PlayerData.job.label = QBCore.Shared.Jobs[job].label - self.PlayerData.job.payment = QBCore.Shared.Jobs[job].payment self.PlayerData.job.onduty = QBCore.Shared.Jobs[job].defaultDuty + + if QBCore.Shared.Jobs[job].grades[grade] then + local jobgrade = QBCore.Shared.Jobs[job].grades[grade] + self.PlayerData.job.grade = {} + self.PlayerData.job.grade.name = jobgrade.name + self.PlayerData.job.grade.level = tonumber(grade) + self.PlayerData.job.payment = jobgrade.payment ~= nil and jobgrade.payment or 30 + self.PlayerData.job.isboss = jobgrade.isboss ~= nil and jobgrade.isboss or false + else + self.PlayerData.job.grade = {} + self.PlayerData.job.grade.name = 'No Grades' + self.PlayerData.job.grade.level = 0 + self.PlayerData.job.payment = 30 + self.PlayerData.job.isboss = false + end + self.Functions.UpdatePlayerData() TriggerClientEvent("QBCore:Client:OnJobUpdate", self.PlayerData.source, self.PlayerData.job) + return true end + + return false end self.Functions.SetGang = function(gang) diff --git a/shared.lua b/shared.lua index 1bdf824..b5d0b0a 100644 --- a/shared.lua +++ b/shared.lua @@ -246,6 +246,7 @@ QBShared.Items = { ["pinger"] = {["name"] = "pinger", ["label"] = "Pinger", ["weight"] = 1000, ["type"] = "item", ["image"] = "pinger.png", ["unique"] = false, ["useable"] = false, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "With a pinger and your phone you can send out your location"}, ["firstaid"] = {["name"] = "firstaid", ["label"] = "First Aid", ["weight"] = 2500, ["type"] = "item", ["image"] = "firstaid.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "You can use this First Aid kit to get people back on their feet."}, ["printerdocument"] = {["name"] = "printerdocument", ["label"] = "Document", ["weight"] = 500, ["type"] = "item", ["image"] = "printerdocument.png", ["unique"] = false, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "A nice document"}, + ["weaponlicense"] = {["name"] = "weaponlicense", ["label"] = "Weapon License", ["weight"] = 0, ["type"] = "item", ["image"] = "weapon_license.png", ["unique"] = true, ["useable"] = true, ["shouldClose"] = true, ["combinable"] = nil, ["description"] = "Weapon License"}, } -- // HASH WEAPON ITEMS, NEED SOMETIMES TO GET INFO FOR CLIENT @@ -6180,89 +6181,281 @@ QBShared.VehicleModels = { } QBShared.Gangs = { - ["geen"] = { + ["none"] = { label = "No Gang" }, - ["testgang"] = { - label = "Test Gang" + ["lostmc"] = { + label = "The Lost MC" + }, + ["ballas"] = { + label = "Ballas" + }, + ["vagos"] = { + label = "Vagos" + }, + ["cartel"] = { + label = "Cartel" + }, + ["familes"] = { + label = "Families" + }, + ["triads"] = { + label = "Triads" } } QBShared.Jobs = { ["unemployed"] = { - label = "Unemployed", - payment = 10, + label = "Civilian", defaultDuty = true, + grades = { + ['0'] = { + name = "Freelancer", + payment = 10 + }, + }, }, ["police"] = { - label = "Police", - payment = 400, - defaultDuty = true, - }, - ["doctor"] = { - label = "Doctor", - payment = 600, + label = "Law Enforcement", defaultDuty = true, + grades = { + ['0'] = { + name = "Recruit", + payment = 50 + }, + ['1'] = { + name = "Officer", + payment = 75 + }, + ['2'] = { + name = "Sergeant", + payment = 100 + }, + ['3'] = { + name = "Lieutenant", + payment = 125 + }, + ['4'] = { + name = "Chief", + isboss = true, + payment = 150 + }, + }, }, ["ambulance"] = { - label = "Ambulance", - payment = 400, - defaultDuty = true, - }, - ["trucker"] = { - label = "Trucker", - payment = 10, - defaultDuty = true, - }, - ["taxi"] = { - label = "Taxi", - payment = 10, + label = "EMS", defaultDuty = true, + grades = { + ['0'] = { + name = "Recruit", + payment = 50 + }, + ['1'] = { + name = "Paramedic", + payment = 75 + }, + ['2'] = { + name = "Doctor", + payment = 100 + }, + ['3'] = { + name = "Surgeon", + payment = 125 + }, + ['4'] = { + name = "Chief", + isboss = true, + payment = 150 + }, + }, }, ["realestate"] = { label = "Real Estate", - payment = 10, defaultDuty = true, + grades = { + ['0'] = { + name = "Recruit", + payment = 50 + }, + ['1'] = { + name = "House Sales", + payment = 75 + }, + ['2'] = { + name = "Business Sales", + payment = 100 + }, + ['3'] = { + name = "Broker", + payment = 125 + }, + ['4'] = { + name = "Manager", + isboss = true, + payment = 150 + }, + }, }, - ["tow"] = { - label = "Begnet's Towing", - payment = 10, - defaultDuty = true, - }, - ["reporter"] = { - label = "Reporter", - payment = 10, - defaultDuty = true, - }, - ["judge"] = { - label = "Judge", - payment = 500, - defaultDuty = true, - }, - ["lawyer"] = { - label = "Lawyer", - payment = 50, + ["taxi"] = { + label = "Taxi", defaultDuty = true, + grades = { + ['0'] = { + name = "Recruit", + payment = 50 + }, + ['1'] = { + name = "Driver", + payment = 75 + }, + ['2'] = { + name = "Event Driver", + payment = 100 + }, + ['3'] = { + name = "Sales", + payment = 125 + }, + ['4'] = { + name = "Manager", + isboss = true, + payment = 150 + }, + }, }, ["cardealer"] = { label = "Vehicle Dealer", - payment = 150, defaultDuty = true, + grades = { + ['0'] = { + name = "Recruit", + payment = 50 + }, + ['1'] = { + name = "Showroom Sales", + payment = 75 + }, + ['2'] = { + name = "Business Sales", + payment = 100 + }, + ['3'] = { + name = "Finance", + payment = 125 + }, + ['4'] = { + name = "Manager", + isboss = true, + payment = 150 + }, + }, }, ["mechanic"] = { label = "Mechanic", - payment = 150, defaultDuty = true, + grades = { + ['0'] = { + name = "Recruit", + payment = 50 + }, + ['1'] = { + name = "Novice", + payment = 75 + }, + ['2'] = { + name = "Experienced", + payment = 100 + }, + ['3'] = { + name = "Advanced", + payment = 125 + }, + ['4'] = { + name = "Manager", + isboss = true, + payment = 150 + }, + }, + }, + ["judge"] = { + label = "Honorary", + defaultDuty = true, + grades = { + ['0'] = { + name = "Judge", + payment = 100 + }, + }, + }, + ["lawyer"] = { + label = "Law Firm", + defaultDuty = true, + grades = { + ['0'] = { + name = "Associate", + payment = 50 + }, + }, + }, + ["reporter"] = { + label = "Reporter", + defaultDuty = true, + grades = { + ['0'] = { + name = "Journalist", + payment = 50 + }, + }, + }, + ["trucker"] = { + label = "Trucker", + defaultDuty = true, + grades = { + ['0'] = { + name = "Driver", + payment = 50 + }, + }, + }, + ["tow"] = { + label = "Towing", + defaultDuty = true, + grades = { + ['0'] = { + name = "Driver", + payment = 50 + }, + }, }, ["garbage"] = { - label = "Garbage Collector", - payment = 12, + label = "Garbage", defaultDuty = true, + grades = { + ['0'] = { + name = "Collector", + payment = 50 + }, + }, + }, + ["vineyard"] = { + label = "Vineyard", + defaultDuty = true, + grades = { + ['0'] = { + name = "Picker", + payment = 50 + }, + }, }, ["hotdog"] = { - label = "Hotdog Stand", - payment = 12, + label = "Hotdog", defaultDuty = true, + grades = { + ['0'] = { + name = "Sales", + payment = 50 + }, + }, }, }