+Sommer Posted February 9, 2019 Share Posted February 9, 2019 (edited) Olá novamente , alguém poderia me ensinar por favor como utilizo loop for, queria que esse retangulo troca-se de cor a cada um certo tempo, fiz isso abaixo mas fiz errado demais, se alguém poder me ajudar ficarei muito grato (OBS: Sou apenas um scripter iniciante ) local sx, sy = guiGetScreenSize() local x, y = (sx/1366), (sy/768) cor = {} function dxLoginS() local rectangle = dxDrawRectangle(x*0, y*70, x*500, y*5, cor) cor[1] = tocolor(10, 85, 230, 255) cor[2] = tocolor(255, 140, 0, 255) cor[3] = tocolor(190, 255, 0, 255) for i = cor do return rectangle end setTimer(function () if rectangle then end, 2500, 1) end addEventHandler("onClientRender", root, dxLoginS) Edited February 9, 2019 by +Sommer Link to comment
Other Languages Moderators Lord Henry Posted February 9, 2019 Other Languages Moderators Share Posted February 9, 2019 Uma explicação sobre loops: 1 Link to comment
+Sommer Posted February 9, 2019 Author Share Posted February 9, 2019 (edited) Certo Fiz Assim : cor = {tocolor(10, 85, 230, 255), tocolor(255, 140, 0, 255), tocolor(190, 255, 0, 255)} function dxLoginS() function rectangle() for _, i in pairs (cor) do dxDrawRectangle(x*0, y*70, x*500, y*5, cor) end end setTimer(function() if rectangle then return true end end, 50, 0) end addEventHandler("onClientRender", root, dxLoginS) Aparece o resto do elementos todos apenas esse retangulo não aparece, utilizei o debug e da o seguinte erro: [Expected number at argument 5, got table] (OBS: Não Entendi muito sobre FOR, meio complicado, utilizei alguns exemplos mas nada tão proximo e eu tbm n entendi kkk... não postei o codigo completo por motivos de ser exclusivo) Edited February 9, 2019 by +Sommer Link to comment
Other Languages Moderators Lord Henry Posted February 9, 2019 Other Languages Moderators Share Posted February 9, 2019 Hum... vc editou o post pra outra coisa totalmente sem relação... Quais cores vc quer usar em cada tempo? E a cada quanto tempo vc quer mudar a cor? 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 As cores seriam azul um verde Lima e laranja, e a um curto tempo uns 10 seg Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2019 Other Languages Moderators Share Posted February 10, 2019 Então tipo, o retângulo é criado em azul Depois de 10 segundos ele deve ficar verde-lima Depois de mais 10 segundos, ele deve ficar laranja, é isso? 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 (edited) 2 minutes ago, Lord Henry said: Então tipo, o retângulo é criado em azul Depois de 10 segundos ele deve ficar verde-lima Depois de mais 10 segundos, ele deve ficar laranja, é isso? Exatamente isso, deve ser um sistema fácil, porem não sei usar loop e nem sei se é necessário um loop Edited February 10, 2019 by +Sommer Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2019 Other Languages Moderators Share Posted February 10, 2019 (edited) Loop geralmente se usa para repetições. Depois que chegar na cor laranja, após 10 segundos deve voltar ao azul? Edited February 10, 2019 by Lord Henry 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 Just now, Lord Henry said: Loop geralmente se usa para repetições. Depois que chegar na cor laranja, após 10 segundos deve voltar ao azul? Sim, ai ele fica nessa repetição até a pessoa fechar o painel no caso Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2019 Other Languages Moderators Share Posted February 10, 2019 (edited) cores = { tocolor(10, 85, 230, 255), -- roxo tocolor(190, 255, 0, 255), -- verde-amarelado tocolor(255, 140, 0, 255) -- laranja } function dxLoginS() dxDrawRectangle(x*0, y*70, x*500, y*5, cores[cor]) -- Supondo que esses 4 primeiros parâmetros estejam corretos... end addEventHandler("onClientRender", root, dxLoginS) cor = 1 local theTimer = setTimer (function() if (cor < #cores) then cor = cor + 1 else cor = 1 end end, 10000, 0) Obs: Não testado. Edited February 10, 2019 by Lord Henry 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 (edited) 6 minutes ago, Lord Henry said: cores = { tocolor(10, 85, 230, 255), -- roxo tocolor(190, 255, 0, 255), -- verde-amarelado tocolor(255, 140, 0, 255) -- laranja } function dxLoginS() dxDrawRectangle(x*0, y*70, x*500, y*5, cores[cor]) -- Supondo que esses 4 primeiros parâmetros estejam corretos... end addEventHandler("onClientRender", root, dxLoginS) cor = 1 local theTimer = setTimer (function() if (cor < #cores) then cor = cor + 1 else cor = 1 end end, 10, 0) Obs: Não testado. Ok , vou testar aqui 2 minutes ago, +Sommer said: Ok , vou testar aqui Esta dando este erro Mod/cliente.lua:12: ')' expected near ' Edited February 10, 2019 by +Sommer Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2019 Other Languages Moderators Share Posted February 10, 2019 Troque aquele 10 por 10000. Ali no final do código. 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 3 minutes ago, Lord Henry said: Troque aquele 10 por 10000. Ali no final do código. Ainda continua com o mesmo erro na linha 12, no parêntese do rectangle só não sei como arrumar Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2019 Other Languages Moderators Share Posted February 10, 2019 Vc deve ter copiado errado então. Acabei de testar aqui no meu e está funcionando. A única diferença é que não estou usando aqueles valores de x e y no dxDraw, estou usando valores inteiros. cores = { tocolor(10, 85, 230, 255), -- roxo tocolor(190, 255, 0, 255), -- verde-amarelado tocolor(255, 140, 0, 255) -- laranja } function dxLoginS() dxDrawRectangle(0, 70, 500, 50, cores[cor]) end addEventHandler("onClientRender", root, dxLoginS) cor = 1 local theTimer = setTimer (function() if (cor < #cores) then cor = cor + 1 else cor = 1 end end, 10000, 0) Obs: Foi testado. 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 2 minutes ago, Lord Henry said: Vc deve ter copiado errado então. Acabei de testar aqui no meu e está funcionando. A única diferença é que não estou usando aqueles valores de x e y no dxDraw, estou usando valores inteiros. Ué? estou copiando exatamente igual e da esse erro na linha do dxDrawRectangle Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2019 Other Languages Moderators Share Posted February 10, 2019 Teste com aqueles números que eu coloquei. Se não der certo então vc tem outras coisas no seu código que estão dando erro e vc não quer me mostrar. 1 Link to comment
+Sommer Posted February 10, 2019 Author Share Posted February 10, 2019 14 minutes ago, Lord Henry said: Teste com aqueles números que eu coloquei. Se não der certo então vc tem outras coisas no seu código que estão dando erro e vc não quer me mostrar. mexendo aq era isso mesmo era uma outra parte do meu script que estava interferindo no script, mano vlw ae pelo help funcionou e por mais questão de estética mesmo mas outra parte para aprender também, vlw msm Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now