Bom, utilizei o Spell Creator para fazer este, vá em data/spells/scripts, crie um arquivo chamado flame_hur.lua e adicione dentro:
local combat0_Brush = createCombatObject()
setCombatParam(combat0_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat0_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatParam(combat0_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat0_Brush,createCombatArea({{1, 3, 1},
{1, 1, 1},
{1, 1, 1}}))
function getDmg_Brush(cid, level, maglevel)
return (550)*-1,(2500)*-1
end
setCombatCallback(combat0_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
local dfcombat0_Brush = {CONST_ANI_REDSTAR,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,0,0}
-- Areas/Combat for 200ms
local combat2_Brush = createCombatObject()
setCombatParam(combat2_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat2_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatParam(combat2_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat2_Brush,createCombatArea({{1, 0, 0, 0, 1},
{0, 1, 3, 1, 0},
{0, 1, 1, 1, 0},
{0, 1, 1, 1, 0},
{1, 0, 0, 0, 1}}))
function getDmg_Brush(cid, level, maglevel)
return (550)*-1,(2500)*-1
end
setCombatCallback(combat2_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
local dfcombat2_Brush = {CONST_ANI_REDSTAR,-2,2,2,2,2,-2,-2,-2,1,-1,0,-1,-1,-1,-1,0,0,0,1,0,1,1,0,1,-1,1}
-- Areas/Combat for 400ms
local combat4_Brush = createCombatObject()
setCombatParam(combat4_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat4_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatParam(combat4_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat4_Brush,createCombatArea({{0, 0, 1, 0, 0},
{0, 1, 3, 1, 0},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
return (550)*-1,(2500)*-1
end
setCombatCallback(combat4_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
local dfcombat4_Brush = {CONST_ANI_REDSTAR,0,2,0,-2,-2,0,2,0,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,0,0,1,0,1,-1}
-- Areas/Combat for 700ms
local combat7_Brush = createCombatObject()
setCombatParam(combat7_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat7_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatParam(combat7_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat7_Brush,createCombatArea({{1, 3, 1},
{1, 1, 1},
{1, 1, 1}}))
function getDmg_Brush(cid, level, maglevel)
return (550)*-1,(2500)*-1
end
setCombatCallback(combat7_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
local dfcombat7_Brush = {CONST_ANI_REDSTAR,1,1,0,1,-1,1,-1,0,-1,-1,0,-1,1,-1,1,0,0,0}
-- Areas/Combat for 1000ms
local combat10_Brush = createCombatObject()
setCombatParam(combat10_Brush, COMBAT_PARAM_EFFECT, CONST_ME_FIREATTACK)
setCombatParam(combat10_Brush, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_BURSTARROW)
setCombatParam(combat10_Brush, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatArea(combat10_Brush,createCombatArea({{0, 0, 1, 0, 0},
{0, 1, 3, 1, 0},
{1, 1, 1, 1, 1},
{0, 1, 1, 1, 0},
{0, 0, 1, 0, 0}}))
function getDmg_Brush(cid, level, maglevel)
return (550)*-1,(2500)*-1
end
setCombatCallback(combat10_Brush, CALLBACK_PARAM_LEVELMAGICVALUE, "getDmg_Brush")
local dfcombat10_Brush = {CONST_ANI_REDSTAR,0,2,0,1,0,0,0,-1,0,-2,-1,-1,-1,0,-2,0,-1,1,1,1,1,0,1,-1,2,0}
-- =============== 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)
RunPart(combat0_Brush,cid,var,dfcombat0_Brush,startPos,startDir)
addEvent(RunPart,200,combat2_Brush,cid,var,dfcombat2_Brush,startPos,startDir)
addEvent(RunPart,400,combat4_Brush,cid,var,dfcombat4_Brush,startPos,startDir)
addEvent(RunPart,700,combat7_Brush,cid,var,dfcombat7_Brush,startPos,startDir)
addEvent(RunPart,1000,combat10_Brush,cid,var,dfcombat10_Brush,startPos,startDir)
return true
end
Em spells.xml adicione essa tag:
<instant name="Flame Striker" words="start flame hur" lvl="50" maglv="3" mana="215" exhaustion="120000" prem="1" needlearn="0" casterTargetOrDirection="1" blockwalls="0" aggressive="1" event="script" value="flame_hur.lua"> <vocation id="3"/> <vocation id="4"/> <vocation id="7"/> <vocation id="8"/> </instant>




info
Grupo: Campones
Registrado: 19/04/13
Posts: 2
Reputação: 0
Char no Tibia: Bang Bross
Bom dia,
Gostaria de uma Script de magia, estilo Exori hur.
Mais que o nome fosse Star Flame Hur, no qual o dano inicial dela seria 550
teria 5 turnos de dano ainda com 150.
Obs: o delay desta magia seria de 02 minutos.
Obs: O dano dela seria por Distance
Versão: 9.83
desde já agradeço
Atenciosamente.