Ir para conteúdo
  • Cadastre-se

Posts Recomendados

Bom galera, eu criei umas magias aqui usando um Spell Maker...

porem eu gostaria de algo mais complexo, algo que eu nem o spell maker conseguimos fazer kk :P

Segue a ideia:

 

35c0x2u.gif

Essas 4 são skills indivuduais, Respectivamente
Fire, Ice, Energy e Earth Arrow... são spells do arqueiro no meu servidor.
Eu estava usando elas como skills separadas : "Earth Arrow" por exemplo.

 

Porem eu estava pensando tornar tudo uma skill só :  "Element Arrow"

como ela funcionaria?

Segue a Ideia:

 

   Element Arrow :

Quando Usasse a magia, ela verificaria qual arrow eu estou equipado

e usaria a magia referente ao arrow q eu estou usando.

 

Se estou usando o ice arrow, usasse a skill de gelo... e assim por diante.

 

 

Obs: caso estivesse com arrows normais ou bolts, a skill não funcionasse. Se possivel exibir uma mensagem referente ao erro

Por exemplo : você não possui munição para Element Arrow.

Obs2:Se precisarem que eu post as magias só falar que eu coloco aqui no post ou no comentario as 4.

Valeu Galera, Inté :)

Link para o post
Compartilhar em outros sites

me passa todas as skills e já aviso: só vai funcionar se a arrow tiver no slot de arrow, ok?

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

me passa todas as skills e já aviso: só vai funcionar se a arrow tiver no slot de arrow, ok?

É 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.

 

 

Editado por Henriquegb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução
local arrowice = 7839
local arrowenergy = 7838
local arrowfire = 7840
local arrowearth = 7850






-- =============== 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)




-- =============== 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)




-- =============== 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)




-- =============== 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)
if isInArray({arrowice}, getPlayerSlotItem(cid, 10).itemid) then
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
elseif isInArray({arrowfire}, getPlayerSlotItem(cid, 10).itemid) then
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
elseif isInArray({arrowenergy}, getPlayerSlotItem(cid, 10).itemid) then
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
elseif isInArray({arrowearth}, getPlayerSlotItem(cid, 10).itemid) then
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
else
doSendMagicEffect(startPos, 2)
doPlayerSendCancel(cid, "You need to have elemental arrows on your ammunition slot.")
return false
end
end

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Perfeito mano, Muito obrigado.

Rep +

só uma coisa, como eu faço pra remover

1 arrow quando usar a skill?

só detalhe, se não tiver como, tudo certo.

obrigado.

Editado por Henriquegb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
doPlayerRemoveItem(cid, arrowice, 1)

repete essa linha antes de cada return true mudando somente o arrowice

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites
doPlayerRemoveItem(cid, arrowice, 1)

repete essa linha antes de cada return true mudando somente o arrowice

 

Perfeito, Muito Obrigado, Já foi reputado.

Completamente Funcional!!

Thanks :):):)

Link para o post
Compartilhar em outros sites

poderia dizer onde coloka esse script.

Cria um arquivo .lua na pasta SPELLS.

e copie o script maior nele.

 

Depois é só criar uma tag no Spells.xml

Eu uso essa:

</instant>
<instant name="Elemental Arrow" words="Elemental Arrow" lvl="25" mana="135" direction="1" exhaustion="2000" needlearn="0" script="Wakefier Spells/Elemental Arrow.lua">
<vocation name="Arqueiro"/>

Você precisa editar o Diretorio do arquivo .LUA, e a vocação.

Mana, level... conforme você quiser :)

 

Se eu tiver errado, favor me corrigir ^^

Obrigado

Editado por Henriquegb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

vc testou n o script ?

 

o arrow so funciona se tiver usando a flecha tal tipo fire q ta no script ?

 

eu testei desse jeito n funcionor.

Link para o post
Compartilhar em outros sites

vc testou n o script ?

 

o arrow so funciona se tiver usando a flecha tal tipo fire q ta no script ?

 

eu testei desse jeito n funcionor.

 

Tipo, eu testei aqui funcionou perfeito!

 

assim, se você não tiver nenhuma das 4 flechas encantadas

vai dar um erro falando que você não tem munição para esse ataque...

 

Porem se você tiver uma delas no slot do ARROW, a magia é efetuada com sucesso.

simples :)

Vlw

 

Qual a versão do seu distro?

talvez tenha alguma função incompativel.

 

Qual a versão do seu Ot?

Pode ser isso também :)

 

Aqui é TFS... 8.6

Editado por Henriquegb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Vc precisa editar isso para os ids das sua elementais arrows...

local arrowice = 7839

local arrowenergy = 7838

local arrowfire = 7840

local arrowearth = 7850

Vc precisa editar isso para os ids das sua elementais arrows...

local arrowice = 7839

local arrowenergy = 7838

local arrowfire = 7840

local arrowearth = 7850

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

Tipo, eu testei aqui funcionou perfeito!

 

assim, se você não tiver nenhuma das 4 flechas encantadas

vai dar um erro falando que você não tem munição para esse ataque...

 

Porem se você tiver uma delas no slot do ARROW, a magia é efetuada com sucesso.

simples :)

Vlw

 

Qual a versão do seu distro?

talvez tenha alguma função incompativel.

 

Qual a versão do seu Ot?

Pode ser isso também :)

 

Aqui é TFS... 8.6

a minha versão é tfs 0.4 ..8.6

 

eu so dei /i 7839

 

esse ai é o arrow de ice ai testei com qual quer bow.

Link para o post
Compartilhar em outros sites
<instant name="ElementalArrow" words="ElementalArrow" lvl="25" mana="95" direction="1" exhaustion="2000" needlearn="0" script="spells/elementalarrow.lua">
<vocation name="Royal Paladin"/>
</instant>

so q estou testadno com o good sera se é isso .

 

spells/elementalarrow.lua

ai criei uma pasta speels e dentro dela fiz uma aruivo lua que é esse (elementalarrow.lua)

Link para o post
Compartilhar em outros sites
<instant name="ElementalArrow" words="ElementalArrow" lvl="25" mana="95" direction="1" exhaustion="2000" needlearn="0" script="spells/elementalarrow.lua">
<vocation name="Royal Paladin"/>
</instant>

so q estou testadno com o good sera se é isso .

 

spells/elementalarrow.lua

ai criei uma pasta speels e dentro dela fiz uma aruivo lua que é esse (elementalarrow.lua)

 

 

Confira seu distro, e veja se tem alguma mensagem de erro.

Editado por Henriquegb (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo