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

RevScripts Loss Level ranged, advanced Revscript

Lbtg

Advanced OT User
Joined
Nov 22, 2008
Messages
2,394
Reaction score
162
Hey, i want to ask for help for such script for a tfs 1.4+ REVSCRIPT

IDea:

If player level is 100-200( loss extra 10 levels per death, to normal death rates of server)
If player level is 200-300( loss extra 30 levels per death, to normal death rates of server)
If player level is 300-400( loss extra 60 levels per death, to normal death rates of server)
If player level is 400-529( loss extra 120 levels per death, to normal death rates of server)
530 level save check( if player dies above this level its critical max 530 how much player level can drop, so if plaer die at lvl 531 he go to 530 if player dies at 930 lvl for example he go to 530 lvl back)
530-9999 ( player loss XXX levels to straight go back to 530lvl to save spot, + normal death rates of server appears also)


i hope i explained it understandaible, if someone could try make this, that would help alot! Thanks!
if got questions about script, please ask
 
not tested
local revscript = CreatureEvent("newLevelLoss")
LUA:
function revscript.onDeath(player, corpse, killer, mostDamageKiller)
    local level = player:getLevel()
    local deathLoss = 0

    if level >= 100 and level < 200 then
        deathLoss = 10
    elseif level >= 200 and level < 300 then
        deathLoss = 30
    elseif level >= 300 and level < 400 then
        deathLoss = 60
    elseif level >= 400 and level < 530 then
        deathLoss = 120
    elseif level >= 530 then
        -- Safeguard for levels over 530
        if level > 530 then
            player:setLevel(530)
            local newExp = getExperienceForLevel(530)
            player:removeExperience(player:getExperience() - newExp)
            return true
        end
    end

    if deathLoss > 0 then
        local newLevel = math.max(1, level - deathLoss)
        player:setLevel(newLevel)
      
        local newExp = getExperienceForLevel(newLevel)
        player:removeExperience(player:getExperience() - newExp)
    end

    return true
end

revScript:register()

check that the type here is added correctly only
revScript:type("death") -- edit actually you don't need a type but you need to register event name in login.lua
player:registerEvent("newLevelLoss")
 
Last edited:
not tested
LUA:
function onDeath(player, corpse, killer, mostDamageKiller)
    local level = player:getLevel()
    local deathLoss = 0

    if level >= 100 and level < 200 then
        deathLoss = 10
    elseif level >= 200 and level < 300 then
        deathLoss = 30
    elseif level >= 300 and level < 400 then
        deathLoss = 60
    elseif level >= 400 and level < 530 then
        deathLoss = 120
    elseif level >= 530 then
        -- Safeguard for levels over 530
        if level > 530 then
            player:setLevel(530)
            local newExp = getExperienceForLevel(530)
            player:removeExperience(player:getExperience() - newExp)
            return true
        end
    end

    if deathLoss > 0 then
        local newLevel = math.max(1, level - deathLoss)
        player:setLevel(newLevel)
       
        local newExp = getExperienceForLevel(newLevel)
        player:removeExperience(player:getExperience() - newExp)
    end

    return true
end
can it be a revscript please ?
 

Similar threads

Replies
2
Views
262
Back
Top