I'm edited the code. I'm write in the script the saving system. The bug is this if the player spawn get this error:
ERROR: escoresystem/ss_client.lua:71: attempt to concatenate a nil value
71. line: guiSetText(lblLevel, "Szint: " .. tonumber(szint))
The code:
Clientside:
local lblLevel
local lblPont
local lblExp
local player = getLocalPlayer()
EXPTable = {
szint2 = {5},
szint3 = {10},
szint4 = {15},
szint5 = {20},
szint6 = {25},
szint7 = {30},
szint8 = {35},
szint9 = {40},
szint10 = {45},
}
addEventHandler("onClientResourceStart", getResourceRootElement(getThisResource()),
function ()
lblLevel = guiCreateLabel(1432, 124, 163, 16, "Szint: 100000", false)
guiSetFont(lblLevel, "default-bold-small")
guiLabelSetColor(lblLevel, 250, 0, 0)
lblPont = guiCreateLabel(1432, 175, 163, 15, "Z-Pontok: 9999", false)
guiSetFont(lblPont, "default-bold-small")
guiLabelSetColor(lblPont, 248, 106, 2)
lblExp = guiCreateLabel(1432, 150, 163, 15, "EXP: 500", false)
guiSetFont(lblExp, "default-bold-small")
guiLabelSetColor(lblExp, 56, 252, 240)
guiSetVisible (lblLevel, false )
guiSetVisible (lblPont, false )
guiSetVisible (lblExp, false )
end
)
addEventHandler("onClientPlayerSpawn", getLocalPlayer(),
function()
local exp = getElementData(source, "EXP")
local szint = getElementData(source, "Szint")
local zpont = getElementData(source, "Zpont")
local szintexp = 0
if szint == 1 then
szintexp = EXPTable.szint2[1]
elseif szint == 2 then
szintexp = EXPTable.szint3[1]
elseif szint == 3 then
szintexp = EXPTable.szint4[1]
elseif szint == 4 then
szintexp = EXPTable.szint5[1]
elseif szint == 5 then
szintexp = EXPTable.szint6[1]
elseif szint == 6 then
szintexp = EXPTable.szint7[1]
elseif szint == 7 then
szintexp = EXPTable.szint8[1]
elseif szint == 8 then
szintexp = EXPTable.szint9[1]
elseif szint == 9 then
szintexp = EXPTable.szint9[1]
elseif szint == 10 then
szintexp = 99999
end
guiSetVisible (lblLevel, true )
setElementData(source,"SzintEXP", szintexp)
guiSetVisible (lblPont, true )
guiSetVisible (lblExp, true )
guiSetText(lblLevel, "Szint: " .. tonumber(szint))
guiSetText(lblPont, "Z-Pontok: " .. tonumber(zpont))
guiSetText(lblExp, "EXP: " .. tonumber(exp) .. "/" .. tonumber(szintexp))
end
)
addEventHandler("onClientPlayerWasted", getRootElement(),
function( killer, weapon, bodypart )
local exp = getElementData(killer, "EXP")
local szint = getElementData(killer, "Szint")
local szintexp = getElementData(killer, "SzintEXP")
local ujexp = exp + 5
setElementData(killer, "EXP", ujexp)
guiSetText(lblExp, "EXP: " .. tonumber(ujexp) .. "/" .. tonumber(szintexp))
if szint == 1 then
if exp == EXPTable.szint2[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 2)
guiSetText(lblLevel, "Szint: 2")
end
elseif szint == 2 then
if exp == EXPTable.szint3[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 3)
guiSetText(lblLevel, "Szint: 3")
end
elseif szint == 4 then
if exp == EXPTable.szint4[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 4)
guiSetText(lblLevel, "Szint: 4")
end
elseif szint == 5 then
if exp == EXPTable.szint5[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 5)
guiSetText(lblLevel, "Szint: 5")
end
elseif szint == 6 then
if exp == EXPTable.szint6[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 6)
guiSetText(lblLevel, "Szint: 6")
end
elseif szint == 7 then
if exp == EXPTable.szint7[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 7)
guiSetText(lblLevel, "Szint: 7")
end
elseif szint == 8 then
if exp == EXPTable.szint8[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint",
guiSetText(lblLevel, "Szint: 8")
end
elseif szint == 9 then
if exp == EXPTable.szint9[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 9)
guiSetText(lblLevel, "Szint: 9")
end
elseif szint == 10 then
if exp == EXPTable.szint10[1] then
setElementData(killer, "EXP", 0)
setElementData(killer, "Szint", 10)
guiSetText(lblLevel, "Szint: 10")
end
end
end
)
function setLevel ( )
setElementData(player, "Szint", 5)
setElementData(player, "EXP", 19)
setElementData(player, "Zpont", 98)
local exp = getElementData(player, "EXP")
local szint = getElementData(player, "Szint")
local zpont = getElementData(player, "Zpont")
guiSetText(lblLevel, "Szint: " .. tonumber(szint))
guiSetText(lblPont, "Z-Pontok: " .. tonumber(zpont))
guiSetText(lblExp, "EXP: " .. tonumber(exp))
end
addCommandHandler("setlevel", setLevel)
Serverside:
addEventHandler("onPlayerLogin", getRootElement(),
function()
local playeraccount = getPlayerAccount ( source )
local joined = getAccountData(playeraccount, "es.joined")
if joined == false then
setAccountData(playeraccount, "es.joined", true)
setElementData(source, "EXP", 0)
setElementData(source, "Szint", 1)
setElementData(source, "Zpont", 0)
else
local playeraccount = getplayeraccount ( source )
local exp = getAccountData(playeraccount, "es.exp")
local szint = getAccountData(playeraccount, "es.szint")
local zpont = getAccountData(playeraccount, "es.zpont")
setElementData(source, "EXP", exp)
setElementData(source, "Szint", szint)
setElementData(source, "Zpont", zpont)
end
end
)
addEventHandler("onPlayerQuit", getRootElement(),
function()
local exp = getElementData(source, "EXP")
local szint = getElementData(source, "Szint")
local zpont = getElementData(source, "Zpont")
local playeraccount = getPlayerAccount ( source )
setAccountData (playeraccount, "es.exp", exp)
setAccountData (playeraccount, "es.szint", szint)
setAccountData (playeraccount, "es.zpont", zpont)
end
)
Postscript: If I'm used the /setlevel command every function works.