Ir para conteúdo

[spell] Dúvida Na Execução Da Magia


ldoidin

Posts Recomendados

Bem, eu peguei a magia Apocalypse, que vem no Slayer Yurots e dupliquei, mudei a área dos efeitos e o tipo de dano e animação, vou mostrar.

 

A original (Apocalypse):

local combat = createCombatObject()

arr = {
{0, 0, 0, 0, 0, 1, 0, 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},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{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, 0, 1, 0, 0, 0, 0, 0},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function spellCallback(param)
if param.count > 0 or math.random(0, 1) == 

1 then
	doSendMagicEffect(param.pos, 

CONST_ME_HITBYFIRE)


doAreaCombatHealth(param.cid, 

COMBAT_FIREDAMAGE, param.pos, 0, -100, -100, 

CONST_ME_EXPLOSIONHIT)
end

if(param.count < 5) then
	param.count = param.count + 1
	addEvent(spellCallback, 

math.random(1000, 4000), param)
end
end

function onTargetTile(cid, pos)
local param = {}
param.cid = cid
param.pos = pos
param.count = 0
spellCallback(param)
end

setCombatCallback(combat, 

CALLBACK_PARAM_TARGETTILE, "onTargetTile")

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

 

E a outra a única coisa que alterei foi aquilo citado acima, olhem:

 

local combat = createCombatObject()

arr = {
{0, 0, 0, 0, 0, 1, 0, 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},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{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, 0, 1, 0, 0, 0, 0, 0},
}

local area = createCombatArea(arr)
setCombatArea(combat, area)

function spellCallback(param)
if param.count > 0 or math.random(0, 1) == 1 then
	doSendMagicEffect(param.pos, CONST_ME_GIANTICE)
	doAreaCombatHealth(param.cid, COMBAT_ICEDAMAGE, param.pos, 0, -100, -100, CONST_ME_ICEAREA)
end

if(param.count < 5) then
	param.count = param.count + 1
	addEvent(spellCallback, math.random(1000, 4000), param)
end
end

function onTargetTile(cid, pos)
local param = {}
param.cid = cid
param.pos = pos
param.count = 0
spellCallback(param)
end

setCombatCallback(combat, CALLBACK_PARAM_TARGETTILE, "onTargetTile")

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

 

E deixei assim no spells.xml:

<instant name="Ice Time" words="exevo gran mas gelidus" lvl="100" mana="1000" prem="1" selftarget="1" exhaustion="1200" aggressive="1" script="attack/icerage.lua">
<vocation name="Elder Druid"/>
</instant>
<instant name="Fire Strike" words="exevo gran mas ignis" lvl="100" mana="1000" prem="1" selftarget="1" exhaustion="1200" aggressive="1" script="attack/armagedon.lua">
<vocation name="Master Sorcerer"/>
</instant>

 

PS: Mudei o nome da apocalypse.lua para armagedon.lua

 

Ok, iniciei o server não dá erro nenhum, ai eu uso a magia de fogo, sai fogo, quando eu uso a de gelo também sai fogo. Não sei tenho que mudar os combat e por combat1. E não, eu não coloquei as duas no mesmo script.

Quem puder me ajudar serei grato.

Link para o comentário
Compartilhar em outros sites

Aew cara, leo aki, toma aew o script como tu me pediu pro MSN, tu so qé o de ICE, ta aew:

 

local combat = createCombatObject()

 

arr = {

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

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

{1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1},

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

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

}

 

local area = createCombatArea(arr)

setCombatArea(combat, area)

 

function spellCallback(param)

if param.count > 0 or math.random(0, 1) ==

 

1 then

doSendMagicEffect(param.pos,

CONST_ME_ICEAREA)

 

 

doAreaCombatHealth(param.cid,

 

COMBAT_ICEDAMAGE, param.pos, 0, -50, -75,

 

CONST_ME_GIANTICE)

end

 

if(param.count < 5) then

param.count = param.count + 1

addEvent(spellCallback,

 

math.random(1000, 4000), param)

end

end

 

function onTargetTile(cid, pos)

local param = {}

param.cid = cid

param.pos = pos

param.count = 0

spellCallback(param)

end

 

setCombatCallback(combat,

 

CALLBACK_PARAM_TARGETTILE, "onTargetTile")

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

Espero ter ajudado,vlw.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...