local combat1sqm = Combat()
combat1sqm:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
function onGetFormulaValues(player, level, magicLevel)
local min = (level / 5) + (magicLevel * 1.5) + 5
local max = (level / 7) + (magicLevel * 2.0) + 10
return -min, -max
end
combat1sqm:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat2sqm = Combat()
combat2sqm:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
function onGetFormulaValues(player, level, magicLevel)
local min = (level / 7) + (magicLevel * 2.5) + 10
local max = (level / 9) + (magicLevel * 3.0) + 15
return -min, -max
end
combat2sqm:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
local combat3sqm = Combat()
combat3sqm:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
function onGetFormulaValues(player, level, magicLevel)
local min = (level / 9) + (magicLevel * 3.5) + 50
local max = (level / 11) + (magicLevel * 4.0) + 100
return -min, -max
end
combat3sqm:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")
function onCastSpell(creature, variant)
local target_pos = creature:getTarget():getPosition() creature:getPosition():sendDistanceEffect(target_pos, 32)
local timing = getDistanceBetween(creature:getPosition(), creature:getTarget():getPosition()) * 70
local sqms = getDistanceBetween(creature:getPosition(), creature:getTarget():getPosition())
if sqms == 1 then
addEvent(function() return combat1sqm:execute(creature, variant) end, timing, cid, variant)
end
if sqms == 2 then
addEvent(function() return combat2sqm:execute(creature, variant) end, timing, cid, variant)
end
if sqms >= 3 then
addEvent(function() return combat3sqm:execute(creature, variant) end, timing, cid, variant)
end
end