hey guys, I can't understand how addEvent works, for example I trying to make spell:
and got this error:
can anybody explain how addEvent works?
PHP:
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_UNDEFINEDDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_LIFEDRAIN)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat7 = createCombatObject()
setCombatParam(combat7, COMBAT_PARAM_TYPE, COMBAT_DROWNDAMAGE)
setCombatParam(combat7, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat7, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
local combat8 = createCombatObject()
setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat8, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
setCombatFormula(combat8, COMBAT_FORMULA_LEVELMAGIC, -0.6, -30, -1.2, 0)
arr1 = {
{0, 0, 0},
{0, 2, 0},
{0, 0, 1},
}
arr2 = {
{0, 0, 0},
{0, 2, 0},
{0, 1, 0},
}
arr3 = {
{0, 0, 0},
{0, 2, 0},
{1, 0, 0},
}
arr4 = {
{0, 0, 0},
{1, 2, 0},
{0, 0, 0},
}
arr5 = {
{1, 0, 0},
{0, 2, 0},
{0, 0, 0},
}
arr6 = {
{0, 1, 0},
{0, 2, 0},
{0, 0, 0},
}
arr7 = {
{0, 0, 1},
{0, 2, 0},
{0, 0, 0},
}
arr8 = {
{0, 0, 0},
{0, 2, 1},
{0, 0, 0},
}
local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
local area3 = createCombatArea(arr3)
local area4 = createCombatArea(arr4)
local area5 = createCombatArea(arr5)
local area6 = createCombatArea(arr6)
local area7 = createCombatArea(arr7)
local area8 = createCombatArea(arr8)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)
setCombatArea(combat7, area7)
setCombatArea(combat8, area8)
local function onCastSpell1(parameters)
doCombat(parameters.cid, parameters.combat1, parameters.var)
end
local function onCastSpell2(parameters)
doCombat(parameters.cid, parameters.combat2, parameters.var)
end
local function onCastSpell3(parameters)
doCombat(parameters.cid, parameters.combat3, parameters.var)
end
local function onCastSpell4(parameters)
doCombat(parameters.cid, parameters.combat4, parameters.var)
end
local function onCastSpell5(parameters)
doCombat(parameters.cid, parameters.combat5, parameters.var)
end
local function onCastSpell6(parameters)
doCombat(parameters.cid, parameters.combat6, parameters.var)
end
local function onCastSpell7(parameters)
doCombat(parameters.cid, parameters.combat7, parameters.var)
end
local function onCastSpell8(parameters)
doCombat(parameters.cid, parameters.combat8, parameters.var)
end
function spellCallbackExoriAura(cid, var)
local param = 0
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7, combat8 = combat8 }
addEvent(onCastSpell1, 1, parameters)
addEvent(onCastSpell2, 700, parameters)
addEvent(onCastSpell3, 200, parameters)
addEvent(onCastSpell4, 300, parameters)
addEvent(onCastSpell5, 600, parameters)
addEvent(onCastSpell6, 500, parameters)
addEvent(onCastSpell7, 100, parameters)
addEvent(onCastSpell8, 400, parameters)
end
function onCastSpell(cid, var)
local parameters = { cid = cid, var = var }
addEvent(spellCallbackExoriAura, 2000, parameters)
end
and got this error:
Code:
19/07/2008 13:44:43] Lua Script Error: [Spell Interface]
[19/07/2008 13:44:43] in a timer event called from:
[19/07/2008 13:44:43] data/spells/scripts/custom/exoriaura.lua:onCastSpell
[19/07/2008 13:44:43] attempt to index a nil value
[19/07/2008 13:44:43] stack traceback:
[19/07/2008 13:44:43] [C]: in function 'doCombat'
[19/07/2008 13:44:43] data/spells/scripts/custom/exoriaura.lua:114: in function <data/spells/scripts/custom/exoriaura.lua:113>
can anybody explain how addEvent works?