Hi,
So i made an Leveling system. Currently when player have more than needed amount of exp i just add 1 level and set exp to 0. I want to make it so if to level up i need 10 exp (im level 1), but i just got 30 exp and i use for example this formula to get needed exp to level up - Level * 10, so it should add me 2 levels and leave 10 exp and to level up i need 30
Heres how its currently:
if lvl * 10 <= newexp then
DataService:Set(plr, "Level", lvl + 1)
newexp = 0
DataService:Set(plr, "Exp", newexp)
end
What i have tryed so far:
if lvl * 10 == newexp then
DataService:Set(plr, "Level", lvl + 1)
newexp = 0
DataService:Set(plr, "Exp", newexp)
elseif lvl * 10 < newexp then
local newlevel = lvl
repeat
newexp = newexp - newlevel * 10
newlevel = newlevel + 1
until lvl * 10 > newexp
DataService:Set(plr, "Level", newlevel)
DataService:Set(plr, "Exp", newexp)
end
It supposed to give get how much levels i get for this amount of exp and if exp no more meet requirements it will stop and set the data i have got.
For some reason it did something weird so i decided to make it simple just like i shown above.
Can someone good at math tell if this is good or what is bad? Maybe i just tested it bad and actually it was doing good?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Update: I tested it again and sometimes it sets -X Exp.
Useful Info: Level i had when tested: 3; Exp i had when tested: 18; Exp Needed to lvl: 30 (using formula i gave)