Gaimo Posted July 16, 2020 Share Posted July 16, 2020 function RandomWeather () -- Função do clima aleatorio local WeatherID = math.random(20) -- Numero aleatorio de ids setWeather (WeatherID) -- Id dos climas outputChatBox ("[Alerta Meteorológico] Aconteceu uma mudança no clima do servidor.", getRootElement(), 255, 255, 255, true) -- Texto que aparece no chat end setTimer(RandomWeather, math.random(60*1000*10, 60*1000*30), 0) No script acima, onde tem um math.random vai ser rodado uma única vez o math.random ou sempre que o tempo do timer acabar e ele for reniciado ele vai gerar um novo tempo? Minha ideia é que seja aleatório entre 10 e 30 minutos. Link to comment
Other Languages Moderators androksi Posted July 16, 2020 Other Languages Moderators Share Posted July 16, 2020 O math.random que está dentro da função, sim, sempre irá ser gerado um novo (de 1 a 20). Já o math.random que executa a função setTimer, irá ser definido apenas uma vez (de 10 a 30 minutos), ou seja, se o número gerado for, por exemplo, 900000, o seu alerta irá SEMPRE executar a cada 15 minutos. Solução: function changeWeather() local weatherId = math.random(20) setWeather(weatherId) -- Quando essa função (changeWeather) ser executada, então chamaremos novamente a função (setTimerForChangeWeather) para setar o timer setTimerForChangeWeather() end function setTimerForChangeWeather() local ms = math.random(60 * 1000 * 10, 60 * 1000 * 30) setTimer(changeWeather, ms, 1) -- Irá executar apenas uma vez, mas a função setTimerForChangeWeather() sempre será chamada, então SEMPRE terá o que fazer end -- Script inicia setTimerForChangeWeather() 1 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