You reminded me of a piece of code I wrote for weather, it goes in do_simple_move() inside act.movement.c
It may not suit your MUD, it was to provide a bit more atmosphere for a survival/horror style world.
All it does is describe the change of environment when you move between INDOORS and .. well, NOT INDOORS 
 
Code:
act.movement.c
do_simple_move()
else
    greet_memory_mtrigger(ch);
  
+  if(ROOM_FLAGGED(was_in, ROOM_INDOORS) && !ROOM_FLAGGED(IN_ROOM(ch), ROOM_INDOORS))
+  {
+      send_to_char(ch, "You step outdoors ");
+      switch (weather_info.sky)
+      {
+        case SKY_CLOUDLESS:
+            send_to_char(ch, "into sunny weather.\r\n");
+            break;  
+        case SKY_CLOUDY:
+            send_to_char(ch, "into dark cloudy weather.\r\n");
+            break;
+        case SKY_RAINING:
+            send_to_char(ch, "into a heavy downpour!\r\n");
+         break;
+        case SKY_LIGHTNING:
+            send_to_char(ch, "into a fierce lightning storm!\r\n");
+            break;
+        default:
+        break;
+      }
+  }
+  else if (!ROOM_FLAGGED(was_in, ROOM_INDOORS) && ROOM_FLAGGED(IN_ROOM(ch), ROOM_INDOORS))
+      send_to_char(ch, "You step indoors, out of the elements.\r\n");
  
  /*---------------------------------------------------------------------*/
  /* End: Post-move operations. */