Ir para conteúdo

Featured Replies

Postado

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é :)

Resolvido por xWhiteWolf

Ir para solução
  • Respostas 18
  • Visualizações 1.3k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local arrowice = 7839 local arrowenergy = 7838 local arrowfire = 7840 local arrowearth = 7850 -- =============== COMBAT VARS =============== -- Areas/Combat for 100ms local combat1_Ice_Area_Hit

  • doPlayerRemoveItem(cid, arrowice, 1) repete essa linha antes de cada return true mudando somente o arrowice

Postado

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)

Postado
  • Autor

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)

Postado
  • 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)

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo