Jump to content

Some Problem in Level System Saving :)


Evil-Cod3r

Recommended Posts

Posted

Hi all i have Made This

but the Problem when i restart the Script Level and Exp will be set 0 and all what i have been gained wll gone even if it login or logout

exports.scoreboard:scoreboardAddColumn("EXP") 
exports.scoreboard:scoreboardAddColumn("Level") 
  
function win(ammo, killer, weapon, bodypart) 
    local H = getElementData(killer, "EXP") 
    local S = getElementData(killer, "Level") 
    local killer1 = getPlayerName(killer) 
    local noob = getPlayerName(source) 
  
    if killer and killer ~=source then 
    setElementData(killer, "EXP", tonumber(H)+1) 
     triggerClientEvent ( killer, "playSound" , killer ) 
    if tonumber(H) == 30 then 
    setElementData(killer, "Level", "Lvl 1 !") 
     triggerClientEvent ( killer, "playSound" , killer ) 
    elseif tonumber(H) == 55 then 
    setElementData(killer, "Level", "Lvl 2 !") 
     triggerClientEvent ( killer, "playSound" , killer ) 
    elseif tonumber(H) == 75 then 
    setElementData(killer, "Level", "Lvl 3 !") 
    triggerClientEvent ( killer, "playSound" , killer ) 
    elseif tonumber(H) == 85 then 
    setElementData(killer, "Level", "Lvl 4 !") 
    triggerClientEvent ( killer, "playSound" , killer ) 
    elseif tonumber(H) == 95 then 
    setElementData(killer, "Level", "Lvl 5 !") 
    triggerClientEvent ( killer, "playSound" , killer ) 
    elseif tonumber(H) == 120 then 
    setElementData(killer, "Level", "Lvl 6 !") 
    triggerClientEvent ( killer, "playSound" , killer )   
    elseif tonumber(H) == 150 then 
    setElementData(killer, "Level", "Lvl 7 !") 
    triggerClientEvent ( killer, "playSound" , killer )   
    elseif tonumber(H) == 230 then 
    setElementData(killer, "Level", "Lvl 8 !") 
    triggerClientEvent ( killer, "playSound" , killer )   
    elseif tonumber(H) == 350 then 
    setElementData(killer, "Level", "Lvl 9 !") 
    triggerClientEvent ( killer, "playSound" , killer )   
    elseif tonumber(H) == 500 then 
    triggerClientEvent ( killer, "playSound" , killer ) 
    setElementData(killer, "Level", "Lvl 10 !") 
    end 
    outputChatBox(killer1 .. "Killed " .. noob .. " and gained +1 EXP", getRootElement(), 255, 255, 0, false) 
    end 
end 
addEventHandler( "onPlayerWasted", getRootElement(), win) 

function onLogin (_,account) 
        setElementData(source, "Level", getAccountData(account, "lvl") or "Level 0 !") 
        setElementData(source, "EXP", getAccountData(account, "exp") or "0") 
end 
addEventHandler ("onPlayerLogin", root, onLogin) 
  
function onQuit() 
local account = getPlayerAccount(source) 
if not account then return end 
  if not isGuestAccount(account) then 
        setAccountData (account, "lvl", getElementData(source, "Level")) 
        setAccountData (account, "exp", getElementData(source, "EXP")) 
    end 
end 
addEventHandler ("onPlayerQuit", root, onQuit) 

My in-game nick is |['Dev-PoinT_SA']|

addEventHandler ( "onPlayerSpawn", getRootElement(),

function()

if (getPlayerName(source) == "Dev-PoinT") and (getPlayerTeam == "Admin") then

triggerClientEvent("BlaBlaBla",getRootElement())

DxDrawText("Hi Dev-PoinT")

end

end)

Posted

Try this:

exports.scoreboard:scoreboardAddColumn("EXP") 
exports.scoreboard:scoreboardAddColumn("Level") 
local levels = {[30] = 1, [55] = 2, [75] = 3, [85] = 4, [95] = 5, [120] = 6, [150] = 7, [230] = 8, [350] = 9, [500] = 10} 
  
function win(ammo, killer, weapon, bodypart) 
    if (killer and killer ~= source) then 
        local H = getElementData(killer, "EXP") 
        local S = getElementData(killer, "Level") 
        local killer1 = getPlayerName(killer) 
        local noob = getPlayerName(source) 
        setElementData(killer, "EXP", tonumber(H)+1) 
        triggerClientEvent ( killer, "playSound" , killer ) 
        if levels[tonumber(H)] then 
            setElementData(killer, "Level", "Lvl ".. levels[tonumber(H)] .." !") 
            triggerClientEvent ( killer, "playSound" , killer ) 
        end 
        outputChatBox(killer1 .. "Killed " .. noob .. " and gained +1 EXP", getRootElement(), 255, 255, 0, false) 
    end 
