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

Please fix this script (spell that attacks and heals)

Cornwallis

Member
Joined
Jan 3, 2010
Messages
480
Reaction score
16
Code:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, 

COMBAT_DEATHDAMAGE)

setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 32)

function 

onGetFormulaValues(cid, level, skill, attack, factor)
	return -(((skill + 25) / 0.2) + (level / 0.25)), -((skill + 25) + 

(level / 0.25))
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues")

setHealingFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 0.25, 0.26, 13, 15)function onCastSpell

(cid, var)
	return doCombat(cid, combat, var)
end


It does not show up as an error but it also doesn't heal so I'm confused.
 
Not tested :P
LUA:
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_NONE)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, 3)
setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -4, -4.5, -3.9, -4.7)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat2, COMBAT_PARAM_AGGRESSIVE, FALSE)
setCombatParam(combat2, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -4, -4.5, -3.9, -4.7)

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, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 2, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 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}
}
 
arr2 = {
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 2, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 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}
}


local area1 = createCombatArea(arr1)
local area2 = createCombatArea(arr2)
setCombatArea(combat1, area1)
setCombatArea(combat2, area2)

local function onCastSpell1(parameters)
	return doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters)
	return doCombat(parameters.cid, combat2, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
addEvent(onCastSpell1, 100, parameters)
addEvent(onCastSpell2, 500, parameters)
return doCombat(cid, combat, var)

end
 
Ok, so i'm guessing im really close here then but its just not working
Code:
local combat = createCombatObject()
setCombatParam
(combat, COMBAT_PARAM_TYPE, COMBAT_DEATHDAMAGE)


setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 32)

local combat1 = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, 

COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false)
setCombatParam(combat, 

COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)
setHealingFormula(combat, 

COMBAT_FORMULA_LEVELMAGIC, 0.4, 0.41, 5, 6)


function onGetFormulaValues(cid, level, skill, attack, factor)
	return -(((skill + 25) / 0.2) + (level / 0.25)), -

((skill + 25) + (level / 0.25))
end

setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, 

"onGetFormulaValues")


function onCastSpell(cid, var)
	return doCombat(cid, combat, var)
end
 
Not tested!

spells.xml
LUA:
<instant name="Sio attack" words="exori heal" lvl="245" mana="900" prem="1" range="4" needtarget="1" exhaustion="2000" blockwalls="1" script="healing/heal. atk.lua">     
		<vocation name="Elder Druid"/> 
      	</instant>

Heal atk.lua
LUA:
--Made by: Djivar--

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF)

local combat1 = createCombatObject()
setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_POFF)
setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatFormula(combat1, COMBAT_FORMULA_UNDEFINED, -1, -1.0, -1.0, -1.0)

local combat2 = createCombatObject()
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_POFF)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_POFF)
setCombatFormula(combat2, COMBAT_FORMULA_UNDEFINED, -1, -1.0, -1.0, -1.0)

local distanceCombat = createCombatObject()
setCombatParam(distanceCombat, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatParam(distanceCombat, COMBAT_PARAM_EFFECT, CONST_ME_NONE)
setCombatParam(distanceCombat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_NONE)

local distanceCombat3 = createCombatObject()
setCombatParam(distanceCombat3, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(distanceCombat3, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
setCombatParam(distanceCombat3, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL)
setCombatFormula(distanceCombat3, COMBAT_FORMULA_LEVELMAGIC, -0.8, -.9, -0.8, -1.0)

local distanceCombat4 = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE)
setCombatParam(distanceCombat4, COMBAT_PARAM_DISTANCEEFFECT, 32)
setCombatFormula(distanceCombat4, COMBAT_FORMULA_LEVELMAGIC, -0.8, -.9, -0.8, -1.0)

local function onCastSpell1(parameters)
	return doCombat(parameters.cid, combat1, parameters.var)
end

local function onCastSpell2(parameters)
	return doCombat(parameters.cid, combat2, parameters.var)
end

local function onCastSpell3(parameters)
	return doCombat(parameters.cid, distanceCombat3, parameters.var)
end

local function onCastSpell4(parameters)
	return doCombat(parameters.cid, distanceCombat4, parameters.var)
end

function onCastSpell(cid, var)
local parameters = { cid = cid, var = var}
	if(variantToNumber(var) ~= 0) then
	
	addEvent(onCastSpell3, 100, parameters)
	addEvent(onCastSpell4, 800, parameters)
		return doCombat(cid, distanceCombat, var)	
	end

addEvent(onCastSpell1, 1, parameters)
addEvent(onCastSpell2, 1, parameters) 
return doCombat(cid, combat, var)
end
 
Back
Top