Postado Junho 30, 2014 10 anos 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 Segue a ideia: 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é
Postado Julho 1, 2014 10 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Julho 1, 2014 10 anos 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 Julho 1, 2014 10 anos por Henriquegb (veja o histórico de edições)
Postado Julho 2, 2014 10 anos 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Julho 2, 2014 10 anos Autor 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 Julho 2, 2014 10 anos por Henriquegb (veja o histórico de edições)
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.