Ir para conteúdo

[Ajuda]Magia Edited


Baiakuda

Posts Recomendados

Tipo do script: Spells / lib

Protocolo (versão do Tibia): 8.54 à 8.57

Servidor utilizado: Styller Yurots

Nível de experiência: Alto

Adicionais/Informações: Bom como diz o titulo presiso de um scrip sobre uma magia editada, bom resumindo ... gostaria de pedir um script no qual fosse bem parecido com o "EXEVO GRAN MAS VIS" porem para paladins e no lugar das nuvens e dos raios gostaria que caisse varias SPEARS ENCANTADAS do alto, tem como ?

 

Agradeçido!

Editado por Baiakuda
Link para o comentário
Compartilhar em outros sites

  • 2 months later...

Tem sim, já faço uma edições aqui e te passo.

 

 

local combat = createCombatObject()

 

local meteor = createCombatObject()

setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(meteor, COMBAT_PARAM_EFFECT, CONST_ME_FIREAREA)

 

combat_arr = {

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1},

{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},

{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},

{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},

{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},

{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}

}

 

local combat_area = createCombatArea(combat_arr)

setCombatArea(combat, combat_area)

 

function getSpellDamage1(cid, lv)

local formula_min = -((lv*0.25 + maglv*3) * 5.0)

local formula_max = -((lv*0.25 + maglv*3) * 5.6)

 

if(formula_max < formula_min) then

local tmp = formula_max

formula_max = formula_min

formula_min = tmp

end

return formula_min, formula_max

end

 

setCombatCallback(meteor, CALLBACK_PARAM_SKILLVALUE, "getSpellDamage1")

 

 

local function meteorCast(p)

doCombat(p.cid, p.combat, positionToVariant(p.pos))

end

 

function onTargetTile(cid, pos)

if (math.random(0, 1) == 1) then

local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}

doSendDistanceShoot(newpos, pos, CONST_ANI_ENCHANTEDSPEAR)

addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})

end

end

end

 

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

 

O tipo de dano.

O efeito ao atingir alguém.

O efeito da "chuva".

 

Tá aí (não testei)

Mas acho que funciona, caso nao, poste aqui que verifico. (:

Editado por Diego00D
Link para o comentário
Compartilhar em outros sites

Deu um erro na spell do Diego, e o dano também está com erro. Editei a spell dele, se você quiser pode usar, eu não consegui resolver o problema do script do Diego porque não conheço de spell.

Créditos: Diego00D

 

Spells.XML

 

        <instant name="Tempestade de Spears" words="exevo gran mas con" lvl="35" mana="585" prem="0" blockwalls="1" exhaustion="2000" needlearn="0" script="attack/spearstorm.lua">
        <vocation id="3"/> - Paladin
         <vocation id="7"/> - Royal Paladin
 </instant>

 

Spearstorm.LUA

 

local combat = createCombatObject()

local meteor = createCombatObject()
setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
setCombatParam(meteor, COMBAT_PARAM_EFFECT, CONST_ME_BLOCKHIT)
setAttackFormula(combat, COMBAT_FORMULA_LEVELMAGIC, 5, 5, 5, 12)

combat_arr = {
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}
}

local combat_area = createCombatArea(combat_arr)
setCombatArea(combat, combat_area)

local function meteorCast(p)
doCombat(p.cid, p.combat, positionToVariant(p.pos))
end

function onTargetTile(cid, pos)
if (math.random(0, 1) == 1) then
local newpos = {x = pos.x - 7, y = pos.y - 6, z = pos.z}
doSendDistanceShoot(newpos, pos, CONST_ANI_ENCHANTEDSPEAR)
addEvent(meteorCast, 200, {cid = cid,pos = pos, combat = meteor})
end
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

function onCastSpell(cid, var)
return doCombat(cid, combat, var)
end

Editado por XxXHiagoXxX
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...