• 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!
  • 2026 staff recruitment is open! Check it out and consider applying!

Lua Delay spells

Saferio

New Member
Joined
Jan 19, 2015
Messages
11
Reaction score
1
Hello, I created a spell which is made out of (UE, and 4 exoris(mort,vis,frigo,terra))

I wonder how can I change the execution section so it delays after each cast for example 200ms.

It works fine with executing all of them at once but you can only see dmg for the last 2 casted and it's kind of misleading and annoying and I want to change it.

Code:
--Mort strike
local combat1 = Combat()
combat1:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat1:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat1:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat1:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

--Energy strike
local combat2 = Combat()
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

--ICE strike
local combat3 = Combat()
combat3:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat3:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
combat3:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat3:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


--Terra strike
local combat4 = Combat()
combat4:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
combat4:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
combat4:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLEARTH)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat4:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

--Rage of the skies
local combat5 = Combat()
combat5:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat5:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)

local area = createCombatArea(AREA_CROSS6X6)
combat5:setArea(area)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 4) + 75)
    max = -((level / 5) + (maglevel * 10) + 150)
    return min, max
end

combat5:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


function onCastSpell(creature, var)
    combat5:execute(creature, var)
    combat1:execute(creature, var)
    combat2:execute(creature, var)
    combat3:execute(creature, var)
    combat4:execute(creature, var)
    return true
end
Code:
<instant group="attack" spellid="1000" name="Exori Element" words="exori element" lvl="200" mana="1500" prem="1" range="5" casterTargetOrDirection="1" blockwalls="1" exhaustion="20000" groupcooldown="2000" needlearn="0" script="exori_element.lua">
        <vocation name="Sorcerer"/>
        <vocation name="Master Sorcerer"/>
        <vocation name="Elder Druid"/>
        <vocation name="Druid"/>
    </instant>
 
Code:
--Mort strike
local combat1 = Combat()
combat1:setParameter(COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)
combat1:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MORTAREA)
combat1:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_DEATH)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat1:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

--Energy strike
local combat2 = Combat()
combat2:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat2:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)
combat2:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat2:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

--ICE strike
local combat3 = Combat()
combat3:setParameter(COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
combat3:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
combat3:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLICE)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat3:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


--Terra strike
local combat4 = Combat()
combat4:setParameter(COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
combat4:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
combat4:setParameter(COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLEARTH)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 1.4) + 8)
    max = -((level / 5) + (maglevel * 2.2) + 14)
    return min, max
end

combat4:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

--Rage of the skies
local combat5 = Combat()
combat5:setParameter(COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
combat5:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_BIGCLOUDS)

local area = createCombatArea(AREA_CROSS6X6)
combat5:setArea(area)

function onGetFormulaValues(player, level, maglevel)
    min = -((level / 5) + (maglevel * 4) + 75)
    max = -((level / 5) + (maglevel * 10) + 150)
    return min, max
end

combat5:setCallback(CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")


function onCastSpell(creature, var)
    addEvent(execute, 100, combat5, creature, var)
    addEvent(execute, 200, combat1, creature, var)
    addEvent(execute, 300, combat2, creature, var)
    addEvent(execute, 400, combat3, creature, var)
    addEvent(execute, 500, combat4, creature, var)
    return true
end
 
I tried this Addevent but it doesn't work.
Code:
Lua Script Error: [Spell Interface]
data/spells/scripts/book/exori_element.lua:onCastSpell
LuaScriptInterface::luaAddEvent(). callback parameter should be a function.
stack traceback:
        [C]: in function 'addEvent'
        data/spells/scripts/book/exori_element.lua:76: in function <data/spells/
scripts/book/exori_element.lua:75>

Lua Script Error: [Spell Interface]
data/spells/scripts/book/exori_element.lua:onCastSpell
LuaScriptInterface::luaAddEvent(). callback parameter should be a function.
stack traceback:
        [C]: in function 'addEvent'
        data/spells/scripts/book/exori_element.lua:77: in function <data/spells/
scripts/book/exori_element.lua:75>

Lua Script Error: [Spell Interface]
data/spells/scripts/book/exori_element.lua:onCastSpell
LuaScriptInterface::luaAddEvent(). callback parameter should be a function.
stack traceback:
        [C]: in function 'addEvent'
        data/spells/scripts/book/exori_element.lua:78: in function <data/spells/
scripts/book/exori_element.lua:75>

Lua Script Error: [Spell Interface]
data/spells/scripts/book/exori_element.lua:onCastSpell
LuaScriptInterface::luaAddEvent(). callback parameter should be a function.
stack traceback:
        [C]: in function 'addEvent'
        data/spells/scripts/book/exori_element.lua:79: in function <data/spells/
scripts/book/exori_element.lua:75>

Lua Script Error: [Spell Interface]
data/spells/scripts/book/exori_element.lua:onCastSpell
LuaScriptInterface::luaAddEvent(). callback parameter should be a function.
stack traceback:
        [C]: in function 'addEvent'
        data/spells/scripts/book/exori_element.lua:80: in function <data/spells/
scripts/book/exori_element.lua:75>
 
Back
Top