noobinhu 38 Postado Novembro 28, 2008 Share Postado Novembro 28, 2008 (editado) 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: 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 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: 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) variavel_addEvent = addEvent(talk, 5000, parameters) end function onStepOut(cid, item, pos) stopEvent(variavel_addEvent) end 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: function onUse(cid, item, fromPosition, itemEx, toPosition)parameters = {cid = cid, fromPosition = fromPosition} addEvent(magicEffect, 1000, parameters) end function magicEffect(parameters) doSendMagicEffect(fromPosition, 1) end 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: function onUse(cid, item, fromPosition, itemEx, toPosition)parameters = {cid = cid, fromPosition = fromPosition} addEvent(magicEffect, 1000, parameters) end function magicEffect(parameters) doSendMagicEffect(parameters.fromPosition, 1) end 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, 2008 por noobinhu Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/ Compartilhar em outros sites More sharing options...
tesla 2 Postado Novembro 28, 2008 Share Postado Novembro 28, 2008 Muito bom, realmente vai ajudar Aprovado Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-645732 Compartilhar em outros sites More sharing options...
RedZL 6 Postado Novembro 28, 2008 Share Postado Novembro 28, 2008 Aprovado, parabéns! Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-645816 Compartilhar em outros sites More sharing options...
alex008 2 Postado Dezembro 15, 2008 Share Postado Dezembro 15, 2008 (editado) 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, 2008 por alex0007 Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-656597 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Dezembro 15, 2008 Autor Share Postado Dezembro 15, 2008 Adicionei novamente, não vi nada de errado no script, o que acontece? Qual erro? Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-656615 Compartilhar em outros sites More sharing options...
alex008 2 Postado Dezembro 15, 2008 Share Postado Dezembro 15, 2008 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 Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-656621 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Dezembro 15, 2008 Autor Share Postado Dezembro 15, 2008 Dúvida resolvido, tem dúvidas? Poste aqui, não tenha medo Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-656650 Compartilhar em outros sites More sharing options...
Eventide 23 Postado Dezembro 15, 2008 Share Postado Dezembro 15, 2008 (editado) 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, 2008 por Eventide Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-656671 Compartilhar em outros sites More sharing options...
Felp321 1 Postado Dezembro 20, 2008 Share Postado Dezembro 20, 2008 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. Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-660429 Compartilhar em outros sites More sharing options...
noobinhu 38 Postado Dezembro 20, 2008 Autor Share Postado Dezembro 20, 2008 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. Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-660433 Compartilhar em outros sites More sharing options...
2573165 1 Postado Janeiro 16, 2009 Share Postado Janeiro 16, 2009 Parabens cara! Eu realmente estava precisando dessa função e não tinha idéia de como usá-la! Adorei!! Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-676787 Compartilhar em outros sites More sharing options...
Lwkass 0 Postado Fevereiro 7, 2009 Share Postado Fevereiro 7, 2009 Valeu, me ajudo com duvidas que tinha sobre essa função :smile_positivo: Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-692147 Compartilhar em outros sites More sharing options...
Skyblade 2 Postado Fevereiro 8, 2009 Share Postado Fevereiro 8, 2009 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... Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-692701 Compartilhar em outros sites More sharing options...
Zafor 1 Postado Fevereiro 8, 2009 Share Postado Fevereiro 8, 2009 PARABÉNS! Tutorial bem organizado mereceu ser Aprovado Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-692724 Compartilhar em outros sites More sharing options...
robson10 0 Postado Março 18, 2009 Share Postado Março 18, 2009 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 Link para o comentário https://xtibia.com/forum/topic/101129-tutorial-addevent-e-stopevent/#findComment-711924 Compartilhar em outros sites More sharing options...
Posts Recomendados