Ir para conteúdo

[ Dúvida Sanada ] Addevent


Skyblade

Posts Recomendados

seguinte...

 

eu estou tentando fazer uma "magia" que faria assim...

 

o cara fala:

 

-Charge..

aparece uma animação como se ele tivesse carregado um pouco de energia aparecendo em cima dele 1x

-Charge

2x

-Charge

4x

-Charge

8x

 

e por ai vai...

 

só que quando eu quis melhorar a aparencia com tempo entre uma animaçao e outra o script fico louco...

a 1º vez que vc usa o script ele funciona perfeitamente...

quando vc tenta a 2º ele da esse erro:

[05/08/2009 03:42:43] Lua Script Error: [TalkAction Interface]

[05/08/2009 03:42:43] data/talkactions/scripts/charge.lua:onSay

 

[05/08/2009 03:42:43] luaAddEvent(). Callback parameter should be a function.

[05/08/2009 03:42:48]

 

To ficando louco...

o script seria esse :

function onSay(cid, words, param)
doCreatureSay(cid, "Charge", TALKTYPE_ORANGE_1)
local cont = getPlayerStorageValue(cid,78451)
local playerpos = getPlayerPosition(cid)
pp = getPlayerPosition(cid)

parametro = {cid=cid}

pausa = 300
charge = addEvent(charge, pausa, parametro) 


rd = 12



xeff1 = {x=pp.x-2,y=pp.y-2,z=pp.z}
xeff2 = {x=pp.x-1,y=pp.y-2,z=pp.z}
xeff3 = {x=pp.x,y=pp.y-2,z=pp.z}
xeff4 = {x=pp.x+1,y=pp.y-2,z=pp.z}
xeff5 = {x=pp.x+2,y=pp.y-2,z=pp.z}
xeff6 = {x=pp.x-2,y=pp.y-1,z=pp.z}
xeff7 = {x=pp.x-2,y=pp.y,z=pp.z}
xeff8 = {x=pp.x-2,y=pp.y+1,z=pp.z}
xeff9 = {x=pp.x+2,y=pp.y-1,z=pp.z}
xeff10 = {x=pp.x+2,y=pp.y,z=pp.z}
xeff11 = {x=pp.x+2,y=pp.y+1,z=pp.z}
xeff12 = {x=pp.x-2,y=pp.y+2,z=pp.z}
xeff13 = {x=pp.x-1,y=pp.y+2,z=pp.z}
xeff14 = {x=pp.x,y=pp.y+2,z=pp.z}
xeff15 = {x=pp.x+1,y=pp.y+2,z=pp.z}
xeff16 = {x=pp.x+2,y=pp.y+2,z=pp.z}


doSendMagicEffect(xeff1,rd)
doSendMagicEffect(xeff2,rd)
doSendMagicEffect(xeff3,rd)
doSendMagicEffect(xeff4,rd)
doSendMagicEffect(xeff5,rd)
doSendMagicEffect(xeff6,rd)
doSendMagicEffect(xeff7,rd)
doSendMagicEffect(xeff8,rd)
doSendMagicEffect(xeff9,rd)
doSendMagicEffect(xeff10,rd)
doSendMagicEffect(xeff11,rd)
doSendMagicEffect(xeff12,rd)
doSendMagicEffect(xeff13,rd)
doSendMagicEffect(xeff14,rd)
doSendMagicEffect(xeff15,rd)
doSendMagicEffect(xeff16,rd)






if cont == -1 then
setPlayerStorageValue(cid,78451,0)
return TRUE
end



return TRUE
end




function charge(parametro)
local cid = parametro.cid


parametro = {cid=cid}
pausa = 300
store = addEvent(store, pausa, parametro)


local cont = getPlayerStorageValue(cid,78451)
local playerpos = getPlayerPosition(cid)
pp = getPlayerPosition(cid)

