IS
pedido

Spell Complicada Cima, Baixo, Direita, Esquerda

Por IsaqueTeixeira, 05 de ago. de 2012 em Scripts

203
20.2k
02 de setembro de 2012 às 20:44

Então, ja mudei no config, so que tipo se eu fizer uma spell de cura normal aparece +xxxx e talz

so que quando eu adicionei um local position, simplismente não aparece mais.

 

 

EDIT

Magia de tirar mana funfando.

Editado Setembro 2 por isaque555

LuckOakeL
02 de setembro de 2012 às 22:46

 

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 * 0.28 + maglevel * 1.48) * 1.4

max = (level * 0.34 + maglevel * 2.34) * 1.4

return min, max

end

 

setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues")

 

function onCastSpell(cid, var)

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

doSendMagicEffect(position, 73)

return doCombat(cid, combat, var)

end

 

 

Tó. Testei e funcionou. O erro da spell é que a formula tava rancando vida, e não curando.

03 de setembro de 2012 às 22:28

 

function onCastSpell(cid, var)

local max_sqm = 3 -- maximo de sqm que vai empurrar o player

local pos = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), 1)

pos.stackpos = 253

if (isPlayer(getThingFromPos(pos).uid)) then

doTeleportThing(getThingFromPos(pos).uid, getClosestFreeTile(getThingFromPos(pos).uid, (getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid), max_sqm))))

doSendMagicEffect(pos,10)

end

return FALSE

end

 

Tó (vinheta do Luck uheheue)

Ai mano essa spell ai é de empurrar apenas, porem ela não empurra nada.

PS: não da erro no distro.

LuckOakeL
03 de setembro de 2012 às 22:47

Troca:

 

return FALSE

 

por:

 

return true

05 de setembro de 2012 às 20:33

mesma coisa luck, tipo... agora pegou o nome da spell mais quando uso nada acontece.

Editado Setembro 5 por isaque555

LuckOakeL
05 de setembro de 2012 às 20:50

Rapaz, estranho, aqui funcionou normal. Manda a tag da spell.

06 de setembro de 2012 às 01:22

Tag

 

<instant name="Fuuton Pusshu!" words="fuuton pusshu" lvl="100" mana="8000" prem="0" casterTargetOrDirection="1" range="1" blockwalls="1" exhaustion="2000" needlearn="0" event="script" value="temari/Fuuton Pusshu.lua">

</instant>

 

 

juan500J
06 de setembro de 2012 às 20:11

man tem que cuida uma coisa que server se ta usando se for naruto legend é 8.0 se nÃo me engano, tem que cuida isso tbm!

LuckOakeL
06 de setembro de 2012 às 21:55

Usa essa tag:

 

<instant name="Fuuton Pusshu!" words="fuuton pusshu" lvl="100" mana="8000" exhaustion="2000" script="temari/Fuuton Pusshu.lua">
</instant>

06 de setembro de 2012 às 22:57

@Juan500

Meu serve não é o legend, eu mudei pra um 8.54 normal so que com meu cliente, ai fiquei com um server livre de bugs

 

@LuckOake

Ainda assim não pegou não sei por que, também não da nenhum erro, eu quero que ela empurre 10 sqm's mais sem tirar dano.

juan500J
07 de setembro de 2012 às 00:01

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2.9, 0, -2.9, 0)

 

arr1 = {

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

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

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

{0, 0, 0, 2, 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 area1 = createCombatArea(arr1)

setCombatArea(combat1, area1)

 

function onCastSpell(cid, var)

local p = getCreaturePosition(cid)

local x = {

[0] = {x=p.x, y=p.y-1, z=p.z},

[1] = {x=p.x+1, y=p.y, z=p.z},

[2] = {x=p.x, y=p.y+1, z=p.z},

[3] = {x=p.x-1, y=p.y, z=p.z}

}

local y = {

[0] = numero,

[1] = numero,

[2] = numero,

[3] = numero

}

pos = x[getCreatureLookDirection(cid)]

eff = y[getCreatureLookDirection(cid)]

doSendMagicEffect(pos, eff)

doCombat(cid, combat1, var)

end

 

 

That's it. Só ajustar as positions aqui:

 

local x = {
[0] = {x=p.x, y=p.y-1, z=p.z},
[1] = {x=p.x+1, y=p.y, z=p.z},
[2] = {x=p.x, y=p.y+1, z=p.z},
[3] = {x=p.x-1, y=p.y, z=p.z}
}

 

E o número dos efeitos aqui:

 

local y = {
[0] = numero,
[1] = numero,
[2] = numero,
[3] = numero
}

 

Onde os 0, 1, 2 e 3, como já dito, são os Look Dir.

 

nao entendi essa parte....

 

[0] = {x=p.x, y=p.y-1, z=p.z},

[1] = {x=p.x+1, y=p.y, z=p.z},

[2] = {x=p.x, y=p.y+1, z=p.z},

[3] = {x=p.x-1, y=p.y, z=p.z}

 

to precisando dessa spell tbm soque como edita a poscição por ae?

07 de setembro de 2012 às 00:09

[0] = {x=p.x, y=p.y-1, z=p.z},

[1] = {x=p.x+1, y=p.y, z=p.z},

[2] = {x=p.x, y=p.y+1, z=p.z},

[3] = {x=p.x-1, y=p.y, z=p.z}

 

isso é pra arrumar a posição do effect

o X coloca o effect pra esquerda ou direita

o Y coloca pra cima ou para baixo

 

Tipo meu effect está la em cima pra colocar em baixo você coloca y+1 a cada 1 que você colocar o effect vai 1 sqm abaixo, se colocar -1 ele ira pra cima.

juan500J
07 de setembro de 2012 às 00:16

tipo assim a spell quue eu quero e quase igual a tua

 

quero:

 

esquerdat.png

 

 

que pegue o efeito apenas no sqm da frente soque quero q o hit va mais distante q nem na image

 

soque cada lado tem q ter 1 efeito sera q vc n consegue configura pra mim?

07 de setembro de 2012 às 00:26

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -5.0, 0, -5.5, 0)

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -5.0, 0, -5.5, 0)

