// Beta Masters Weather Script // converted to filter script // by c-middia #include forward Timer_DayHeartbeat(); public OnFilterScriptInit() { SetTimer("Timer_DayHeartbeat", 60000, 1); return 1; } GetRandomWeather(weather, ...) { new random_weather = weather, count = 0, len = numargs() - 1; if(len > 0) { do { random_weather = getarg(random(len*1000)/1000); count++; } while(random_weather == weather && count < 10); // try up to 10 times to get a random weather } return random_weather; } GetSequencedWeather(hour) { static weather = 10; switch(weather) { // only normal weather changes are possible, eg clouds before rain and no sandstorm after rain case 0 .. 7, 10: { // blue skies/clouds switch(hour) { case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,11,17,18,20,27,28,29,35,36,37,38,39); case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,20); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15,20,27,28,29); } } case 8: { // stormy weather = GetRandomWeather(weather,8,9,16,20,21,22,30,31,32,33); } case 9: { // cloudy and foggy switch(hour) { case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,20); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,20,27,28,29,30,31,32,33); } } case 11, 17, 18: { // scorching hot/bright switch(hour) { case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,11,17,18,20,27,28,29,35,26,37,38,39); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,20); } } case 12 .. 15: { // very dull, colorless, hazy switch(hour) { case 16 .. 19: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,16,20,21,22,33,35); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,16,20); } } case 16: { // dull, cloudy, rainy weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,16,20,33,35); } case 19: { // sandstorm weather = GetRandomWeather(weather,8,16); } case 20: { // foggy/greenish weather = GetRandomWeather(weather,9,16,20,21,22); } case 21, 22: { // very dark, gradiented skyline, purple/green weather = GetRandomWeather(weather,8,16,20,21,22); } case 23 .. 26: { // variations of pale orange switch(hour) { case 7 .. 11, 16 .. 20: GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,20,23,24,25,26,27,28,29,35,36,37,38); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15,20); } } case 27 .. 29: { // variations of fresh blue switch(hour) { case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,11,17,18,20,27,28,29,35,36,37,38,39); case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,20); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15,20); } } case 30 .. 32: { // variations of dark, cloudy, teal weather = GetRandomWeather(weather,8,9,16,20,21,22); } case 33: { // dark, cloudy, brown switch(hour) { case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,16,20); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,16,20); } } case 34: { // blue/purple, regular weather = GetRandomWeather(weather,16,20,21,22); } case 35: { // dull brown switch(hour) { case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,11,17,18,35,36,37,38); case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,23,24); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,12,13,14,15); } } case 36 .. 38: { // bright, foggy, orange switch(hour) { case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,11,17,18); case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,23,24); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9); } } case 39: { // extremely bright switch(hour) { case 11 .. 14: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,10,11,17,18,27,28,29,39); case 17 .. 23: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,10); default: weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,10); } } case 40 .. 42: { // blue/purple cloudy weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,16,20); } case 43: { // dark toxic clouds weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7); } case 44: { // black/white sky weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15); } case 45: { // black/purple sky weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15); } default: { weather = GetRandomWeather(weather,0,1,2,3,4,5,6,7,9,10,12,13,14,15); } } return weather; } public Timer_DayHeartbeat() { static hour = 0; SetWorldTime(hour); if(!(hour % 3)) SetWeather(GetSequencedWeather(hour)); hour++, hour %= 24; } public OnFilterScriptExit() { return 1; }