• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

function player:addLevel?

vexler222

Active Member
Joined
Apr 22, 2012
Messages
714
Solutions
15
Reaction score
46
Hi, is there a function like player: addLevel in "tfs 1.3"? I know there is a player: addExperience, but I would like to add 1 level to the player, not X experience
 
Solution
add - data/lib/core/game.lua
Lua:
function Game.getExperienceForLevel(level)
    return math.floor((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3
end

add - data/lib/core/player.lua
Lua:
function Player.addLevel(self, amount, round)
    round = round or false
    local level, amount = self:getLevel(), amount or 1
    if amount > 0 then
        return self:addExperience(Game.getExperienceForLevel(level + amount) - (round and self:getExperience() or Game.getExperienceForLevel(level)))
    else
        return self:removeExperience(((round and self:getExperience() or Game.getExperienceForLevel(level)) - Game.getExperienceForLevel(level + amount)))
    end
end

and try
Lua:
player:addLevel(...)
Why u use 1.3?

EDIT:
use player:addSkillTries(SKILL_NAME, LEVEL)

Cuz i like 1.3 nvm
Can u tell me how it work? Im trying but not add lvl after use

Code:
function onUse(cid, item, fromPosition, itemEx, toPosition, isHotkey)
    local player = Player(cid)
    player:addSkillTries(SKILL_LEVEL, 1)
    player:say('LVL!', TALKTYPE_MONSTER_SAY)
    Item(item.uid):remove(1)
end
 
add - data/lib/core/game.lua
Lua:
function Game.getExperienceForLevel(level)
    return math.floor((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3
end

add - data/lib/core/player.lua
Lua:
function Player.addLevel(self, amount, round)
    round = round or false
    local level, amount = self:getLevel(), amount or 1
    if amount > 0 then
        return self:addExperience(Game.getExperienceForLevel(level + amount) - (round and self:getExperience() or Game.getExperienceForLevel(level)))
    else
        return self:removeExperience(((round and self:getExperience() or Game.getExperienceForLevel(level)) - Game.getExperienceForLevel(level + amount)))
    end
end

and try
Lua:
player:addLevel(...)
 
Last edited:
Solution
add - data/global.lua
Lua:
function getExperienceForLevel(level)
    return math.floor((((level - 6) * level + 17) * level - 12) / 6) * 100
end

add - data/lib/core/player.lua
Lua:
function Player.addLevel(self, amount, round)
    round = round or false
    local level, amount = self:getLevel(), amount or 1
    if amount > 0 then
        return self:addExperience(Game.getExperienceForLevel(level + amount) - (round and self:getExperience() or Game.getExperienceForLevel(level)))
    else
        return self:removeExperience(((round and self:getExperience() or Game.getExperienceForLevel(level)) - Game.getExperienceForLevel(level + amount)))
    end
end

and try
Lua:
player:addLevel(...)

attempt to call method 'addLevel' (a nil value)
 
See changes above.

add in data/lib/core/game.lua and player.lua

1633094614674.png
1633094628432.png

ex:
Lua:
function onSay(player, words, param)
    local old = player:getLevel()
    player:addLevel(1)
    print("old: "..old.." new: "..player:getLevel())
    return false
end
 
Last edited:
Back
Top