arr1 = {

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

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

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

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

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

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

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

}

arr2 = {

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

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

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

}

local area1 = createCombatArea(arr1)

setCombatArea(combat1, area1)

local area2 = createCombatArea(arr2)

setCombatArea(combat2, area2)

function onCastSpell(cid, var)

local p = getCreaturePosition(cid)

local x = {

[0] = {x=p.x+2, y=p.y-1, z=p.z},

[1] = {x=p.x+4, y=p.y+1, z=p.z},

[2] = {x=p.x+2, y=p.y+4, z=p.z},

[3] = {x=p.x-1, y=p.y+1, z=p.z}

}

local y = {

[0] = 98,

[1] = 96,

[2] = 99,

[3] = 97,

}

pos = x[getCreatureLookDirection(cid)]

eff = y[getCreatureLookDirection(cid)]

doSendMagicEffect(pos, eff)

doCombat(cid, combat1, var)

doCombat(cid, combat2, var)

doCreatureSay(cid, "Katon Gokakyu no Jutsu", TALKTYPE_MONSTER)

end

 

 

arr2 = {

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

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

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

Aqui é a area onde o dano vai pegar

 

[0] = 98, effect para Cima

[1] = 96, effect para Esquerda

[2] = 99, effect para Baixo

[3] = 97, effect para Direita

NewtonnotwenN
07 de setembro de 2012 às 01:18

Desse jeito ai só vai sair um efeito, porém dependendo do lado em que o player vire ira modificar o mesmo.

 

Para ir mais distante faça o seguinte:

 

arr1 = {

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

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

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

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

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

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

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

}

 

Você põe 1 para ativar o efeito e o hit e 0 para anular.

 

Porém ele fez algumas alterações:

 

Entenda um pouco de script:

 

eff = y[getCreatureLookDirection(cid)]

 

Ele igualou "eff" a y[getCreatureLookDirection(cid)]

 

Depois ele disse que y =

 

local y = {

[0] = 4,

[1] = 5,

[2] = 6,

[3] = 7,

}

 

Depois ele disse oque cada numero representa:

 

local x = {

[0] = {x=p.x, y=p.y-1, z=p.z}, --- Olhar para o norte

[1] = {x=p.x+1, y=p.y, z=p.z}, --- Olhar para o leste

[2] = {x=p.x, y=p.y+1, z=p.z}, --- Olhar para o sul

[3] = {x=p.x-1, y=p.y, z=p.z} --- Olhar para a esquerda

}

 

Ou seja o numero representa o efeito mediante onde o player estiver olhando.

 

Então você edita aqui:

 

local y = {

[0] = 4, --- Quando olhar ao norte

[1] = 5, --- Quando olhar ao leste

[2] = 6, --- Quando olhar ao sul

[3] = 7, --- Quando olhar á esqueda

}

 

-Verde = Numero do efeito mediante a posição em que o player olha.

 

E aqui você edita a areá:

 

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

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

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

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

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

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

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

}

 

Areá azul vai sair na direção em que o player está olhando.

Areá laranja vai sair nas costas para onde o player está olhando.

 

 

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

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

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

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

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

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

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

}

 

Areá em roxo vai sair a esquerda de onde o player está olhando.

Areá em verde vai sair na direita de onde o player está olhando.

 

1 Para ativar efeito e hit, 0 para desativar.

 

2 = Centralização do player.

 

3 para ativar efeito e hit embaixo do player e determina sua posição.