Updated2: Okay this the last update. I promise. (This update put day desc to rooms that don't have night desc's implemented). Updated: Due to request I updated and optimized night/day desc snippet (this file). Night descriptions for rooms, double fun to area builders :) BACKUP YOUR CODE AND AREA FILES!!! So, here's a little code i decided to release, I hope you find it useful. I belive in freeware solutions, so I ask no credit for it. merc.h to struct room_index_data char * name; char * description; char * nightdesc; //add olc_save.c in function save_rooms fprintf (fp, "%s~\n", pRoomIndex->name); fprintf (fp, "%s~\n", fix_string (pRoomIndex->description)); fprintf (fp, "%s~\n", fix_string (pRoomIndex->nightdesc)); //add olc.c to const struct olc_cmd_type redit_table[] = { {"create", redit_create}, {"desc", redit_desc}, {"nightdesc", redit_desc1}, //add olc.h to /* * Room Editor Prototypes */ DECLARE_OLC_FUN( redit_name ); DECLARE_OLC_FUN( redit_desc ); DECLARE_OLC_FUN( redit_desc1 ); //add olc_act.c to function REDIT (redit_show) sprintf (buf, "Description:\n\r%s\n\r", pRoom->description); strcat (buf1, buf); sprintf (buf, "Night Description:\n\r%s\n\r", pRoom->nightdesc); /*add*/ strcat (buf1, buf); /*add*/ after function REDIT (redit_desc) /*add this code...start*/ REDIT (redit_desc1) { ROOM_INDEX_DATA *pRoom; EDIT_ROOM (ch, pRoom); if (argument[0] == '\0') { string_append (ch, &pRoom->nightdesc); return TRUE; } free_string (pRoom->nightdesc); pRoom->name = str_dup (""); send_to_char ("Syntax: nightdesc\n\r", ch); return FALSE; } /*end*/ in function REDIT (redit_format) pRoom->description = format_string (pRoom->description); pRoom->nightdesc = format_string (pRoom->nightdesc); //add in function REDIT (redit_copy) free_string( pRoom->description ); pRoom->description = str_dup( pRoom2->description ); free_string( pRoom->nightdesc ); /*add*/ pRoom->nightdesc = str_dup( pRoom2->nightdesc ); /*add*/ act_info.c in function do_look if (arg1[0] == '\0' || (!IS_NPC (ch) && !IS_SET (ch->comm, COMM_BRIEF))) { //replace your code stuff with this code...start ROOM_INDEX_DATA *pRoom; EDIT_ROOM (ch, pRoom); switch (weather_info.sunlight) { case SUN_LIGHT: case SUN_RISE: send_to_char ("", ch); send_to_char (ch->in_room->description, ch); send_to_char ("", ch); break; case SUN_SET: case SUN_DARK: if (pRoom->nightdesc == str_dup ("")) { send_to_char ("", ch); send_to_char (ch->in_room->description, ch); send_to_char ("", ch); } else { send_to_char ("", ch); send_to_char (ch->in_room->nightdesc, ch); send_to_char ("", ch); } break; } //end of this code bit } After you are done with previous code, make clean, make, reboot and save your area files. Then add this code, make, shutdown your mud, and then start it up again. Everything should work fine. db.c pRoomIndex->description = fread_string (fp); pRoomIndex->nightdesc = fread_string (fp); //add Final thing. For those who used my previous version of nightdesc. To get rid of those (null) messages go to your area folder, backup your area files, shutdown your mud and type: perl -pi -e 's/\(null\)//g' *.are This should be all. I hope i did not forget anything. If you have any bug fixes, updates, ideas for this code or just hate mail, let me know: surma@hot.ee BlackLand mud at: kellu.black.pri.ee 4000