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

Spell formula problem.

Skylinx

Game Programmer
Joined
Nov 26, 2008
Messages
399
Reaction score
14
Location
TORONTO, CANADA
Hey. I've been using the SpellCreator available here on OTLand.
I'm not very familiar with coding spells, and for some reason one of my spells (using a magic level formula) heals the monster instead of doing damage.
I can't for the life of me figure out why. I've tried many different formulas based on the real tibia spells, still does the same thing.

Any help would be greatly appreciated

Here is the script:

Code:
-- SpellCreator generated.

-- =============== COMBAT VARS ===============
-- Areas/Combat for 200ms
local combat2_stonerain = createCombatObject()
setCombatParam(combat2_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat2_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat2_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat2_stonerain,createCombatArea({{2}}))
setCombatFormula(combat2_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat2_Brush,createCombatArea({{2, 0},
{0, 1}}))


-- Areas/Combat for 100ms
local combat1_stonerain = createCombatObject()
setCombatParam(combat1_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat1_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat1_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat1_stonerain,createCombatArea({{3}}))
setCombatFormula(combat1_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat1_Brush = createCombatObject()
setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat1_Brush,createCombatArea({{2}}))


-- Areas/Combat for 0ms
local combat0_stonerain = createCombatObject()
setCombatParam(combat0_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat0_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat0_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat0_stonerain,createCombatArea({{2}}))
setCombatFormula(combat0_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat0_Brush,createCombatArea({{3}}))


-- Areas/Combat for 400ms
local combat4_stonerain = createCombatObject()
setCombatParam(combat4_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat4_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat4_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat4_stonerain,createCombatArea({{1},
{2}}))
setCombatFormula(combat4_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat4_Brush,createCombatArea({{1, 2},
{0, 1}}))


-- Areas/Combat for 300ms
local combat3_stonerain = createCombatObject()
setCombatParam(combat3_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat3_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat3_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat3_stonerain,createCombatArea({{2, 0},
{0, 1}}))
setCombatFormula(combat3_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat3_Brush,createCombatArea({{1},
{2}}))


-- Areas/Combat for 500ms
local combat5_Brush = createCombatObject()
setCombatParam(combat5_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat5_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat5_Brush,createCombatArea({{0, 0, 1},
{0, 2, 0},
{1, 0, 0}}))
local combat5_stonerain = createCombatObject()
setCombatParam(combat5_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat5_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat5_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat5_stonerain,createCombatArea({{1, 2},
{0, 1}}))
setCombatFormula(combat5_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)

-- Areas/Combat for 600ms
local combat6_stonerain = createCombatObject()
setCombatParam(combat6_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat6_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat6_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat6_stonerain,createCombatArea({{0, 1},
{2, 0}}))
setCombatFormula(combat6_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat6_Brush = createCombatObject()
setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat6_Brush,createCombatArea({{1, 0, 0},
{0, 2, 1}}))


-- Areas/Combat for 700ms
local combat7_stonerain = createCombatObject()
setCombatParam(combat7_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat7_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat7_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat7_stonerain,createCombatArea({{1, 0, 0},
{0, 2, 1}}))
setCombatFormula(combat7_stonerain, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 10)local combat7_Brush = createCombatObject()
setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat7_Brush,createCombatArea({{2}}))


