Postado Março 4, 2018 7 anos Em 08/02/2016 em 07:58, sertthoon disse: Tenho uma dúvida, não sei se vou reviver, mas... e se eu quiser que ele repita uma quantidade de vezes e depois pare? por exemplo, como ele falou, aquele script vai ficar em um ciclo infinito, (até que alguem de reload) e se eu quiser que ele execute apenas 5 vezes (faça 5 summons) e depois pare? Use a recursividade pra isso, exemplo: function doSomething (cid, times) if times == 0 then -- CRITÉRIO DE PARADA return true else addEvent (doSomething, 1000, cid, times - 1) -- AO CHAMAR A FUNÇÃO NOVAMENTE TENHA CERTEZA Q SEU CRITERIO DE PARADA SERA ATINGIDO -- funcao intervalo parametros end end O que vai acontecer se eu chamar a função com doSomething (cid, 5)? 1) Vai para doSomething, times é diferente de 0 então vamos para o else. Else adiciona um evento para executar doSomething (cid, 4) Passa um segundo do addEvent. 2) Vai para doSomething, times é diferente de 0 então vamos para o else. Else adiciona um evento para executar doSomething (cid, 3) Passa um segundo do addEvent. 3) Vai para doSomething, times é diferente de 0 então vamos para o else. Else adiciona um evento para executar doSomething (cid, 2) Passa um segundo do addEvent. 4) Vai para doSomething, times é diferente de 0, então vamos para o else. Else adiciona um evento para executar doSomething (cid, 1) Passa um segundo do addEvent. 5) Vai para doSomething, times é IGUAL a zero, então encerramos a execução. Nos slides desse site da federal de ouro preto: http://www.decom.ufop.br/romildo/2012-1/bcc222/slides/06-recursividade.pdf você tem a explicação com a linguagem de prog Haskell, a única coisa que você precisa saber pra não ficar perdido é que pot2 n | n == 0 = 1 | n > 0 = 2 * pot2 (n-1) É equivalente ao que tem abaixo, em LUA: function pot2(n) if n == 0 then return 1 elseif n > 0 then return 2 * pot2 (n - 1) end end Editado Março 4, 2018 7 anos por marcot (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.