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

Simple spell but - SPECIFIC ORDER EVERY TIME-

Exiled Pain

Fervid Learner
Joined
Jan 8, 2008
Messages
552
Reaction score
4
Hi, I have a special request, I know it may sound noobish or senseless but is what is need. I been trying to make a spell that works a specific way and haven't been able to do it. The spell must apear in the monsters location (not the caster) and it has to be in the exact same order no mater where its cast from, and it must use MAGIC EFFECT not SHOOT EFECT.

it has to be horizontal in this order:

x-x-M-x

(F-I-E-P)
(Fire-Ice-Energy-Poison)

The M meants the monster position.
The closes I've been to have that order an placement is by casting it from one side of screen(lets say from the left part of the screen) but as soon as I cast the spell from the right side of the screen it shifts the spell order backwards...

I know it may sounds ilogical o just a stubborn request, but I really need this, in that exact order every time. Please help me out, I'll rep++ anyone who solves this.

Thanks in advance
 
im not sure you mean this but try it
local combat2 = createCombatObject(arr1)
setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combat2, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local arr2 = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 2, 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 combatDist2 = createCombatObject()
setCombatParam(combatDist2, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatParam(combatDist2, COMBAT_PARAM_EFFECT, 6)
setCombatFormula(combatDist2, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local arr2 = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 1, 0, 2, 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 combat4 = createCombatObject(arr3)
setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combat4, COMBAT_PARAM_EFFECT, 41)
setCombatFormula(combat4, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local arr4 = {
{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, 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 combatDist4 = createCombatObject()
setCombatParam(combatDist4, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatParam(combatDist4, COMBAT_PARAM_EFFECT, 41)
setCombatFormula(combatDist4, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local arr4 = {
{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, 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 combat6 = createCombatObject(arr6)
setCombatParam(combat6, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combat6, COMBAT_PARAM_EFFECT, 37)
setCombatFormula(combat6, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local 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, 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}
}


local combatDist6 = createCombatObject()
setCombatParam(combatDist6, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatParam(combatDist6, COMBAT_PARAM_EFFECT, 37)
setCombatParam(combatDist6, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)
setCombatFormula(combatDist6, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local 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, 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}
}

local combat8 = createCombatObject(arr8)
setCombatParam(combat8, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combat8, COMBAT_PARAM_EFFECT, 20)
setCombatFormula(combat8, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local arr8 = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 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}
}


local combatDist8 = createCombatObject()
setCombatParam(combatDist8, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE)
setCombatParam(combatDist8, COMBAT_PARAM_EFFECT, 20)
setCombatFormula(combatDist8, COMBAT_FORMULA_LEVELMAGIC, -0.5, -3, -0.9, 0)

local arr8 = {
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 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}
}


local area2 = createCombatArea(arr2)
local area4 = createCombatArea(arr4)
local area6 = createCombatArea(arr6)
local area8 = createCombatArea(arr8)


setCombatArea(combatDist2, area2)
setCombatArea(combatDist4, area4)
setCombatArea(combatDist6, area6)
setCombatArea(combatDist8, area8)


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

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

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

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


function onCastSpell(cid, var)
local parameters = { cid = cid, var = var, combatDist2 = combatDist2, combatDist4 = combatDist4, combatDist6 = combatDist6, combatDist8 = combatDist8 }
local target = getCreatureTarget(cid)
if(target ~= 0) then

addEvent(onCastSpell1, 0, parameters)
addEvent(onCastSpell2, 0, parameters)
addEvent(onCastSpell5, 0, parameters)
addEvent(onCastSpell4, 0, parameters)
addEvent(onCastSpell3, 0, parameters)


end
end
 
nop, actually that is the same script I was using, and when you change from one side of the screen to another it flips the order. Thanks anyway
 
Back
Top