MaxWho will keep track of the maximum players to ever log onto your
MUD. This is very easy to add. 

In your main header, likely merc.h or mud.h, add MAX_WHO_FILE "maxwho.txt"

Create a file in your area directory called maxwho.txt and add a single 0
(zero) to the very top left line. Add nothing else, and save the file.

Add the following code to your source however you see fit.

This will eat a very little extra CPU when players do_count, but the
effects seem negligible in testing.

Enjoy!

Dalsor Anskaven

#define ptc printf_to_char
/* if you dont have printf_to_char, change them to sprint, or get it! */

void do_count ( CHAR_DATA *ch, char *argument )
{
    int count, max;
    DESCRIPTOR_DATA *d;
	FILE *fp;

    count = 0;

    if ( IS_NPC(ch) || ch->desc == NULL )
    	return;

    for ( d = descriptor_list; d != NULL; d = d->next )
        if ( d->connected == CON_PLAYING && can_see( ch, d->character ) )
	    count++;

    max_on = UMAX(count,max_on);

	if ( ( fp = fopen( MAX_WHO_FILE,"r" ) ) == NULL )
	{
	    log_string("Error reading from maxwho.txt");
	    return;
	}
	max = fread_number( fp );
	fclose(fp);

	if ( max_on > max )
	{
		if ( ( fp = fopen( MAX_WHO_FILE,"w" ) ) == NULL )
		{
		    log_string("Error writing to maxwho.txt");
		    return;
		}
		fprintf( fp, "%d\n", max_on );
		fclose(fp);
	}

	ptc(ch,"The largest number of active players today was %d.\n\r", max_on );
	ptc(ch,"The largest number of active players ever was %d.\n\r", max );
	ptc(ch,"You can see %d characters.\n\rSome characters may be invisible to you.\n\r\n\r", count );
}