• 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!

TFS 1.X Level Cap per Stages

igorke

New Member
Joined
Apr 30, 2019
Messages
1
Reaction score
0
I thought about a system and I am not sure how it would be easier to be implemented, please, give me some help!

It's basically locking the player level and unlocking if he completes a quest.

If a player reachs level 20, he stops leveling up and need to complete a quest to unlock level 30 and so on.

Thanks!
 
I thought about a system and I am not sure how it would be easier to be implemented, please, give me some help!

It's basically locking the player level and unlocking if he completes a quest.

If a player reachs level 20, he stops leveling up and need to complete a quest to unlock level 30 and so on.

Thanks!
Untested, let me know how it works for you.
Lua:
-- Put this in data/global.lua
function getExpForLevel(level)
    level = level - 1
    return ((50 * level * level * level) - (150 * level * level) + (400 * level)) / 3
end

-- Put this in data/events/scripts/player.lua before Player:onGainExperience (outside of function)
local level_tiers = {
    {level = 20, storage = 50000, value = 1}, -- level, quest_storage, value_required
    {level = 40, storage = 50001, value = 1},
    {level = 60, storage = 50002, value = 1},
}

-- Put this in data/events/scripts/player.lua within Player:onGainExperience before "return exp"
for _, array in pairs(level_tiers) do
    if self:getStorageValue(array.storage) < array.value then
        local current_exp, level_exp = self:getExperience(), getExpForLevel(array.level)
        if (current_exp + exp) > level_exp then
            exp = math.max(0, level_exp - current_exp)
            break
        end
    end
end
 
Back
Top