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

Help with REGENERATION spell scalling with ml + level

bergamoth

Member
Joined
Jul 26, 2021
Messages
24
Solutions
2
Reaction score
14
Hello! I'm trying to make my regen spell scale with lvl and ml, but failing hard!

This is the crap i made, but it wont work... I managed to make it work once using a script i found that used potions to scale with lvl and adjusting with this one, but it was glitchy and only worked 50% of the time lol.

Any help is apreciated <3

Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)

local condition = Condition(CONDITION_REGENERATION)
condition:setParameter(CONDITION_PARAM_SUBID, 1)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 1 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_HEALTHGAIN)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 1000)
combat:addCondition(condition)

function onGetFormulaValues(player, level, maglevel)
    local min = (level / 5) + (maglevel * 18.5)
    local max = (level / 5) + (maglevel * 25)
    return min, max
end

function onCastSpell(creature, var)
    return combat:execute(creature, var)
end
 
Solution
maybe something like this?

Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)

local condition = Condition(CONDITION_REGENERATION)
condition:setParameter(CONDITION_PARAM_SUBID, 1)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 1 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 1000)

function onCastSpell(creature, var)
local player = creature:getPlayer()
    if player then
        local min = (player:getLevel() / 5) + (player:getMagicLevel() * 18.5)
        local max = (player:getLevel() / 5) + (player:getMagicLevel() * 25)...
maybe something like this?

Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)

local condition = Condition(CONDITION_REGENERATION)
condition:setParameter(CONDITION_PARAM_SUBID, 1)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 1 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 1000)

function onCastSpell(creature, var)
local player = creature:getPlayer()
    if player then
        local min = (player:getLevel() / 5) + (player:getMagicLevel() * 18.5)
        local max = (player:getLevel() / 5) + (player:getMagicLevel() * 25)
        condition:setParameter(CONDITION_PARAM_HEALTHGAIN, math.random(min, max))
        combat:addCondition(condition)
    end
    return combat:execute(creature, var)
end
 
maybe something like this?

Lua:
local combat = Combat()
combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_GREEN)
combat:setParameter(COMBAT_PARAM_AGGRESSIVE, 0)

local condition = Condition(CONDITION_REGENERATION)
condition:setParameter(CONDITION_PARAM_SUBID, 1)
condition:setParameter(CONDITION_PARAM_BUFF_SPELL, 1)
condition:setParameter(CONDITION_PARAM_TICKS, 1 * 60 * 1000)
condition:setParameter(CONDITION_PARAM_HEALTHTICKS, 1000)

function onCastSpell(creature, var)
local player = creature:getPlayer()
    if player then
        local min = (player:getLevel() / 5) + (player:getMagicLevel() * 18.5)
        local max = (player:getLevel() / 5) + (player:getMagicLevel() * 25)
        condition:setParameter(CONDITION_PARAM_HEALTHGAIN, math.random(min, max))
        combat:addCondition(condition)
    end
    return combat:execute(creature, var)
end

Holy friking s**t! It worked!! Thanks a lot mate!! <3
 
Solution
Back
Top