• 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 Spell problem (exhauset)

Lukass1992

New Member
Joined
Jan 5, 2012
Messages
2
Reaction score
0
I made a healing spell and why i have not a exhauset on it?
Rep++ for help and big thanks! :thumbup:

Here it a spell's script
PHP:
local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combat1, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(combat1, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, 20.08, 0, 25.77, 0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, 0)

local combat3 = createCombatObject()
setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat3, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combat3, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, 0)

local combat4 = createCombatObject()
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combat4, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, 0)

local combat5 = createCombatObject()
setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat5, COMBAT_PARAM_EFFECT, 34)
setCombatParam(combat5, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatFormula(combat5, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, 0)

local combat6 = createCombatObject()
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 44)
setCombatParam(combat6, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, 0, 0, 0, 0)






arr1 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
  
arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
  
arr3 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
  
arr4 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}

arr5 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
}
  
arr6 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 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)

setCombatArea(combat1, area1)
setCombatArea(combat2, area2)
setCombatArea(combat3, area3)
setCombatArea(combat4, area4)
setCombatArea(combat5, area5)
setCombatArea(combat6, area6)
 
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 

 
function onCastSpell(cid, var) 
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6 } 
addEvent(onCastSpell1, 0, parameters) 
addEvent(onCastSpell2, 100, parameters) 
addEvent(onCastSpell3, 200, parameters) 
addEvent(onCastSpell4, 300, parameters) 
addEvent(onCastSpell5, 400, parameters)
addEvent(onCastSpell6, 600, parameters)
end


And spells.xml :
PHP:
	<instant name="Knight Huge Healing" words="exura knight max" lvl="1000" mana="1000" aggressive="0" selftarget="1" exhaustion="2500" needlearn="0" event="script" value="healing/knight huge healing.lua">
		<vocation id="12"/>
	</instant>
 
The solution is very simple, just add a return TRUE before the last "end", at onCastSpell function

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5, combat6 = combat6 }
addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 100, parameters)
addEvent(onCastSpell3, 200, parameters)
addEvent(onCastSpell4, 300, parameters)
addEvent(onCastSpell5, 400, parameters)
addEvent(onCastSpell6, 600, parameters)
return TRUE ------- Add this line
end



####### Edit:
I made a compact version, easier to make configuration and changes...
Only add/change area and formula table ^^
Feel free to use and change or ask something XD

LUA:
-- Now you only need to configure formulas and area :D 
local formulas = {       
{delay = 000, type = COMBAT_HEALING,  effect = 34, n = {20.08, 0, 25.77, 0}, paralyze = true, aggressive = false},
{delay = 100, type = COMBAT_HEALING,  effect = 34, n = {0, 0, 0, 0}        , paralyze = false, aggressive = false},
{delay = 100, type = COMBAT_HEALING,  effect = 34, n = {0, 0, 0, 0}        , paralyze = false, aggressive = false},
{delay = 100, type = COMBAT_HEALING,  effect = 34, n = {0, 0, 0, 0}        , paralyze = false, aggressive = false},
{delay = 100, type = COMBAT_HEALING,  effect = 34, n = {0, 0, 0, 0}        , paralyze = false, aggressive = false},
{delay = 200, type = COMBAT_HEALING,  effect = 44, n = {0, 0, 0, 0}        , paralyze = false, aggressive = false},
}

local arr = {
[1] = {{0, 0, 0},
       {0, 3, 0},
       {0, 0, 0}}, 

[2] = {{0, 1, 0},
       {0, 2, 0},
       {0, 1, 0}}, 

[3] = {{1, 0, 0},
       {0, 2, 0}, 
       {0, 0, 1}}, 

[4] = {{0, 0, 0},
       {1, 2, 1},
       {0, 0, 0}}, 

[5] = {{0, 0, 1}, 
       {0, 2, 0}, 
       {1, 0, 0}}, 
   
[6] = {{0, 1, 0}, 
       {1, 2, 1}, 
       {0, 1, 0}},
}
 
local comb = {}
  for i = 1, #formulas do
  comb[i] = createCombatObject() 
  setCombatParam(comb[i],   COMBAT_PARAM_TYPE,       formulas[i].type) 
  setCombatParam(comb[i],   COMBAT_PARAM_EFFECT,     formulas[i].effect) 
  setCombatParam(comb[i],   COMBAT_PARAM_AGGRESSIVE, formulas[i].aggressive)
    if formulas[i].paralyze then
      setCombatParam(comb[i],   COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
    end 
  setCombatFormula(comb[i], COMBAT_FORMULA_LEVELMAGIC, formulas[i].n[1], formulas[i].n[2], formulas[i].n[3], formulas[i].n[4])
  setCombatArea(comb[i], createCombatArea(arr[i]))
  end

local function castnow(cid, var, i)
  if i >= 1 and i <= #comb then
    doCombat(cid, comb[i], var)
  end
  if i < #comb then
    addEvent(castnow, formulas[i+1].delay, cid, var, i + 1)
  end
end 
  
function onCastSpell(cid, var)
castnow(cid, var, 0) 
return TRUE 
end
 
Last edited:
Back
Top