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

Wait function [lua]

Archez

'
Senator
Joined
Jun 26, 2008
Messages
6,589
Solutions
1
Reaction score
70
Location
Mexico
I was wondering if there is any function to pause the script for a few seconds.

Example:
Lua:
doCreatureSay(cid, 'Wait 1 second.', TALKTYPE_ORANGE_1)
superWaitFunction(1000)
doCreatureSay(cid, 'Ok!', TALKTYPE_ORANGE_1)

I already tried wait(), but it doesn't work. I don't even know if it's a valid function.
 
btw..shortened:
Lua:
local ME = {
    SUPER_KAMEHAMEHA_CENTER_EW, --1
    SUPER_KAMEHAMEHA_CENTER_NS, --2
    SUPER_KAMEHAMEHA_END_W, --3
    SUPER_KAMEHAMEHA_END_E, --4
    SUPER_KAMEHAMEHA_END_N, --5
    SUPER_KAMEHAMEHA_END_S, --6
    SUPER_KAMEHAMEHA_START_N, --7
    SUPER_KAMEHAMEHA_START_S, --8
    SUPER_KAMEHAMEHA_START_E, --9
    SUPER_KAMEHAMEHA_START_W --10
}

local combat = {}
for i = 1, 10 do
    combat[i] = createCombatObject()
    setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat[i], COMBAT_PARAM_EFFECT, ME[i])
    setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2.5, -30, -3.7, 0)
    setCombatArea(combat[i], createCombatArea(AREA_SPECIAL_BEAM_CANON_CENTER))
end
 
local dir = {
    [0] = {combat[7], combat[2], combat[5]}, --NORTH
    [1] = {combat[9], combat[1], combat[4]}, --EAST
    [2] = {combat[8], combat[2], combat[6]}, --SOUTH
    [3] = {combat[10], combat[1], combat[3]} --WEST
} 

function onCastSpell(cid, var) --N 0,S 2,E 1,W 3    
    local dir = dir[getCreatureLookDirection(cid)]
    for i = 1, 3 do
        addEvent(doCombat, 500*i, cid, dir[i], var)
        addEvent(doCreatureSay, 500*i, cid, i==1 and 'Super..' or i==2 and 'Cool..' or 'Spell!', TALKTYPE_ORANGE_1)
    end
    return true
end

But that won't work with north direction (i think), use i - 1 (for direction north = 0)
 
btw..shortened:
Lua:
local ME = {
    SUPER_KAMEHAMEHA_CENTER_EW, --1
    SUPER_KAMEHAMEHA_CENTER_NS, --2
    SUPER_KAMEHAMEHA_END_W, --3
    SUPER_KAMEHAMEHA_END_E, --4
    SUPER_KAMEHAMEHA_END_N, --5
    SUPER_KAMEHAMEHA_END_S, --6
    SUPER_KAMEHAMEHA_START_N, --7
    SUPER_KAMEHAMEHA_START_S, --8
    SUPER_KAMEHAMEHA_START_E, --9
    SUPER_KAMEHAMEHA_START_W --10
}

local combat = {}
for i = 1, 10 do
    combat[i] = createCombatObject()
    setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat[i], COMBAT_PARAM_EFFECT, ME[i])
    setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2.5, -30, -3.7, 0)
    setCombatArea(combat[i], createCombatArea(AREA_SPECIAL_BEAM_CANON_CENTER))
end
 
local dir = {
    [0] = {combat[7], combat[2], combat[5]}, --NORTH
    [1] = {combat[9], combat[1], combat[4]}, --EAST
    [2] = {combat[8], combat[2], combat[6]}, --SOUTH
    [3] = {combat[10], combat[1], combat[3]} --WEST
} 

function onCastSpell(cid, var) --N 0,S 2,E 1,W 3    
    local dir = dir[getCreatureLookDirection(cid)]
    for i = 1, 3 do
        addEvent(doCombat, 500*i, cid, dir[i], var)
        addEvent(doCreatureSay, 500*i, cid, i==1 and 'Super..' or i==2 and 'Cool..' or 'Spell!', TALKTYPE_ORANGE_1)
    end
    return true
end

http://armentaa.com/video3.avi
(no console errors)
 
But that won't work with north direction (i think), use i - 1 (for direction north = 0)
not rly, getCreatureLookDirection picks 0 if is north before the iterator begins, but maybe the iterator is picking a wrong magic effect xP
Lua:
addEvent(doCombat, 500*i, cid, dir[getCreatureLookDirection(cid)][i], var)
 
not rly, getCreatureLookDirection picks 0 if is north before the iterator begins, but maybe the iterator is picking a wrong magic effect xP
Lua:
addEvent(doCombat, 500*i, cid, dir[getCreatureLookDirection(cid)][i], var)

Code:
[11/02/2011 16:40:25] Lua Script Error: [Spell Interface] 
[11/02/2011 16:40:25] data/spells/scripts/superkamehameha.lua:onCastSpell

[11/02/2011 16:40:25] data/spells/scripts/superkamehameha.lua:33: attempt to index field '?' (a number value)
[11/02/2011 16:40:25] stack traceback:
[11/02/2011 16:40:25] 	data/spells/scripts/superkamehameha.lua:33: in function <data/spells/scripts/superkamehameha.lua:30>

(nothing happens when I cast the spell)

Lua:
local ME = {
    SUPER_KAMEHAMEHA_CENTER_EW, --1
    SUPER_KAMEHAMEHA_CENTER_NS, --2
    SUPER_KAMEHAMEHA_END_W, --3
    SUPER_KAMEHAMEHA_END_E, --4
    SUPER_KAMEHAMEHA_END_N, --5
    SUPER_KAMEHAMEHA_END_S, --6
    SUPER_KAMEHAMEHA_START_N, --7
    SUPER_KAMEHAMEHA_START_S, --8
    SUPER_KAMEHAMEHA_START_E, --9
    SUPER_KAMEHAMEHA_START_W --10
}
 
local combat = {}
for i = 1, 10 do
    combat[i] = createCombatObject()
    setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat[i], COMBAT_PARAM_EFFECT, ME[i])
    setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2.5, -30, -3.7, 0)
    setCombatArea(combat[i], createCombatArea(AREA_SPECIAL_BEAM_CANON_CENTER))
end
 
local dir = {
    [0] = {combat[7], combat[2], combat[5]}, --NORTH
    [1] = {combat[9], combat[1], combat[4]}, --EAST
    [2] = {combat[8], combat[2], combat[6]}, --SOUTH
    [3] = {combat[10], combat[1], combat[3]} --WEST
} 
 
function onCastSpell(cid, var) --N 0,S 2,E 1,W 3    
    local dir = dir[getCreatureLookDirection(cid)]
    for i = 1, 3 do
        addEvent(doCombat, 500*i, cid, dir[getCreatureLookDirection(cid)][i], var)
        addEvent(doCreatureSay, 500*i, cid, i==1 and 'Super..' or i==2 and 'Cool..' or 'Spell!', TALKTYPE_ORANGE_1)
    end
    return true
end
 
no xP, that should be like..
Lua:
local ME = {
    SUPER_KAMEHAMEHA_CENTER_EW, --1
    SUPER_KAMEHAMEHA_CENTER_NS, --2
    SUPER_KAMEHAMEHA_END_W, --3
    SUPER_KAMEHAMEHA_END_E, --4
    SUPER_KAMEHAMEHA_END_N, --5
    SUPER_KAMEHAMEHA_END_S, --6
    SUPER_KAMEHAMEHA_START_N, --7
    SUPER_KAMEHAMEHA_START_S, --8
    SUPER_KAMEHAMEHA_START_E, --9
    SUPER_KAMEHAMEHA_START_W --10
}

local combat = {}
for i = 1, 10 do
    combat[i] = createCombatObject()
    setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat[i], COMBAT_PARAM_EFFECT, ME[i])
    setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2.5, -30, -3.7, 0)
    setCombatArea(combat[i], createCombatArea(AREA_SPECIAL_BEAM_CANON_CENTER))
end
 
local dir = {
    [0] = {combat[7], combat[2], combat[5]}, --NORTH
    [1] = {combat[9], combat[1], combat[4]}, --EAST
    [2] = {combat[8], combat[2], combat[6]}, --SOUTH
    [3] = {combat[10], combat[1], combat[3]} --WEST
} 

function onCastSpell(cid, var) --N 0,S 2,E 1,W 3    
    for i = 1, 3 do
        addEvent(doCombat, 500*i, cid, dir[getCreatureLookDirection(cid)][i], var)
        addEvent(doCreatureSay, 500*i, cid, i==1 and 'Super..' or i==2 and 'Cool..' or 'Spell!', TALKTYPE_ORANGE_1)
    end
    return true
end
 
no xP, that should be like..
Lua:
local ME = {
    SUPER_KAMEHAMEHA_CENTER_EW, --1
    SUPER_KAMEHAMEHA_CENTER_NS, --2
    SUPER_KAMEHAMEHA_END_W, --3
    SUPER_KAMEHAMEHA_END_E, --4
    SUPER_KAMEHAMEHA_END_N, --5
    SUPER_KAMEHAMEHA_END_S, --6
    SUPER_KAMEHAMEHA_START_N, --7
    SUPER_KAMEHAMEHA_START_S, --8
    SUPER_KAMEHAMEHA_START_E, --9
    SUPER_KAMEHAMEHA_START_W --10
}

local combat = {}
for i = 1, 10 do
    combat[i] = createCombatObject()
    setCombatParam(combat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
    setCombatParam(combat[i], COMBAT_PARAM_EFFECT, ME[i])
    setCombatFormula(combat[i], COMBAT_FORMULA_LEVELMAGIC, -2.5, -30, -3.7, 0)
    setCombatArea(combat[i], createCombatArea(AREA_SPECIAL_BEAM_CANON_CENTER))
end
 
local dir = {
    [0] = {combat[7], combat[2], combat[5]}, --NORTH
    [1] = {combat[9], combat[1], combat[4]}, --EAST
    [2] = {combat[8], combat[2], combat[6]}, --SOUTH
    [3] = {combat[10], combat[1], combat[3]} --WEST
} 

function onCastSpell(cid, var) --N 0,S 2,E 1,W 3    
    for i = 1, 3 do
        addEvent(doCombat, 500*i, cid, dir[getCreatureLookDirection(cid)][i], var)
        addEvent(doCreatureSay, 500*i, cid, i==1 and 'Super..' or i==2 and 'Cool..' or 'Spell!', TALKTYPE_ORANGE_1)
    end
    return true
end

Oh, well. VIDEO3.avi explains this script. :p

Is this possible? (like, making this script)
 
Back
Top