• 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 spell formula

lucas mazzotti

New Member
Joined
Jul 10, 2014
Messages
9
Reaction score
1
hello guys, can someone help me with converting formula spells? heres the spell:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 9, 9, 14, 17)
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

all i wanna do is changing setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 9, 9, 14, 17)
for formula min, max
like this:
local min = -((level/5)+(maglevel*10))
local max = -((level/5)+(maglevel*20))

if you ask why, i have an ot and making some balancing stuff, its atual version but with old style damages, and lets say i have some trouble with that kind of formulas, anyways, thanks a lot

@up
 
Last edited by a moderator:
Here you are.
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)

function getCombatFormulas(cid, level, magicLevel)
    local min = -((level/5)+(magicLevel*10))    
    local max = -((level/5)+(magicLevel*20))

    if(max < min) then
        local tmp = max
        max = min
        min = tmp
    end
    return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end
 
Lua:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
local area = createCombatArea(AREA_CIRCLE3X3)
setCombatArea(combat, area)
function getCombatFormulas(cid, level, magicLevel)
    local min = -((level/5)+(magicLevel*10)) 
    local max = -((level/5)+(magicLevel*20))
     -- easier way
    return max < min and max, min or min, max
end
setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "getCombatFormulas")
function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
end
This formula will return an extra value but that extra value will be discarded
Lua:
return max < min and max, min or min, max
Code:
function v()
    a = -1
    b = -2
    return (b < a) and b, a or a, b
end
local min, max = v()

print(min, max)
-- prints -2    -1
Of course if the b is greater than a then it will return false and a, so maybe your way is better :)
Code:
function v()
    a = -3
    b = -1
    return b < a and b, a or a, b
end
local min, max = v()

print(min, max)
-- prints     false     -3
 
Last edited:
Back
Top