Jump to content

[HELP] XP Process in %


yoya99

Recommended Posts

hey guys...this is my Level system and i wanted to ask you how to make something behind the dxdrawText XP: how much xp you need to reach the next level....something like XP: 0/100 (0%) or something?

here is my exp system:

function win(ammo, killer, weapon, bodypart) 
    if (killer and getElementType(killer) == "player" and killer ~= source) then 
        local H = getElementData(killer, "XP") or 5 
        local S = getElementData(killer, "Level") 
        local killer1 = getPlayerName(killer) 
        local noob = getPlayerName(source) 
        local X = 1 
        setElementData(killer, "XP", tonumber(H)+X) 
        local H = tonumber(H) + X 
        if tonumber(H) == 2 then 
        setElementData(killer, "Level", "1") 
        elseif tonumber(H) == 5 then 
        setElementData(killer, "Level", "2") 
        elseif tonumber(H) == 10 then 
        setElementData(killer, "Level", "3") 
        elseif tonumber(H) == 15 then 
        setElementData(killer, "Level", "4") 
        elseif tonumber(H) == 25 then 
        setElementData(killer, "Level", "5") 
        elseif tonumber(H) == 30 then 
        setElementData(killer, "Level", "6") 
        elseif tonumber(H) == 45 then 
        setElementData(killer, "Level", "7") 
        elseif tonumber(H) == 55 then 
        setElementData(killer, "Level", "8") 
        elseif tonumber(H) == 65 then 
        setElementData(killer, "Level", "9") 
        elseif tonumber(H) == 70 then 
        setElementData(killer, "Level", "10") 
        elseif tonumber(H) == 75 then 
        setElementData(killer, "Level", "11") 
        elseif tonumber(H) == 85 then 
        setElementData(killer, "Level", "12") 
        elseif tonumber(H) == 100 then 
        setElementData(killer, "Level", "13") 
        elseif tonumber(H) == 115 then 
        setElementData(killer, "Level", "14") 
        elseif tonumber(H) == 130 then 
        setElementData(killer, "Level", "15") 
        elseif tonumber(H) == 145 then 
        setElementData(killer, "Level", "16") 
        elseif tonumber(H) == 155 then 
        setElementData(killer, "Level", "17") 
        elseif tonumber(H) == 160 then 
        setElementData(killer, "Level", "18") 
        elseif tonumber(H) == 170 then 
        setElementData(killer, "Level", "19") 
        elseif tonumber(H) == 180 then 
        setElementData(killer, "Level", "20") 
        elseif tonumber(H) == 200 then 
        setElementData(killer, "Level", "21") 
        elseif tonumber(H) == 250 then 
        setElementData(killer, "Level", "22") 
        elseif tonumber(H) == 300 then 
        setElementData(killer, "Level", "23") 
        elseif tonumber(H) == 400 then 
        setElementData(killer, "Level", "24") 
        elseif tonumber(H) == 450 then 
        setElementData(killer, "Level", "25") 
        elseif tonumber(H) == 600 then 
        setElementData(killer, "Level", "26") 
        elseif tonumber(H) == 650 then 
        setElementData(killer, "Level", "27") 
        elseif tonumber(H) == 750 then 
        setElementData(killer, "Level", "28") 
        elseif tonumber(H) == 830 then 
        setElementData(killer, "Level", "29") 
        elseif tonumber(H) == 900 then 
        setElementData(killer, "Level", "30") 
        elseif tonumber(H) == 970 then 
        setElementData(killer, "Level", "31") 
        elseif tonumber(H) == 10600 then 
        setElementData(killer, "Level", "32") 
        elseif tonumber(H) == 11111 then 
        setElementData(killer, "Level", "33") 
        elseif tonumber(H) == 20000 then 
        setElementData(killer, "Level", "34") 
        elseif tonumber(H) == 20500 then 
        setElementData(killer, "Level", "35") 
        elseif tonumber(H) == 40600 then 
        setElementData(killer, "Level", "36") 
        elseif tonumber(H) == 50000 then 
        setElementData(killer, "Level", "37") 
        elseif tonumber(H) == 51000 then 
        setElementData(killer, "Level", "38") 
        end 
    end 
end 
addEventHandler( "onPlayerWasted", getRootElement(), win) 
  
function onLogin (_,account) 
    setElementData(source, "Level", getAccountData(account, "LV") or "0") 
    setElementData(source, "XP", getAccountData(account, "EXP") or "0") 
end 
addEventHandler ("onPlayerLogin", root, onLogin) 
  
function saveData(thePlayer, theAccount) 
local theAccount = getPlayerAccount(source) 
    if (theAccount and not isGuestAccount(theAccount)) then 
        setAccountData (theAccount, "LV", getElementData(thePlayer, "Level")) 
        setAccountData (theAccount, "EXP", getElementData(thePlayer, "XP")) 
    end 
end 
  
addEventHandler ("onPlayerQuit", root, function () saveData(source, getPlayerAccount(source)) end) 
addEventHandler ("onPlayerLogout", root, function (prev) saveData(source, prev) end) 
  
  

and here is my dxhud:

if XP then 
    dxDrawText("XP: "..XP, (336/1024)*sWidth, (745/768)*sHeight, (289/1024)*sWidth, (250/768)*sHeight, tocolor (255, 255, 255, 255), (0.85/1366)*sWidth,(0.9/768)*sHeight,"bankgothic","left","top",false,false,false,true) 
    end 
    if Level then 
    dxDrawText("LV: "..Level, (466/1024)*sWidth, (745/768)*sHeight, (289/1024)*sWidth, (250/768)*sHeight, tocolor (255, 255, 255, 255), (0.85/1366)*sWidth,(0.9/768)*sHeight,"bankgothic","left","top",false,false,false,true) 
    end 

Thank you much in advance ;)

Link to comment
  
local exp = { 
-- level = exp 
[1] = 4, 
[2] = 5, 
[3] = 6  
-- add more if you want 
} 
local lv = exp[(getElementData(localPlayer, "Level") or 0)+1] 
local lv =(( getElementData(localPlayer, "XP") or 5)/lv)*100 
  
  
    dxDrawText(lv.."%" (336/1024)*sWidth, (745/768)*sHeight, (289/1024)*sWidth, (250/768)*sHeight, tocolor (255, 255, 255, 255), (0.85/1366)*sWidth,(0.9/768)*sHeight,"bankgothic","left","top",false,false,false,true) 
  

Link to comment
you think its that what i mean? because lvl 1 is maybe /200

lvl2 is /400

lvl 3 is /1200

and so on

and in brackets behind the % of XP

example : i have LV:1 XP:100/200 (50%)

is it posible like that?

You can modify the table.

You can modify the table and most importantly test it.

  
local exp = { 
-- level = exp 
[1] = 200, 
[2] = 400, 
[3] = 1200  
-- add more if you want 
} 

Link to comment

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...