Simple fix for a simple problem. In the new weather system for 1.9, weather messages actually ignore sector type and go straight to room flags.
In weather.c: replace WeatherMessage with the following:
//Send a message to a player in the area, assuming they are outside, and awake.
void WeatherMessage( const char *txt, int x, int y )
DESCRIPTOR_DATA *d = NULL;
for( pArea = first_area; pArea; pArea = pArea->next )
if( pArea->weatherx == x && pArea->weathery == y )
for( d = first_descriptor; d; d = d->next )
if( d->connected == CON_PLAYING )
if( d->character && ( d->character->in_room->area == pArea )
&& !NO_WEATHER_SECT( d->character->in_room->sector_type )
&& IS_AWAKE( d->character ) )
send_to_char( txt, d->character );
And you'll be good to go.