Muito bom, realmente vai ajudar
Aprovado
Muito bom, realmente vai ajudar
Aprovado
info
Grupo: Conde
Registrado: 06/11/06
Posts: 850
Reputação: +6
Char no Tibia: Xearius Thor

Aprovado, parabéns!
info
Grupo: Campones
Registrado: 25/07/08
Posts: 55
Reputação: +2
Char no Tibia: Alex Terceiro

to querendo fazer uma talkaction com addEvent
como seria o msm script so q pra talk action
function onStepIn(cid, item, pos)parameters = {cid=cid, item=item, pos=pos} -- enviar todos parâmetros necessários dentro de um array
addEvent(talk, 1000, parameters)
end
function talk(parameters)
doSendAnimatedText(parameters.pos, 'Teste de addEvent', 180)
end
PS: noobinhu, nao recebi nenhuma aceitação aki no MSN
alexsndf@homail.com
Editado Dezembro 15 por alex0007
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

Adicionei novamente, não vi nada de errado no script, o que acontece? Qual erro?
info
Grupo: Campones
Registrado: 25/07/08
Posts: 55
Reputação: +2
Char no Tibia: Alex Terceiro

cara nao tem error, so q o script ta pra movements eu queria um pra talkaction
pra isso precisa mudar algumas coisas
exemplo:
function onStepIn
para:
function onSay
mais tentei mudar aki mais n deu certo e to pedindo sua ajuda
e novamente nao apareceu nenhuma soliçitação aki no msm
me passa o seu
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

Dúvida resolvido, tem dúvidas? Poste aqui, não tenha medo ![]()
achei um pequeno erro, você chamou a função antes dela ser declarada...
declare ela primeiro e depois chame, da mais certo.
ou melhor ainda, coloque a função como local. :-)
Editado Dezembro 15 por Eventide
info
Grupo: Cavaleiro
Registrado: 08/01/08
Posts: 192
Reputação: +1
Char no Tibia: Felp Guardian

Olá. Isto me ajudou bastante. Mas eu não entendi muito bem este negócio de parameters. Você podiaq me mandar uma mensagem me explicando um pouco melhor? Obrigado.
Atenciosamente,
Felipe.
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino

Eventide, isto não importa em LUA acho, eu também faço assim.
Felp~
Os parâmetros são as variáveis que estavam na function de destino (principal) e você quer usar na function que foi usado o addEvent, me fale melhor o que você não entendeu, mais tarde eu respondo melhor.
Parabens cara!
Eu realmente estava precisando dessa função e não tinha idéia de como usá-la!
Adorei!!
info
Grupo: Campones
Registrado: 22/10/08
Posts: 5
Reputação: 0
Char no Tibia: Nenhum

Valeu, me ajudo com duvidas que tinha sobre essa função :smile_positivo:
Cara...to tendo um problemao....
eu tentei usa esses "addeevent" num script... soh q eu quero fazer funcionar 2 ao mesmo tempo...
ex: uma bomba... eu clico no item e ele começa...3..2..1..boom
soh q qndo eu ativo 2 juntos eles parecem que se unem...
nao sei o que fazer...
PARABÉNS!
Tutorial bem organizado mereceu ser Aprovado ![]()
Esse tutorial esta muito bom so que....
eu quero pedir um favor
pra vc ensinar como colocar ele num script exemplo!!!
aki esta o script da shovel se der pra termina ele pra mim eu agradeço.
local holes = {468, 481, 483, 489}
function onUse(cid, item, fromPosition, itemEx, toPosition)
parameters = {cid=cid, item=item, pos=pos}
if isInArray(holes, itemEx.itemid) == TRUE then
doTransformItem(itemEx.uid, itemEx.itemid + 1)
doDecayItem(itemEx.uid)
elseif itemEx.itemid == 231 then
local rand = math.random(1, 100)
if rand == 1 then
doCreateItem(2159, 1, toPosition)
elseif rand > 95 then
doSummonCreature("Scarab", toPosition)
end
doSendMagicEffect(toPosition, CONST_ME_POFF)
elseif itemEx.itemid == 4526 and itemEx.actionid == 3334 then -- AKI ESTA A PARTE QUE NAO FUNCIONA!!!
doTransformItem(itemEx.uid, 469)
doDecayItem(itemEx.uid)
addEvent(back,1*60*1000,parameters)
else
return FALSE
end
return TRUE
end
function back(parameters)
doTransformItem(itemEx.uid, 4526)
end
info
Grupo: Marquês
Registrado: 01/03/06
Posts: 1k
Reputação: +38
Gênero: Masculino
Bom, este tutorial ajudará muitas pessoas que têm dúvidas nessas functions, que são bem simples, basta prestar um pouco de atenção, enviar os parâmetros corretamente para a nova function a ser feita e usá-los.
Primeiramente:
addEvent(function, time, parameters)
Explicação:
function - function a ser executada
time - o tempo em millisegundos para executar a função (1000 = 1 segundo)
parameters - parâmetros a ser passados da function normal para a outra
Exemplo de uso:
Note como usar a variável pos que foi passada dentro de um array, ainda é usada como se estivesse no array, parameters.pos, assim você deve acessar todos parâmetros que foram passados, estes parâmetros são como variáveis e guardam os mesmos valores que tinham na function onStepIn, para acessar cid e pos, seria parameters.cid e parameters.pos
Agora explicado o addEvent, explicarei o stopEvent, usado para parar a execução de uma function de addEvent.
stopEvent(eventID)
eventID - variável contendo o addEvent
Exemplo de uso:
Note novamente como usar a variável pos que foi passada dentro de um array, ainda é usada como se estivesse no array, parameters.pos, assim você deve acessar todos parâmetros que foram passados, estes parâmetros são como variáveis e guardam os mesmos valores que tinham na function onStepIn, para acessar cid e pos, seria parameters.cid e parameters.pos
O mesmo script, porém neste script agora, primeiramente após pisar no tile e esperar 1 segundo exibirá uma mensagem e enquanto não sair de 5 em 5 segundos aparecerá a mesma mensagem. Após sair do tile, o addEvent será parado e então as mensagens não serão mais exibidas.
Ambas functions são muito úteis se usadas corretamentes em sistemas diferentes.
Exercício:
Descubra o erro nesta function:
Esta function seria ativada ao usar o item e um segundo depois apareceria o efeito de número 1 de onde o player estava, porém não funciona, o erro é muito bobo, apesar de ser um dos erros mais cometidas nestas functions.
Resposta no spoiler em negrito:
Um erro muito bobo e comum, que no início poderá ocorrer diversas vezes.
Depois deste tutorial, espero que as dúvidas sobre estas functions tenham acabado.
Mais dúvidas? Postem!
Editado Novembro 28 por noobinhu