Ir para conteúdo

Abilidades De Kina


lpw

Posts Recomendados

bom, eu criei uma magia nova pra kina

mas eu errei em alguma coisa eu acho, pois meu OT simplemente nao roda ela, e de bonus ele avisa q tem um erro nela (mas eu nao sei o q eh)

 

eu nao so Scripter nem nada, mas eu vo aprendendo o funcionamento de cada pedaço das magias por pura curiosidade e resolvi me arrisca a faze uma ( que nao deu mt certo pelo q vi ¬¬ )

 

bom, ela era pra te um dano fisico, assim como os exoris neh

soh que era pra ele da os danos nos sqms em volta do char depois da um espaço de um sqm e depois de dois e volta, resumindo, ela ia se expandi e se contrai dando 2 hits em qm estivesse nessa area

se alguem puder me ajuda eu agradeço

:positive:

 

SPELL

 

local combat1 = createCombatObject()

setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat1, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat1, COMBAT_FORMULA_SKILL, 1, 0, 2, 0)

 

local combat2 = createCombatObject()

setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat2, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat2, COMBAT_FORMULA_SKILL, 1, 0, 2, 0)

 

local combat3 = createCombatObject()

setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat3, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat3, COMBAT_FORMULA_SKILL, 1, 0, 2, 0)

 

local combat4 = createCombatObject()

setCombatParam(combat4, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat4, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat4, COMBAT_FORMULA_SKILL, 1, 0, 2, 0)

 

local combat5 = createCombatObject()

setCombatParam(combat5, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat5, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatFormula(combat5, COMBAT_FORMULA_SKILL, 1, 0, 2, 0)

 

local arr1 = {

{1, 1, 1},

{1, 2, 1},

{1, 1, 1}

}

 

local arr2 = {

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

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

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

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

{1, 1, 1, 1, 1}

}

 

local arr3 = {

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

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

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

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

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

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

[1, 1, 1, 1, 1, 1, 1}

}

 

local arr4 = {

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

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

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

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

{1, 1, 1, 1, 1}

}

 

local arr5 = {

{1, 1, 1},

{1, 2, 1},

{1, 1, 1}

}

 

local area1 = createCombatArea(arr1)

local area2 = createCombatArea(arr2)

local area3 = createCombatArea(arr3)

local area4 = createCombatArea(arr4)

local area5 = createCombatArea(arr5)

 

setCombatArea(combat1, area1)

setCombatArea(combat2, area2)

setCombatArea(combat3, area3)

setCombatArea(combat4, area4)

setCombatArea(combat5, area5)

 

function onCastSpell1(cid, var)

return doCombat(cid, combat1, var)

end

 

function onCastSpell2(cid, var)

return doCombat(cid, combat2, var)

end

 

function onCastSpell3(cid, var)

return doCombat(cid, combat3, var)

end

 

function onCastSpell4(cid, var)

return doCombat(cid, combat4, var)

end

 

function onCastSpell5(cid, var)

return doCombat(cid, combat5, var)

end

 

function onCastSpell(cid, var)

local parameters = { cid = cid, var = var,combat1 = combat1,combat2 = combat2,combat3 = combat3,combat4 = combat4,combat5 = combat5 }

addEvent(onCastSpell1, 100, combat)

addEvent(onCastSpell2, 200, combat)

addEvent(onCastSpell3, 300, combat)

addEvent(onCastSpell4, 400, combat)

addEvent(onCastSpell5, 500, combat)

end

 

ERRO

 

Warning: [Event::loadScript] Can not load script. data/spells/scripts/attack/berserk fury.lua

data/spells/scripts/attack/berserk fury.lua:47: ']' expected near ','

 

P.S.: a spell e o script tao nas pastas certas

P.S .2: soh os valores da magia que eu vou aumentar pra ela causar mais danos, esse calculo eh soh de teste

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

vc detalhou tanto, e acabou faltando os detalhes que realmente importam =\

 

tente desenhar no paint, o char, e as áreas de efeito, os estágios e poste a imagem.

cole aqui, o conteúdo da spell e a mensagem de erro que aparece no console

as vezes, foi um comandinho que faltou e sua spell está correta

 

resumindo eu preciso de

 

1. imagem explicando a área de efeito da magia:

15ekd5i.jpg

 

2. conteúdo do arquivo da spell

local combat = createCombatObject()

setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)

setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)

setCombatParam(combat, COMBAT_PARAM_USECHARGES, TRUE)

setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, -90, 0.7, -50)

 

local area = createCombatArea(AREA_SQUARE1X1)

setCombatArea(combat, area)

 

function onCastSpell(cid, var)

return doCombat(cid, combat, var)

end

 

3. mensagem de erro do console

Link para o comentário
Compartilhar em outros sites

falha simples:

 

local arr3 = {

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

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

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

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

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

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

[1, 1, 1, 1, 1, 1, 1}

}

 

troque por {1,1,1,1,1,1,1}

Link para o comentário
Compartilhar em outros sites

putz nao me diz era soh por isso? Oo

eu nao tinha visto esse esqminha =/

eu vo arruma aki e depois edito avisando se funciono

vlw ae brother =D

:great:

 

 

soh pra mata a curiosidade XP

 

tu chego a testa a spell?

 

e se chego o q tu acho?

 

 

EDITADO

 

brother, tipo, a spell ta gastando mana e abrindo o battle, mas ela nao ta nem dando efeito e nem hitando

sabe o q pode se?

 

ele abre esse erro

 

[26/02/2009 04:13:17] Lua Script Error: [spell Interface]

[26/02/2009 04:13:17] in a timer event called from:

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:onCastSpell

 

[26/02/2009 04:13:17] attempt to index a nil value

[26/02/2009 04:13:17] stack traceback:

