NI
spell

Duvida Spells

Por nickissonlobo, 16 de set. de 2012 em Scripts

script
16
1.4k
nickissonloboN
16 de setembro de 2012 às 10:57

Quero Uma Spell que eu saia um efeito só, e que eu possa escolher onde esse efeito vai sair

Ela será de area que vai sair o efeito em quem solta, mas quero que o efeito vá para a direita

Porque se não fica estranho a spell, segue uma print abaixo :

 

post-338139-0-83483800-1347803752_thumb.png

 

tem um script que chega ela para o lado que eu quiser, mais ele leva junto o dano da magia.

 

rep++ para quem ajudar ;d

1 mês depois...
RasinskR
28 de outubro de 2012 às 00:37

Só se for runa pra escolher onde vai acertar fora isso n sei se tem como =/

BeekiB
28 de outubro de 2012 às 00:42

é cara, preciso da mesma coisa... os efeitos estão tortos no cliente e não tem como ajeitar pelo dat editor, alguém da uma luz aqui?

LuckOakeL
28 de outubro de 2012 às 01:07

Na spell, retire a linha com isso:

 

setCombatParam(combat, COMBAT_PARAM_EFFECT

 

E abaixo de onCastSpell, coloque:

local eff = 66 -- ID do efeito
local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
doSendMagicEffect(position, eff)

 

E ai vai só editando aqui conforme for necessário o ajuste:

 

local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}

 

Repare que está getCreaturePosition(cid).x+1, o que significa que o efeito sairá 1 sqm pra direita do player, corrigindo a falha.

 

Aproveitando, tópico movido.

Editado Outubro 28 por LuckOake

BeekiB
28 de outubro de 2012 às 01:10

Luck, pode dar uma exemplo? já dentro de uma spell? sou meio falho em LUA :(

LuckOakeL
28 de outubro de 2012 às 01:14

Tó:

 

 

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HEALING)
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, 1)
setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)
setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE)

function onGetFormulaValues(cid, level, maglevel)
min = (level * 2 + maglevel * 3) * 0.5 - 30
max = (level * 2 + maglevel * 3) * 0.6

if min < 25 then
min = 25
end

return min, max
end

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

function onCastSpell(cid, var)
local eff = 12 -- Efeito
local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}
doSendMagicEffect(position, eff)
return doCombat(cid, combat, var)
end

 

 

Peguei de exemplo a spell exura.

Editado Outubro 28 por LuckOake

BeekiB
28 de outubro de 2012 às 01:19

Boa cara, valeu ai :D

nickissonloboN
28 de outubro de 2012 às 11:10

Luck e se eu Quiser Vários Efeitos sacas ?

e Tipo poderia fazer tbm pelo modo de target?

Exemplo: Pegaria em volta do player target

Editado Outubro 28 por nickissonlobo

LuckOakeL
28 de outubro de 2012 às 16:35

Com target é só fazer assim:

 

local eff = 12 -- Efeito
local target = getCreatureTarget(cid)
local position = {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y, z=getCreaturePosition(target).z}
doSendMagicEffect(position, eff)

 

Se você quiser vários efeitos, só fazer igual tá ai em cima ajustando de acordo com sua vontade.

SlicerS
28 de outubro de 2012 às 17:06

ou usar tabela tb ^^

 

local target = getCreatureTarget(cid)
local effs = {
{11, {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y, z=getCreaturePosition(target).z} },
{21, {x=getCreaturePosition(target).x, y=getCreaturePosition(target).y+1, z=getCreaturePosition(target).z} },
{31, {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y, z=getCreaturePosition(target).z} },
{41, {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y+1, z=getCreaturePosition(target).z} },
}

for i = 1, #effs do
doSendMagicEffect(effs[i][2], effs[i][1])
end

 

no caso 11 21 31 41 sao os effeitos e o resto as posiçoes aonde eles vao sair...

nickissonloboN
29 de outubro de 2012 às 00:36

tem como eu por tipo um tempo pra um efeito pro outro ?

SlicerS
29 de outubro de 2012 às 11:15

se for usar tabela..

local target = getCreatureTarget(cid)
local effs = {
{11, {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y, z=getCreaturePosition(target).z} },
{21, {x=getCreaturePosition(target).x, y=getCreaturePosition(target).y+1, z=getCreaturePosition(target).z} },
{31, {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y, z=getCreaturePosition(target).z} },
{41, {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y+1, z=getCreaturePosition(target).z} },
}
local tempo = 200 --200 milesimos

for i = 1, #effs do
addEvent(doSendMagicEffect, i*tempo, effs[i][2], effs[i][1])
end

Editado Outubro 29 por Slicer

nickissonloboN
30 de outubro de 2012 às 11:16

e se for usar do outro modo ?

não estou exigindo é só para completar a minha duvida

SlicerS
30 de outubro de 2012 às 12:58
local eff = 12 -- Efeito
local target = getCreatureTarget(cid)
local position = {x=getCreaturePosition(target).x+1, y=getCreaturePosition(target).y, z=getCreaturePosition(target).z}
addEvent(doSendMagicEffect, 200, position, eff)

nickissonloboN
05 de novembro de 2012 às 00:22

Deu certinho Muito Obrigado :D