WikiArk21
New Member
- Joined
- Oct 24, 2023
- Messages
- 12
- Reaction score
- 1
I was looking for a script to implement a level-up lock that is only released if a certain storage is present. While searching forums, I found the script below, but it's designed for TFS 1.x. I would like it to be adapted for TFS 0.4. How can I do that?
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