[26/02/2009 04:13:17] [C]: in function 'doCombat'

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:77: in function <data/spells/scripts/attack/berserk fury.lua:76>

 

[26/02/2009 04:13:17] Lua Script Error: [spell Interface]

[26/02/2009 04:13:17] in a timer event called from:

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:onCastSpell

 

[26/02/2009 04:13:17] attempt to index a nil value

[26/02/2009 04:13:17] stack traceback:

[26/02/2009 04:13:17] [C]: in function 'doCombat'

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:81: in function <data/spells/scripts/attack/berserk fury.lua:80>

 

[26/02/2009 04:13:17] Lua Script Error: [spell Interface]

[26/02/2009 04:13:17] in a timer event called from:

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:onCastSpell

 

[26/02/2009 04:13:17] attempt to index a nil value

[26/02/2009 04:13:17] stack traceback:

[26/02/2009 04:13:17] [C]: in function 'doCombat'

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:85: in function <data/spells/scripts/attack/berserk fury.lua:84>

 

[26/02/2009 04:13:17] Lua Script Error: [spell Interface]

[26/02/2009 04:13:17] in a timer event called from:

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:onCastSpell

 

[26/02/2009 04:13:17] attempt to index a nil value

[26/02/2009 04:13:17] stack traceback:

[26/02/2009 04:13:17] [C]: in function 'doCombat'

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:89: in function <data/spells/scripts/attack/berserk fury.lua:88>

 

[26/02/2009 04:13:17] Lua Script Error: [spell Interface]

[26/02/2009 04:13:17] in a timer event called from:

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:onCastSpell

 

[26/02/2009 04:13:17] attempt to index a nil value

[26/02/2009 04:13:17] stack traceback:

[26/02/2009 04:13:17] [C]: in function 'doCombat'

[26/02/2009 04:13:17] data/spells/scripts/attack/berserk fury.lua:93: in function <data/spells/scripts/attack/berserk fury.lua:92>

 

ae vlw brother

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

putz nao me diz era soh por isso? Oo

eu nao tinha visto esse esqminha =/

eu vo arruma aki e depois edito avisando se funciono

vlw ae brother =D

:great:

 

 

soh pra mata a curiosidade XP

 

tu chego a testa a spell?

 

e se chego o q tu acho?

 

 

EDITADO

 

brother, tipo, a spell ta gastando mana e abrindo o battle, mas ela nao ta nem dando efeito e nem hitando

sabe o q pode se?

 

ele abre esse erro

 

 

 

ae vlw brother

 

Normalmente não testo os scripts... só quando algo começa a dar muita dor de cabeça (3 ou 4 tentativas sem sucesso) aí eu faço testes e posto apenas o resultado final

 

outro errinho, mas este é coisa de aprendizado

 

function onCastSpell1(cid, var)

return doCombat(cid, combat1, var)

end

 

percebeu que vc montou uma linha de "parameters" ? então.. ela não é a toa não... é pra usar ;)

local parameters = { cid = cid, var = var,combat1 = combat1,combat2 = combat2,combat3 = combat3,combat4 = combat4,combat5 = combat5 }

 

quando vc chama uma função utilizando addEvent(function, delayTime, parameters) TODAS as variáveis que você usa são enviadas dentro de parameters{} em forma de array

 

ficaria assim então:

 

addEvent(onCastSpell1,100,parameters)
addEvent(onCastSpell2,200,parameters)
addEvent(onCastSpell3,300,parameters)
addEvent(onCastSpell4,400,parameters)
addEvent(onCastSpell5,500,parameters)

 

 

as funções devem ser mudadas para

 

local function onCastSpell[b]X[/b](parameters)
  doCombat(parameters.cid,parameters.combatX,parameters.var)
end

 

teste e me dê uma resposta...

 

agora, se me permite, se deseja trabalhar com estágios, sugiro que aprenda a programar utilizando arrays e loopings, além de o script ficar muito mais limpo, esta edição que vc vai ter que fazer em 3 setores diferentes, por 5 vezes, vc faria em apenas um lugar, apenas uma vez.

 

o script ficaria assim:

local myCombat = {}
local areas = {
{
{1, 1, 1},
{1, 2, 1},
{1, 1, 1}
},
{
{1, 1, 1, 1, 1},
{1, 0, 0, 0, 1},
{1, 0, 2, 0, 1},
{1, 0, 0, 0, 1},
{1, 1, 1, 1, 1}
},
{
{1, 1, 1, 1, 1, 1, 1},
{1, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 2, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 1},
{1, 0, 0, 0, 0, 0, 1},
[1, 1, 1, 1, 1, 1, 1}
},
}
areas[4] = areas[2]
areas[5] = areas[1]

function castMySpell(param)
  doCombat(param.cid,param.combat,param.var)
end

for i=1,5 do
  myCombat[i] = createCombatObject()
  setCombatParam(myCombat[i], COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE)
  setCombatParam(myCombat[i], COMBAT_PARAM_EFFECT, CONST_ME_HITAREA)
  setCombatFormula(myCombat[i], COMBAT_FORMULA_SKILL, 1, 0, 2, 0)
  setCombatArea(myCombat[i],createCombatArea(areas[i]))
  param = {cid=cid,var=var,combat=myCombat[i]}
  addEvent(castMySpell,i*100,param)
end

 

vê como fica mais limpo?? mas matenha o seu até ficar claro como funcionam as funções OK?

dando errado ou não, poste a resposta por favor

Link para o comentário
Compartilhar em outros sites

brother, agora com esse ajustes que tu me ensino funfo =D

bah brother vlw msm

ela ta perfeita dando os 2 hits que tinha que dar, tudo certinho

vlw msm, pela tua paciencia ae brother :great:

Link para o comentário
Compartilhar em outros sites

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