66 lines
2.4 KiB
Lua
66 lines
2.4 KiB
Lua
|
|
function AddLevel(source)
|
|
local identifier = GetIdentifier(source)
|
|
local myData = GetPlayerJobData(source)
|
|
if myData then
|
|
myData.level = myData.level + 1
|
|
if not Config.XP[myData.level] then
|
|
myData.level = #Config.XP
|
|
myData.xp = Config.XP[myData.level]
|
|
else
|
|
myData.xp = 0
|
|
end
|
|
for _,v in pairs(Config.Missions) do
|
|
if v.reqLevel and myData.level == v.reqLevel then
|
|
myData.unlockedMissions[tostring(v.id)] = true
|
|
local companyIndex = tostring(v.companyIndex)
|
|
if myData.points[companyIndex] < v.reqPoint then
|
|
myData.points[companyIndex] = v.reqPoint
|
|
end
|
|
end
|
|
end
|
|
SyncPlayerDataByKey(source, "points", myData.points)
|
|
SyncPlayerDataByKey(source, "unlockedMissions", myData.unlockedMissions)
|
|
SyncPlayerDataByKey(source, "xp", myData.xp)
|
|
SyncPlayerDataByKey(source, "level", myData.level)
|
|
ExecuteSql("UPDATE codem_truckerjob SET `level` = '" ..
|
|
myData.level .. "', `xp` = '" ..
|
|
myData.xp .. "', `unlockedMissions` = '"..json.encode(myData.unlockedMissions).."', `points` = '"..json.encode(myData.points).."' WHERE `identifier` = '" .. identifier .. "'")
|
|
end
|
|
end
|
|
|
|
-- RegisterCommand('addlevel', function(source, args)
|
|
-- for i=1, tonumber(args[1]) do
|
|
-- AddLevel(source)
|
|
-- end
|
|
-- end)
|
|
|
|
|
|
function AddXP(source, xp)
|
|
local identifier = GetIdentifier(source)
|
|
local myData = GetPlayerJobData(source)
|
|
if not xp and xp <= 0 then
|
|
return
|
|
end
|
|
if myData then
|
|
|
|
local level = myData.level
|
|
if level == #Config.XP then
|
|
myData.xp = 0
|
|
return
|
|
end
|
|
myData.xp = tonumber(myData.xp) + tonumber(xp)
|
|
if Config.XP[level] and myData.xp >= Config.XP[level] then
|
|
local remainXp = Config.XP[level]-myData.xp
|
|
AddLevel(source)
|
|
if remainXp < 0 then
|
|
AddXP(source, -(remainXp))
|
|
end
|
|
else
|
|
SyncPlayerDataByKey(source, "xp", myData.xp)
|
|
end
|
|
ExecuteSql("UPDATE codem_truckerjob SET `level` = '" ..
|
|
myData.level .. "', `xp` = '" ..
|
|
myData.xp .. "' WHERE `identifier` = '" .. identifier .. "'")
|
|
end
|
|
end |