diff options
Diffstat (limited to 'gamemode/inventorysystem/skills/sh_skillcommon.lua')
| -rw-r--r-- | gamemode/inventorysystem/skills/sh_skillcommon.lua | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/gamemode/inventorysystem/skills/sh_skillcommon.lua b/gamemode/inventorysystem/skills/sh_skillcommon.lua index 9c022eb..e0db95a 100644 --- a/gamemode/inventorysystem/skills/sh_skillcommon.lua +++ b/gamemode/inventorysystem/skills/sh_skillcommon.lua @@ -73,4 +73,21 @@ function lib.SkillList() return skills end +local xpmult = 1.5 --the lower, the more lvl per xp +function lib.levelfunc(val) + local curlvl = math.log(val,xpmult) + local prevlvlxp = xpmult ^ math.floor(curlvl) + local nextlvlxp = xpmult ^ (math.floor(curlvl) + 1) + local sp = nextlvlxp - prevlvlxp + local frac = (val - prevlvlxp) / ((sp ~= 0) and sp or 1) --don't divide by 0 + return math.floor(curlvl), frac +end + +function pmeta:GetSkill(name) + local loc = self:HasItem(name) + if not loc then return 0 end + local item = self:GetItem(loc) + return lib.levelfunc(item.ammt) +end + return lib |