-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
	if (isCreature(cid)) then
		doCombat(cid, c, var)
		if (dirList ~= nil) then -- Emit distance effects
			local i = 2;
			while (i < #dirList) do
				doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
				i = i + 2
			end		
		end
	end
end

function onCastSpell(cid, var)
	local startPos = getCreaturePosition(cid)
	addEvent(RunPart,200,combat2_stonerain,cid,var)
	addEvent(RunPart,200,combat2_Brush,cid,var)
	addEvent(RunPart,100,combat1_stonerain,cid,var)
	addEvent(RunPart,100,combat1_Brush,cid,var)
	RunPart(combat0_stonerain,cid,var)
	RunPart(combat0_Brush,cid,var)
	addEvent(RunPart,400,combat4_stonerain,cid,var)
	addEvent(RunPart,400,combat4_Brush,cid,var)
	addEvent(RunPart,300,combat3_stonerain,cid,var)
	addEvent(RunPart,300,combat3_Brush,cid,var)
	addEvent(RunPart,500,combat5_Brush,cid,var)
	addEvent(RunPart,500,combat5_stonerain,cid,var)
	addEvent(RunPart,600,combat6_stonerain,cid,var)
	addEvent(RunPart,600,combat6_Brush,cid,var)
	addEvent(RunPart,700,combat7_stonerain,cid,var)
	addEvent(RunPart,700,combat7_Brush,cid,var)
	return true
end
 
Lua:
-- SpellCreator generated.


-- =============== COMBAT VARS ===============
-- Areas/Combat for 200ms
local combat2_stonerain = createCombatObject()
setCombatParam(combat2_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat2_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat2_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat2_stonerain,createCombatArea({{2}}))
setCombatFormula(combat2_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat2_Brush,createCombatArea({{2, 0},
{0, 1}}))




-- Areas/Combat for 100ms
local combat1_stonerain = createCombatObject()
setCombatParam(combat1_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat1_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat1_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat1_stonerain,createCombatArea({{3}}))
setCombatFormula(combat1_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat1_Brush = createCombatObject()
setCombatParam(combat1_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat1_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat1_Brush,createCombatArea({{2}}))




-- Areas/Combat for 0ms
local combat0_stonerain = createCombatObject()
setCombatParam(combat0_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat0_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat0_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat0_stonerain,createCombatArea({{2}}))
setCombatFormula(combat0_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat0_Brush,createCombatArea({{3}}))




-- Areas/Combat for 400ms
local combat4_stonerain = createCombatObject()
setCombatParam(combat4_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat4_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat4_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat4_stonerain,createCombatArea({{1},
{2}}))
setCombatFormula(combat4_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat4_Brush,createCombatArea({{1, 2},
{0, 1}}))




-- Areas/Combat for 300ms
local combat3_stonerain = createCombatObject()
setCombatParam(combat3_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat3_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat3_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat3_stonerain,createCombatArea({{2, 0},
{0, 1}}))
setCombatFormula(combat3_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat3_Brush,createCombatArea({{1},
{2}}))




-- Areas/Combat for 500ms
local combat5_Brush = createCombatObject()
setCombatParam(combat5_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat5_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat5_Brush,createCombatArea({{0, 0, 1},
{0, 2, 0},
{1, 0, 0}}))
local combat5_stonerain = createCombatObject()
setCombatParam(combat5_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat5_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat5_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat5_stonerain,createCombatArea({{1, 2},
{0, 1}}))
setCombatFormula(combat5_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)


-- Areas/Combat for 600ms
local combat6_stonerain = createCombatObject()
setCombatParam(combat6_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat6_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat6_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat6_stonerain,createCombatArea({{0, 1},
{2, 0}}))
setCombatFormula(combat6_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat6_Brush = createCombatObject()
setCombatParam(combat6_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat6_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat6_Brush,createCombatArea({{1, 0, 0},
{0, 2, 1}}))




-- Areas/Combat for 700ms
local combat7_stonerain = createCombatObject()
setCombatParam(combat7_stonerain, COMBAT_PARAM_EFFECT, CONST_ME_YALAHARIGHOST)
setCombatParam(combat7_stonerain, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatParam(combat7_stonerain, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatArea(combat7_stonerain,createCombatArea({{1, 0, 0},
{0, 2, 1}}))
setCombatFormula(combat7_stonerain, COMBAT_FORMULA_LEVELMAGIC, -5, -5, -5, -10)local combat7_Brush = createCombatObject()
setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_SMALLPLANTS)
setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_NONE)
setCombatArea(combat7_Brush,createCombatArea({{2}}))




-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos) -- Part
	if (isCreature(cid)) then
		doCombat(cid, c, var)
		if (dirList ~= nil) then -- Emit distance effects
			local i = 2;
			while (i < #dirList) do
				doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
				i = i + 2
			end		
		end
	end
end


function onCastSpell(cid, var)
	local startPos = getCreaturePosition(cid)
	addEvent(RunPart,200,combat2_stonerain,cid,var)
	addEvent(RunPart,200,combat2_Brush,cid,var)
	addEvent(RunPart,100,combat1_stonerain,cid,var)
	addEvent(RunPart,100,combat1_Brush,cid,var)
	RunPart(combat0_stonerain,cid,var)
	RunPart(combat0_Brush,cid,var)
	addEvent(RunPart,400,combat4_stonerain,cid,var)
	addEvent(RunPart,400,combat4_Brush,cid,var)
	addEvent(RunPart,300,combat3_stonerain,cid,var)
	addEvent(RunPart,300,combat3_Brush,cid,var)
	addEvent(RunPart,500,combat5_Brush,cid,var)
	addEvent(RunPart,500,combat5_stonerain,cid,var)
	addEvent(RunPart,600,combat6_stonerain,cid,var)
	addEvent(RunPart,600,combat6_Brush,cid,var)
	addEvent(RunPart,700,combat7_stonerain,cid,var)
	addEvent(RunPart,700,combat7_Brush,cid,var)
	return true
end
 
Back
Top