Ir para conteúdo
  • 0

Spell Meteor


Snowsz

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0

Adicione em spells.xml:

<instant name="meteor" words="meteor" lvl="8" mana="10" prem="1" range="6" casterTargetOrDirection="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="meteor.lua">

<vocation id="4"/>

<vocation id="8"/>

</instant>

Editando:

 

​-Vermelho: Variáveis (tiver duvida em alguma me fala)

 

Agora crie um arquivo.lua em data/spells/scripts nomeie para meteor e adicione:

local combat = createCombatObject()

 

local meteor = createCombatObject()

setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(meteor, COMBAT_PARAM_EFFECT, 15)

setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -0, -0, -0, -0)

setCombatParam(meteor, COMBAT_PARAM_CREATEITEM, 1492)

 

local meteor_water = createCombatObject()

setCombatParam(meteor_water, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(meteor_water, COMBAT_PARAM_EFFECT, 15)

setCombatFormula(meteor_water, COMBAT_FORMULA_LEVELMAGIC, -0, -0, -0, -0)

 

combat_arr = {

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

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

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

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

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

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

{0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0},

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

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

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

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

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

{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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

 

local function stunEffect(cid)

doSendMagicEffect(getThingPos(cid), CONST_ME_STUN)

end

 

function onTargetTile(cid, pos)

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

local ground = getThingfromPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0})

if (isInArray(water, ground.itemid) == TRUE) then

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

doSendDistanceShoot(newpos, pos, 3)

addEvent(meteorCast, 6000, {cid = cid, pos = pos, combat = meteor_water})

else

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

doSendDistanceShoot(newpos, pos, 3)

addEvent(meteorCast, 600, {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

Editando:

 

-Vermelho: Efeito (/z)

-Verde: Id do item a ser criado

-Laranja: 1 para aparecer mais um, 0 para cancelar (Se não entender pergunte)

-Marrom: Efeito (/x)

 

Imagem:

meteor2.png

-------------------------------------------------------------------------------------------------------------------

meteor1f.png

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

×
×
  • Criar Novo...