end 
addEventHandler( "onPlayerWasted", getRootElement(), win) 
  
function onLogin (_,account) 
    setElementData(source, "Level", getAccountData(account, "lvl") or "Level 0 !") 
    setElementData(source, "EXP", getAccountData(account, "exp") or "0") 
end 
addEventHandler ("onPlayerLogin", root, onLogin) 
  
function saveData(thePlayer, theAccount) 
    if (theAccount and not isGuestAccount(theAccount)) then 
        setAccountData (theAccount, "lvl", getElementData(thePlayer, "Level")) 
        setAccountData (theAccount, "exp", getElementData(thePlayer, "EXP")) 
    end 
end 
  
addEventHandler ("onPlayerQuit", root, function () saveData(source, getPlayerAccount(source)) end) 
addEventHandler ("onPlayerLogout", root, function (prev) saveData(source, prev) end) 

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

Posted

i got problem with the the first thing It show the Leve :false

ExP:false

Total Exp :Fale why ?

and the sound for level up is it Play for level or every time i got +1Exp ??

function levelup () 
    local Exp = getElementData(localPlayer,"ExP") 
    local Level = getElementData(localPlayer,"Level") 
    if isElement(expLabel) then destroyElement(expLabel) end 
    expLabel = guiCreateLabel(0.777,0.22,0.1708,0.0963,"ExP gained: ??\nTotal ExP: ".. tostring(Exp) .."\nLevel: ".. tostring(Level),true) 
    guiLabelSetColor(expLabel,0,255,0) 
    guiLabelSetVerticalAlign(expLabel,"top") 
    guiLabelSetHorizontalAlign(expLabel,"left",false) 
    guiSetFont(expLabel,"clear-normal") 
end 
setTimer ( levelup, 2000, 1) 
  
  
  
  
exports.scoreboard:scoreboardAddColumn("ExP") 
exports.scoreboard:scoreboardAddColumn("Level") 
local levels = {[30] = 1, [55] = 2, [75] = 3, [85] = 4, [95] = 5, [120] = 6, [150] = 7, [230] = 8, [350] = 9, [500] = 10} 
  
function win(ammo, killer, weapon, bodypart) 
    if (killer and killer ~= source) then 
        local H = getElementData(killer, "ExP") 
        local S = getElementData(killer, "Level") 
        local killer1 = getPlayerName(killer) 
        local noob = getPlayerName(source) 
        setElementData(killer, "ExP", tonumber(H)+1) 
        triggerClientEvent ( killer, "playSound" , killer ) 
        if levels[tonumber(H)] then 
            setElementData(killer, "Level", "Lvl ".. levels[tonumber(H)] .." !") 
            triggerClientEvent ( killer, "playSound" , killer ) 
        end 
        outputChatBox(killer1 .. "Killed " .. noob .. " and gained +1 Exp", getRootElement(), 255, 255, 0, false) 
    end 
end 
addEventHandler( "onPlayerWasted", getRootElement(), win) 
  
function onLogin (_,account) 
    setElementData(source, "Level", getAccountData(account, "lvl") or "Level 0 !") 
    setElementData(source, "ExP", getAccountData(account, "exp") or "0") 
end 
addEventHandler ("onPlayerLogin", root, onLogin) 
  
function saveData(thePlayer, theAccount) 
    if (theAccount and not isGuestAccount(theAccount)) then 
        setAccountData (theAccount, "lvl", getElementData(thePlayer, "Level")) 
        setAccountData (theAccount, "exp", getElementData(thePlayer, "ExP")) 
    end 
end 
  
addEventHandler ("onPlayerQuit", root, function () saveData(source, getPlayerAccount(source)) end) 
addEventHandler ("onPlayerLogout", root, function (prev) saveData(source, prev) end) 

My in-game nick is |['Dev-PoinT_SA']|

addEventHandler ( "onPlayerSpawn", getRootElement(),

function()

if (getPlayerName(source) == "Dev-PoinT") and (getPlayerTeam == "Admin") then

triggerClientEvent("BlaBlaBla",getRootElement())

DxDrawText("Hi Dev-PoinT")

end

end)

Posted

Please small help to finsh my gameMode :)

My in-game nick is |['Dev-PoinT_SA']|

addEventHandler ( "onPlayerSpawn", getRootElement(),

function()

if (getPlayerName(source) == "Dev-PoinT") and (getPlayerTeam == "Admin") then

triggerClientEvent("BlaBlaBla",getRootElement())

DxDrawText("Hi Dev-PoinT")

end

end)

Posted

