Ir para conteúdo
  • 0

Spell Complicada Cima, Baixo, Direita, Esquerda


IsaqueTeixeira

Pergunta

Gente vou mostrar umas ss aqui de como é +ou - essa spell ok, vamos lá

Para Baixo:

baixonh.png

Para esquerda:

esquerdat.png

para cima:

cimah.png

Para direita:

direital.png

 

 

 

 

QUADRADOS VERMELHOS: Local de onde saira o effect, no caso o que eu tenho aqui são aqueles effects direcionados

QUADRADOS PRETOS: Local do dano da spell

Vlw espero que entendam, demorou pra fazer isso uheheuhe.

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

deixa eu ve se eu intendi +/- assim o script:

 

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

 

 

 

setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -2.9, 0, -2.9, 0) E O HIT DA MAGIA

 

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}, E ONDE O HIT VAI PEGA

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

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

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

}

 

 

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}, E O LOCAL QUE VAI PEGA O EFEITO

[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, E O NUMERO DA SPRITE DO EFEITO

[3] = numero

}

 

é assim?

o poblema nao e em editar area colocar 1,2,0

o poblema e aqui:

 

[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}

}

 

se alguem puder me explica melhorzin eu agradeço...

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

  • 0

[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}

 

Mediante o sistema cartesiano do tibia:

 

Z = Andar

X = Linha horizontal

Y = Linha vertical

 

Legenda:

 

-Vermelho: Posições (x, y, z)

-Verde: Um local (p)

-Laranja: Adições nas posições

​-Roxo: Números em locais

 

De acordo com tais oque ele fez:

 

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

 

Ele disse que o numero 0 = uma "formula"

 

Porém antes no script ele diz que local p = getCreaturePosition(cid)

 

Assim igualando P a onde o player está, ou seja P significa onde o player está (o numero 2 no caso).

 

Agora entenda a "formula":

 

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

 

Ele disse que a posição x, ou seja a posição horizontal é igual á:

 

p.x

 

p = Posição do player e x normal, assim se anula o x.

 

Porém com o y ele modifica:

 

y=p.y-1

 

Ele iguala y á p*y, portanto anulando a posição vertical e depois disso diminui 1 do y, assim a posição que se estabelece é 1 square a cima do player.

 

Porque?

 

-1y = Cima

+1y = Baixo

-1x = Esquerda

+1x = Direita

 

E por fim ele anula o z.

 

z=p.z

 

Então a unica coisa que ele modificou foi o y:

 

y=p.y-1, sendo -1y = cima, caso o player olhe para o norte ^ será o numero 0:

 

[0] = {x=p.x, y=p.y-1, z=p.z}, --- Player olhando para cima.

 

A mesma coisa acontece com os outros, ele iguala outros numero a outras "formulas":

 

[1] = {x=p.x+1, y=p.y, z=p.z}, ---- Anula y, anula z e adiciona +1x

[2] = {x=p.x, y=p.y+1, z=p.z}, ----Anula x, anula z e adiciona +1y

[3] = {x=p.x-1, y=p.y, z=p.z} ---- Anula y, anula z e diminui -1x

 

De acordo com a tabela:

 

-1y = Cima

+1y = Baixo

-1x = Esquerda

+1x = Direita

 

[1] = {x=p.x+1, y=p.y, z=p.z}, sendo +1x = direita, caso o player olhe para o leste > será o numero 1.

 

[2] = {x=p.x, y=p.y+1, z=p.z}, sendo +1y = baixo, caso o player olhe para o sul V será o numero 2.

 

[3] = {x=p.x-1, y=p.y, z=p.z}, sendo -1x = esquerda, caso o player olhe para o oeste < será o numero 3.

 

Assim sendo:

 

eff = y[getCreatureLookDirection(cid)]

 

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

 

Assim o efeito seria mediante a esta tabela:

 

local y = {

[0] = 4, --- Numero do efeito ao olhar para o norte

[1] = 5, --- Numero do efeito ao olhar para o leste

[2] = 6, --- Numero do efeito ao olhar para o sul

[3] = 7, --- Numero do efeito ao olhar para o oeste

}

 

Entendeu?

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

  • 0

olha mano pra não extressa vc vou fala a verdade, nao entendi mais n precisa se esforça com tempo eu aprendo!!!

cresci no mundo de OTS na versao 7.81 que e mt mais simples de edita spells mais essas sao mais fodas

mesmo assim flw

Link para o comentário
Compartilhar em outros sites

  • 0

@juan500

 

Você já estudou plano cartesiano? Se você aprender ele, você entenderá o script com mais facilidade.

 

@Topic

 

Então, isaque555, o script que te passei funcionou?

 

Post número 200 viva

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

×
×
  • Criar Novo...