É exatamente essa a ideia
bom, vamos la
Earth Arrow
-- SpellCreator generated.
-- =============== COMBAT VARS ===============
-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{0, 1, 0},
{1, 1, 1},
{1, 0, 1},
{0, 2, 0}}))
setCombatFormula(combat2_Brush, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 0ms
local combat0_Earth_Arrow = createCombatObject()
setCombatParam(combat0_Earth_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTHARROW)
setCombatParam(combat0_Earth_Arrow, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat0_Earth_Arrow,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
setCombatFormula(combat0_Earth_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
local dfcombat0_Earth_Arrow = {CONST_ANI_EARTHARROW,0,5}local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{0, 1, 0},
{1, 2, 1}}))
setCombatFormula(combat0_Brush, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 300ms
local combat3_Brush = createCombatObject()
setCombatParam(combat3_Brush, COMBAT_PARAM_EFFECT, CONST_ME_CARNIPHILA)
setCombatParam(combat3_Brush, COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
setCombatArea(combat3_Brush,createCombatArea({{1, 1, 1},
{1, 0, 1},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0}}))
setCombatFormula(combat3_Brush, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
if (startDir == 0) then -- N
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 2) then -- S
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 1) then -- E
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
else -- W / Something weird happened
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
end
i = i + 2
end
end
end
end
function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
local startDir = getCreatureLookDirection(cid)
addEvent(RunPart,200,combat2_Brush,cid,var)
RunPart(combat0_Earth_Arrow,cid,var,dfcombat0_Earth_Arrow,startPos,startDir)
RunPart(combat0_Brush,cid,var)
addEvent(RunPart,300,combat3_Brush,cid,var)
return true
end
Energy Arrow
-- SpellCreator generated.
-- =============== COMBAT VARS ===============
-- Areas/Combat for 200ms
local combat2_Lightning_Area_Hit = createCombatObject()
setCombatParam(combat2_Lightning_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
setCombatParam(combat2_Lightning_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatArea(combat2_Lightning_Area_Hit,createCombatArea({{0, 1, 0},
{1, 1, 1},
{1, 0, 1},
{0, 2, 0}}))
setCombatFormula(combat2_Lightning_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 100ms
local combat1_Lightning_Area_Hit = createCombatObject()
setCombatParam(combat1_Lightning_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
setCombatParam(combat1_Lightning_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatArea(combat1_Lightning_Area_Hit,createCombatArea({{0, 1, 0},
{1, 2, 1}}))
setCombatFormula(combat1_Lightning_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 0ms
local combat0_Lightning_Arrow = createCombatObject()
setCombatParam(combat0_Lightning_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLASHARROW)
setCombatParam(combat0_Lightning_Arrow, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatArea(combat0_Lightning_Arrow,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
setCombatFormula(combat0_Lightning_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
local dfcombat0_Lightning_Arrow = {CONST_ANI_FLASHARROW,0,5}
-- Areas/Combat for 300ms
local combat3_Lightning_Area_Hit = createCombatObject()
setCombatParam(combat3_Lightning_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYHIT)
setCombatParam(combat3_Lightning_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
setCombatArea(combat3_Lightning_Area_Hit,createCombatArea({{1, 1, 1},
{1, 0, 1},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0}}))
setCombatFormula(combat3_Lightning_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
if (startDir == 0) then -- N
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 2) then -- S
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 1) then -- E
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
else -- W / Something weird happened
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
end
i = i + 2
end
end
end
end
function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
local startDir = getCreatureLookDirection(cid)
addEvent(RunPart,200,combat2_Lightning_Area_Hit,cid,var)
addEvent(RunPart,100,combat1_Lightning_Area_Hit,cid,var)
RunPart(combat0_Lightning_Arrow,cid,var,dfcombat0_Lightning_Arrow,startPos,startDir)
addEvent(RunPart,300,combat3_Lightning_Area_Hit,cid,var)
return true
end
Fire Arrow
-- SpellCreator generated.
-- =============== COMBAT VARS ===============
-- Areas/Combat for 200ms
local combat2_Fire_Area = createCombatObject()
setCombatParam(combat2_Fire_Area, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat2_Fire_Area, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat2_Fire_Area,createCombatArea({{0, 1, 0},
{1, 1, 1},
{1, 0, 1},
{0, 2, 0}}))
setCombatFormula(combat2_Fire_Area, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 100ms
local combat1_Fire_Area = createCombatObject()
setCombatParam(combat1_Fire_Area, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat1_Fire_Area, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat1_Fire_Area,createCombatArea({{0, 1, 0},
{1, 2, 1}}))
setCombatFormula(combat1_Fire_Area, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 0ms
local combat0_Fire_Arrow = createCombatObject()
setCombatParam(combat0_Fire_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_FLAMMINGARROW)
setCombatParam(combat0_Fire_Arrow, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat0_Fire_Arrow,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
setCombatFormula(combat0_Fire_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
local dfcombat0_Fire_Arrow = {CONST_ANI_FLAMMINGARROW,0,5}
-- Areas/Combat for 300ms
local combat3_Fire_Area = createCombatObject()
setCombatParam(combat3_Fire_Area, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat3_Fire_Area, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE)
setCombatArea(combat3_Fire_Area,createCombatArea({{1, 1, 1},
{1, 0, 1},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0}}))
setCombatFormula(combat3_Fire_Area, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
if (startDir == 0) then -- N
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 2) then -- S
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 1) then -- E
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
else -- W / Something weird happened
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
end
i = i + 2
end
end
end
end
function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
local startDir = getCreatureLookDirection(cid)
addEvent(RunPart,200,combat2_Fire_Area,cid,var)
addEvent(RunPart,100,combat1_Fire_Area,cid,var)
RunPart(combat0_Fire_Arrow,cid,var,dfcombat0_Fire_Arrow,startPos,startDir)
addEvent(RunPart,300,combat3_Fire_Area,cid,var)
return true
end
Ice Arrow
-- SpellCreator generated.
-- =============== COMBAT VARS ===============
-- Areas/Combat for 100ms
local combat1_Ice_Area_Hit = createCombatObject()
setCombatParam(combat1_Ice_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat1_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatArea(combat1_Ice_Area_Hit,createCombatArea({{0, 1, 0},
{1, 2, 1}}))
setCombatFormula(combat1_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 0ms
local combat0_Ice_Arrow = createCombatObject()
setCombatParam(combat0_Ice_Arrow, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SHIVERARROW)
setCombatParam(combat0_Ice_Arrow, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatArea(combat0_Ice_Arrow,createCombatArea({{1},
{0},
{0},
{0},
{2}}))
setCombatFormula(combat0_Ice_Arrow, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
local dfcombat0_Ice_Arrow = {CONST_ANI_SHIVERARROW,0,5}
-- Areas/Combat for 200ms
local combat2_Ice_Area_Hit = createCombatObject()
setCombatParam(combat2_Ice_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat2_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatArea(combat2_Ice_Area_Hit,createCombatArea({{0, 1, 0},
{1, 1, 1},
{1, 0, 1},
{0, 2, 0}}))
setCombatFormula(combat2_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- Areas/Combat for 300ms
local combat3_Ice_Area_Hit = createCombatObject()
setCombatParam(combat3_Ice_Area_Hit, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat3_Ice_Area_Hit, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
setCombatArea(combat3_Ice_Area_Hit,createCombatArea({{1, 1, 1},
{1, 0, 1},
{0, 0, 0},
{0, 0, 0},
{0, 2, 0}}))
setCombatFormula(combat3_Ice_Area_Hit, COMBAT_FORMULA_LEVELMAGIC, -2, 60, -2, 60)
-- =============== CORE FUNCTIONS ===============
local function RunPart(c,cid,var,dirList,dirEmitPos,startDir) -- Part
if (isCreature(cid)) then
doCombat(cid, c, var)
if (dirList ~= nil) then -- Emit distance effects
local i = 2;
while (i < #dirList) do
if (startDir == 0) then -- N
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i],y=dirEmitPos.y-dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 2) then -- S
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i],y=dirEmitPos.y+dirList[i+1],z=dirEmitPos.z},dirList[1])
elseif (startDir == 1) then -- E
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x+dirList[i+1],y=dirEmitPos.y+dirList[i],z=dirEmitPos.z},dirList[1])
else -- W / Something weird happened
doSendDistanceShoot(dirEmitPos,{x=dirEmitPos.x-dirList[i+1],y=dirEmitPos.y-dirList[i],z=dirEmitPos.z},dirList[1])
end
i = i + 2
end
end
end
end
function onCastSpell(cid, var)
local startPos = getCreaturePosition(cid)
local startDir = getCreatureLookDirection(cid)
addEvent(RunPart,100,combat1_Ice_Area_Hit,cid,var)
RunPart(combat0_Ice_Arrow,cid,var,dfcombat0_Ice_Arrow,startPos,startDir)
addEvent(RunPart,200,combat2_Ice_Area_Hit,cid,var)
addEvent(RunPart,300,combat3_Ice_Area_Hit,cid,var)
return true
end
Não sei se muda algo, mas foram todas feitas em um spell maker, como eu disse no topico
Brigadão maninho.