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

AddEvent

Fare

Advanced OT User
Joined
Apr 3, 2008
Messages
2,387
Reaction score
151
Location
Ukraine
hey guys, I can't understand how addEvent works, for example I trying to make spell:

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?
 
Try:
Code:
function spellCallbackExoriAura(cid, var)
To:
Code:
function spellCallbackExoriAura(cid, params)

And:
Code:
local parameters = {cid = params.cid, var = params.var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6, combat7 = combat7, combat8 = combat8}
 
Back
Top