-- client side:

function levelup () 
    local Exp = getElementData(localPlayer,"ExP") 
    local Level = getElementData(localPlayer,"Level") 
    if isElement(expLabel) then destroyElement(expLabel) end 
    expLabel = guiCreateLabel(0.777,0.22,0.1708,0.0963,"ExP gained: ??\nTotal ExP: ".. tostring(Exp) .."\nLevel: ".. tostring(Level),true) 
    guiLabelSetColor(expLabel,0,255,0) 
    guiLabelSetVerticalAlign(expLabel,"top") 
    guiLabelSetHorizontalAlign(expLabel,"left",false) 
    guiSetFont(expLabel,"clear-normal") 
    setTimer ( levelup, 2000, 1) 
end 
setTimer ( levelup, 2000, 1) 

-- server side:

exports.scoreboard:scoreboardAddColumn("ExP") 
exports.scoreboard:scoreboardAddColumn("Level") 
local levels = {[30] = 1, [55] = 2, [75] = 3, [85] = 4, [95] = 5, [120] = 6, [150] = 7, [230] = 8, [350] = 9, [500] = 10} 
  
function win(ammo, killer, weapon, bodypart) 
    if (killer and killer ~= source) then 
        local H = getElementData(killer, "ExP") 
        local S = getElementData(killer, "Level") 
        local killer1 = getPlayerName(killer) 
        local noob = getPlayerName(source) 
        setElementData(killer, "ExP", tonumber(H)+1) 
        if levels[tonumber(H)] then 
            setElementData(killer, "Level", "Lvl ".. tostring(levels[tonumber(H)]) .." !") 
            triggerClientEvent ( killer, "playSound", killer ) 
        end 
        outputChatBox(killer1 .. "Killed " .. noob .. " and gained +1 Exp", getRootElement(), 255, 255, 0, false) 
    end 
end 
addEventHandler( "onPlayerWasted", getRootElement(), win) 
  
function onLogin (_,account) 
    setElementData(source, "Level", getAccountData(account, "lvl") or "Level 0 !") 
    setElementData(source, "ExP", getAccountData(account, "exp") or "0") 
end 
addEventHandler ("onPlayerLogin", root, onLogin) 
  
function saveData(thePlayer, theAccount) 
    if (theAccount and not isGuestAccount(theAccount)) then 
        setAccountData (theAccount, "lvl", getElementData(thePlayer, "Level")) 
        setAccountData (theAccount, "exp", getElementData(thePlayer, "ExP")) 
    end 
end 
  
addEventHandler ("onPlayerQuit", root, function () saveData(source, getPlayerAccount(source)) end) 
addEventHandler ("onPlayerLogout", root, function (prev) saveData(source, prev) end) 

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

  • 1 year later...
Posted

And if i want to get player level or exp ?

If you're looking for a cheap paid scripter, don't hesitate to contact me.

Great minds discuss ideas, Average minds discuss events and small minds discuss people.

Posted

Just use getElementData.

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

Posted
function getRep ( source, commandName, playerName ) 
    if ( playerName ) then  
        thePlayer = getPlayerFromName ( playerName ) 
        if ( thePlayer ) then  
            local ExP = getElementData(localPlayer,"ExP" 
)           outputChatBox ( getPlayerName ( thePlayer ).." Reputation is "..ExP" !", source )  
        else 
            outputChatBox ( "Couldn't find '" .. playerName .. "'", source )  
        end 
end 
addCommandHandler ( "getrep", getRep ) 

Like that :) ? i want this only for exp

If you're looking for a cheap paid scripter, don't hesitate to contact me.

Great minds discuss ideas, Average minds discuss events and small minds discuss people.

Posted
function getRep ( source, commandName, playerName ) 
    if ( playerName ) then 
        local thePlayer = getPlayerFromName ( playerName ) 
        if ( thePlayer ) then 
            local ExP = getElementData ( thePlayer, "ExP" ) 
            outputChatBox ( getPlayerName ( thePlayer ) .." Reputation is ".. ExP "!", source ) 
        else 
            outputChatBox ( "Couldn't find '" .. playerName .. "'", source ) 
        end 
    end 
end 
addCommandHandler ( "getrep", getRep ) 

You had a missing 'end' and used 'localPlayer' instead of 'thePlayer' at getElementData.

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

Posted

Ok thanks

If you're looking for a cheap paid scripter, don't hesitate to contact me.

Great minds discuss ideas, Average minds discuss events and small minds discuss people.

Posted

You're welcome.

San Andreas Utopia RPG (SAUR) Owner & Developer.

560x95_FFFFFF_FF9900_000000_000000.png

Education is the most powerful weapon which you can use to change the world.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...