eff1 = {x=pp.x-1,y=pp.y-1,z=pp.z}
eff2 = {x=pp.x,y=pp.y-1,z=pp.z}
eff3 = {x=pp.x+1,y=pp.y-1,z=pp.z}
eff4 = {x=pp.x-1,y=pp.y,z=pp.z}
eff5 = {x=pp.x+1,y=pp.y,z=pp.z}
eff6 = {x=pp.x-1,y=pp.y+1,z=pp.z}
eff7 = {x=pp.x,y=pp.y+1,z=pp.z}
eff8 = {x=pp.x+1,y=pp.y+1,z=pp.z}




doSendMagicEffect(eff1,rd)
doSendMagicEffect(eff2,rd)
doSendMagicEffect(eff3,rd)
doSendMagicEffect(eff4,rd)
doSendMagicEffect(eff5,rd)
doSendMagicEffect(eff6,rd)
doSendMagicEffect(eff7,rd)
doSendMagicEffect(eff8,rd)

return TRUE
end














function store(parametro)
local cid = parametro.cid
local cont = getPlayerStorageValue(cid,78451)
local playerpos = getPlayerPosition(cid)
pp = getPlayerPosition(cid)

if cont == 0 then
vezes = 0
elseif cont == 1 then
vezes = 1
elseif cont == 2 then
vezes = 2
elseif cont == 3 then
vezes = 4
elseif cont == 4 then
vezes = 8
elseif cont == 5 then
vezes = 16
elseif cont == 6 then
vezes = 32
elseif cont == 7 then
vezes = 64
elseif cont == 8 then
vezes = 128
elseif cont == 9 then
vezes = 256
elseif cont == 10 then
vezes = 512
end


local life = (500*cont)


if cont >= 11 then
setPlayerStorageValue(cid,78451,0)
doSendAnimatedText(playerpos, "Error",TEXTCOLOR_RED) 
else
doSendAnimatedText(playerpos, "" .. vezes .. "x",TEXTCOLOR_RED) 
setPlayerStorageValue(cid,78451,cont+1)
doCreatureAddHealth(cid,-life)
charge = {x=pp.x,y=pp.y,z=pp.z}
doSendMagicEffect(charge,65)

end

stopEvent(store)
stopEvent(charge)
return TRUE
end



 

