mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-29 17:28:53 +00:00
Fixed job issues and dont query sql on xPlayer creation
This commit is contained in:
+12
-11
@@ -348,29 +348,30 @@ function CreateExtendedPlayer(player, accounts, inventory, job, loadout, name, l
|
||||
end
|
||||
|
||||
self.setJob = function(job, grade)
|
||||
grade = tostring(grade)
|
||||
local lastJob = json.decode(json.encode(self.job))
|
||||
|
||||
if ESX.DoesJobExist(job, grade) then
|
||||
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
|
||||
|
||||
self.job['id'] = jobObject.id
|
||||
self.job['name'] = jobObject.name
|
||||
self.job['label'] = jobObject.label
|
||||
self.job.id = jobObject.id
|
||||
self.job.name = jobObject.name
|
||||
self.job.label = jobObject.label
|
||||
|
||||
self.job['grade'] = grade
|
||||
self.job['grade_name'] = gradeObject.name
|
||||
self.job['grade_label'] = gradeObject.label
|
||||
self.job['grade_salary'] = gradeObject.salary
|
||||
self.job.grade = grade
|
||||
self.job.grade_name = gradeObject.name
|
||||
self.job.grade_label = gradeObject.label
|
||||
self.job.grade_salary = gradeObject.salary
|
||||
|
||||
self.job['skin_male'] = nil
|
||||
self.job['skin_female'] = nil
|
||||
self.job.skin_male = {}
|
||||
self.job.skin_female = {}
|
||||
|
||||
if gradeObject.skin_male ~= nil then
|
||||
self.job['skin_male'] = json.decode(gradeObject.skin_male)
|
||||
self.job.skin_male = json.decode(gradeObject.skin_male)
|
||||
end
|
||||
|
||||
if gradeObject.skin_female ~= nil then
|
||||
self.job['skin_female'] = json.decode(gradeObject.skin_female)
|
||||
self.job.skin_female = json.decode(gradeObject.skin_female)
|
||||
end
|
||||
|
||||
TriggerEvent('esx:setJob', self.source, self.job, lastJob)
|
||||
|
||||
@@ -185,6 +185,8 @@ ESX.CreatePickup = function(type, name, count, label, player)
|
||||
end
|
||||
|
||||
ESX.DoesJobExist = function(job, grade)
|
||||
grade = tostring(grade)
|
||||
|
||||
if job and grade then
|
||||
if ESX.Jobs[job] and ESX.Jobs[job].grades[grade] then
|
||||
return true
|
||||
|
||||
+48
-42
@@ -130,8 +130,52 @@ AddEventHandler('es:playerLoaded', function(source, _player)
|
||||
MySQL.Async.fetchAll('SELECT job, job_grade, loadout, position FROM `users` WHERE `identifier` = @identifier', {
|
||||
['@identifier'] = player.getIdentifier()
|
||||
}, function(result)
|
||||
userData.job['name'] = result[1].job
|
||||
userData.job['grade'] = result[1].job_grade
|
||||
local job, grade = result[1].job, tostring(result[1].job_grade)
|
||||
|
||||
if ESX.DoesJobExist(job, grade) then
|
||||
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
|
||||
|
||||
userData.job = {}
|
||||
|
||||
userData.job.id = jobObject.id
|
||||
userData.job.name = jobObject.name
|
||||
userData.job.label = jobObject.label
|
||||
|
||||
userData.job.grade = grade
|
||||
userData.job.grade_name = gradeObject.name
|
||||
userData.job.grade_label = gradeObject.label
|
||||
userData.job.grade_salary = gradeObject.salary
|
||||
|
||||
userData.job.skin_male = {}
|
||||
userData.job.skin_female = {}
|
||||
|
||||
if gradeObject.skin_male ~= nil then
|
||||
userData.job.skin_male = json.decode(gradeObject.skin_male)
|
||||
end
|
||||
|
||||
if gradeObject.skin_female ~= nil then
|
||||
userData.job.skin_female = json.decode(gradeObject.skin_female)
|
||||
end
|
||||
else
|
||||
print(('es_extended: %s had an unknown job [job: %s, grade: %s], setting as unemployed!'):format(player.getIdentifier(), job, grade))
|
||||
|
||||
local job, grade = 'unemployed', '0'
|
||||
local jobObject, gradeObject = ESX.Jobs[job], ESX.Jobs[job].grades[grade]
|
||||
|
||||
userData.job = {}
|
||||
|
||||
userData.job.id = jobObject.id
|
||||
userData.job.name = jobObject.name
|
||||
userData.job.label = jobObject.label
|
||||
|
||||
userData.job.grade = grade
|
||||
userData.job.grade_name = gradeObject.name
|
||||
userData.job.grade_label = gradeObject.label
|
||||
userData.job.grade_salary = gradeObject.salary
|
||||
|
||||
userData.job.skin_male = {}
|
||||
userData.job.skin_female = {}
|
||||
end
|
||||
|
||||
if result[1].loadout ~= nil then
|
||||
userData.loadout = json.decode(result[1].loadout)
|
||||
@@ -146,44 +190,6 @@ AddEventHandler('es:playerLoaded', function(source, _player)
|
||||
|
||||
end)
|
||||
|
||||
-- Get job label
|
||||
table.insert(tasks2, function(cb2)
|
||||
MySQL.Async.fetchAll('SELECT * FROM `jobs` WHERE `name` = @name', {
|
||||
['@name'] = userData.job.name
|
||||
}, function(result)
|
||||
userData.job['label'] = result[1].label
|
||||
cb2()
|
||||
end)
|
||||
end)
|
||||
|
||||
-- Get job grade data
|
||||
table.insert(tasks2, function(cb2)
|
||||
|
||||
MySQL.Async.fetchAll('SELECT * FROM `job_grades` WHERE `job_name` = @job_name AND `grade` = @grade', {
|
||||
['@job_name'] = userData.job.name,
|
||||
['@grade'] = userData.job.grade
|
||||
}, function(result)
|
||||
|
||||
userData.job['grade_name'] = result[1].name
|
||||
userData.job['grade_label'] = result[1].label
|
||||
userData.job['grade_salary'] = result[1].salary
|
||||
|
||||
userData.job['skin_male'] = {}
|
||||
userData.job['skin_female'] = {}
|
||||
|
||||
if result[1].skin_male ~= nil then
|
||||
userData.job['skin_male'] = json.decode(result[1].skin_male)
|
||||
end
|
||||
|
||||
if result[1].skin_female ~= nil then
|
||||
userData.job['skin_female'] = json.decode(result[1].skin_female)
|
||||
end
|
||||
|
||||
cb2()
|
||||
end)
|
||||
|
||||
end)
|
||||
|
||||
Async.series(tasks2, cb)
|
||||
|
||||
end)
|
||||
@@ -219,10 +225,10 @@ AddEventHandler('es:playerLoaded', function(source, _player)
|
||||
job = xPlayer.getJob(),
|
||||
loadout = xPlayer.getLoadout(),
|
||||
lastPosition = xPlayer.getLastPosition(),
|
||||
money = xPlayer.get('money')
|
||||
money = xPlayer.getMoney()
|
||||
})
|
||||
|
||||
xPlayer.player.displayMoney(xPlayer.get('money'))
|
||||
xPlayer.displayMoney(xPlayer.getMoney())
|
||||
|
||||
end)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user