Compare commits

...

2 Commits

Author SHA1 Message Date
Jim Shield
960f73ad6d Actual working checks for hasJob()
`goto skip` is weird.
2025-10-24 14:25:17 +01:00
Jim Shield
18ecc1429e as nil value check for hasJob() function
Should now properly check if the player hasn't got `playerData` from loading in fully and just return that they don't have the requested job
2025-10-24 13:23:05 +01:00
2 changed files with 45 additions and 25 deletions

View File

@@ -122,7 +122,7 @@ function GetPlayer(source)
return framework.GetPlayer(source)
end
end
return nil
return {}
end
-------------------------------------------------------------

View File

@@ -439,19 +439,26 @@ local hasGroupFunc = {
function(group, grade, src)
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local jobinfo = playerInfo.job or playerInfo.PlayerData.job
if jobinfo and jobinfo.name == group then
local jobInfo, gangInfo = nil, nil
if next(playerInfo) then
jobInfo = playerInfo.job
gangInfo = playerInfo.gang
if playerInfo.PlayerData then
jobInfo = playerInfo.PlayerData.job
gangInfo = playerInfo.PlayerData.gang
end
end
if jobInfo and jobInfo.name == group then
hasJobFlag = true
duty = jobinfo.onduty
if grade and not (grade <= jobinfo.grade.level) then
duty = jobInfo.onduty
if grade and not (grade <= jobInfo.grade.level) then
hasJobFlag = false
end
return hasJobFlag, duty
end
local ganginfo = playerInfo.gang or playerInfo.PlayerData.gang
if ganginfo and ganginfo.name == group then
if gangInfo and gangInfo.name == group then
hasJobFlag = true
if grade and not (grade <= ganginfo.grade.level) then
if grade and not (grade <= gangInfo.grade.level) then
hasJobFlag = false
end
return hasJobFlag, duty
@@ -465,21 +472,29 @@ local hasGroupFunc = {
function(group, grade, src)
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local jobinfo = playerInfo.job or playerInfo.PlayerData.job
if jobinfo and jobinfo.name == group then
local jobInfo, gangInfo = nil, nil
if next(playerInfo) then
jobInfo = playerInfo.job
gangInfo = playerInfo.gang
if playerInfo.PlayerData then
jobInfo = playerInfo.PlayerData.job
gangInfo = playerInfo.PlayerData.gang
end
end
if jobInfo and jobInfo.name == group then
hasJobFlag = true
duty = jobinfo.onduty
if grade and not (grade <= jobinfo.grade.level) then
duty = jobInfo.onduty
if grade and not (grade <= jobInfo.grade.level) then
hasJobFlag = false
end
end
local ganginfo = playerInfo.gang or playerInfo.PlayerData.gang
if ganginfo and ganginfo.name == group then
if gangInfo and gangInfo.name == group then
hasJobFlag = true
if grade and not (grade <= ganginfo.grade.level) then
if grade and not (grade <= gangInfo.grade.level) then
hasJobFlag = false
end
end
::skip::
return hasJobFlag, duty
end,
},
@@ -508,9 +523,8 @@ local hasGroupFunc = {
hasGroup =
function(group, grade, src)
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local info = playerInfo.job
local info = playerInfo and playerInfo.job
while not info do
info = GetPlayer(src).job
Wait(100)
@@ -518,7 +532,6 @@ local hasGroupFunc = {
if info.name == group then
hasJobFlag = true
end
return hasJobFlag, duty
end,
},
@@ -528,18 +541,25 @@ local hasGroupFunc = {
function(group, grade, src)
local hasJobFlag, duty = false, true
local playerInfo = GetPlayer(src)
local jobinfo = playerInfo.job or playerInfo.PlayerData.job
if jobinfo and jobinfo.name == group then
local jobInfo, gangInfo = nil, nil
if next(playerInfo) then
jobInfo = playerInfo.job
gangInfo = playerInfo.gang
if playerInfo.PlayerData then
jobInfo = playerInfo.PlayerData.job
gangInfo = playerInfo.PlayerData.gang
end
end
if jobInfo and jobInfo.name == group then
hasJobFlag = true
duty = jobinfo.onduty
if grade and not (grade <= jobinfo.grade.level) then
duty = jobInfo.onduty
if grade and not (grade <= jobInfo.grade.level) then
hasJobFlag = false
end
end
local ganginfo = playerInfo.gang or playerInfo.PlayerData.gang
if ganginfo and ganginfo.name == group then
if gangInfo and gangInfo.name == group then
hasJobFlag = true
if grade and not (grade <= ganginfo.grade.level) then
if grade and not (grade <= gangInfo.grade.level) then
hasJobFlag = false
end
end