aguardo resposta =(

 

Att: Skyblade

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

Acho que o único problema era do da veriável charge que você seto ela como uma função, mas depois definiu ela novamente como uma variável:

 

function charge(parametro)

 

charge = {x=pp.x,y=pp.y,z=pp.z}

 

Além disso, eu retirei algumas coisas que não causavam erro, mas eram inúteis, como a varável playerpos.

 

 

function onSay(cid, words, param)
doCreatureSay(cid, "Charge", TALKTYPE_ORANGE_1)
local cont = getPlayerStorageValue(cid,78451)
local pp = getPlayerPosition(cid)

parametro = {cid=cid}
charge = addEvent(charge, 300, parametro)

rd = 12

xeff1 = {x=pp.x-2,y=pp.y-2,z=pp.z}
xeff2 = {x=pp.x-1,y=pp.y-2,z=pp.z}
xeff3 = {x=pp.x,y=pp.y-2,z=pp.z}
xeff4 = {x=pp.x+1,y=pp.y-2,z=pp.z}
xeff5 = {x=pp.x+2,y=pp.y-2,z=pp.z}
xeff6 = {x=pp.x-2,y=pp.y-1,z=pp.z}
xeff7 = {x=pp.x-2,y=pp.y,z=pp.z}
xeff8 = {x=pp.x-2,y=pp.y+1,z=pp.z}
xeff9 = {x=pp.x+2,y=pp.y-1,z=pp.z}
xeff10 = {x=pp.x+2,y=pp.y,z=pp.z}
xeff11 = {x=pp.x+2,y=pp.y+1,z=pp.z}
xeff12 = {x=pp.x-2,y=pp.y+2,z=pp.z}
xeff13 = {x=pp.x-1,y=pp.y+2,z=pp.z}
xeff14 = {x=pp.x,y=pp.y+2,z=pp.z}
xeff15 = {x=pp.x+1,y=pp.y+2,z=pp.z}
xeff16 = {x=pp.x+2,y=pp.y+2,z=pp.z}


doSendMagicEffect(xeff1,rd)
doSendMagicEffect(xeff2,rd)
doSendMagicEffect(xeff3,rd)
doSendMagicEffect(xeff4,rd)
doSendMagicEffect(xeff5,rd)
doSendMagicEffect(xeff6,rd)
doSendMagicEffect(xeff7,rd)
doSendMagicEffect(xeff8,rd)
doSendMagicEffect(xeff9,rd)
doSendMagicEffect(xeff10,rd)
doSendMagicEffect(xeff11,rd)
doSendMagicEffect(xeff12,rd)
doSendMagicEffect(xeff13,rd)
doSendMagicEffect(xeff14,rd)
doSendMagicEffect(xeff15,rd)
doSendMagicEffect(xeff16,rd)

if cont == -1 then
setPlayerStorageValue(cid,78451,0)
end

return TRUE
end




function charge(parametro)
local cid = parametro.cid

parametro = {cid=cid}
store = addEvent(store, 300, parametro)

local cont = getPlayerStorageValue(cid,78451)
local pp = getPlayerPosition(cid)

eff1 = {x=pp.x-1,y=pp.y-1,z=pp.z}
eff2 = {x=pp.x,y=pp.y-1,z=pp.z}
eff3 = {x=pp.x+1,y=pp.y-1,z=pp.z}
eff4 = {x=pp.x-1,y=pp.y,z=pp.z}
eff5 = {x=pp.x+1,y=pp.y,z=pp.z}
eff6 = {x=pp.x-1,y=pp.y+1,z=pp.z}
eff7 = {x=pp.x,y=pp.y+1,z=pp.z}
eff8 = {x=pp.x+1,y=pp.y+1,z=pp.z}

doSendMagicEffect(eff1,rd)
doSendMagicEffect(eff2,rd)
doSendMagicEffect(eff3,rd)
doSendMagicEffect(eff4,rd)
doSendMagicEffect(eff5,rd)
doSendMagicEffect(eff6,rd)
doSendMagicEffect(eff7,rd)
doSendMagicEffect(eff8,rd)

return TRUE
end




function store(parametro)
local cid = parametro.cid
local cont = getPlayerStorageValue(cid,78451)
local pp = getPlayerPosition(cid)

if cont == 0 then
vezes = 0
elseif cont == 1 then
vezes = 1
elseif cont == 2 then
vezes = 2
elseif cont == 3 then
vezes = 4
elseif cont == 4 then
vezes = 8
elseif cont == 5 then
vezes = 16
elseif cont == 6 then
vezes = 32
elseif cont == 7 then
vezes = 64
elseif cont == 8 then
vezes = 128
elseif cont == 9 then
vezes = 256
elseif cont == 10 then
vezes = 512
end

local life = (500*cont)

if cont >= 11 then
setPlayerStorageValue(cid,78451,0)
doSendAnimatedText(pp, "Error",TEXTCOLOR_RED)
else
doSendAnimatedText(pp, "" .. vezes .. "x",TEXTCOLOR_RED)
setPlayerStorageValue(cid,78451,cont+1)
doCreatureAddHealth(cid,-1 * life)
local meposition = {x=pp.x,y=pp.y,z=pp.z}
doSendMagicEffect(meposition,65)
end

stopEvent(store)
stopEvent(charge)
return TRUE
end

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

Devo ter escorregado em alguma parte, mude essa parte:

 

charge = {x=pp.x,y=pp.y,z=pp.z}
doSendMagicEffect(charge,65)

 

Para essa:

 

local meposition = {x=pp.x,y=pp.y,z=pp.z}
doSendMagicEffect(meposition,65)

 

Acho que não vai mais dar erro.

 

EDIT~~

 

PS: No seu script, não no meu.

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

Edit...

 

vlw ae lucas...

 

agora funfo

o erro tbm tava nos "stopevent" e "charge = addevent..."

arrumei isso e funfo certinho

 

Brigadao

 

Se algum modera ler ae pode dar closed

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

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