This is just an idea, I haven't tested it.
Code:
action box
{
my.INVISIBLE = ON;
my.PASSABLE = ON;
my.POLYGON = ON; // if it doesn't work, try c_setminmax(me); or something..
while(!player){wait(1);}
while(1)
{
if(((player.x < my.x + my.max_x) && (player.x > my.x + my.min_x)) && ((player.y < my.y + my.max_y) && (player.y > my.y + my.min_y)) && ((player.z < my.z + my.max_z) && (player.z > my.z + my.min_z))) // Count those brackets ;)
{
// Turn rain on.
}
else
{
// Turn rain off.
}
wait(1);
}
}