Please note!!
This snippet depends on you having the info snippet (I ferget which one I
put in, but it's got togglable information settings). If you dont have it,
remove the announce(blah blah) statement in hiscore.c

in comm.c 

under global variables add
sh_int              MemLogCount;       
sh_int              MemLogMax;         

before get the port number add

log_string("Initiating Memlog");
rename( MEMLOG_FILE, "../data/memlog.lastboot" );
unlink(MEMLOG_FILE);
MemLogCount = 0; 
MemLogMax = 100; 

in db.c 
in boot_db (somewhere) add

load_hiscores();
search for load_notes, area_update, and add the above line in there
somewhere.

in merc.h, add 
#include "hiscore.h"  
just before struct note_data

in act_info.c (do_look)
at the beginning add 
char *kwd
then after
 for ( obj = ch->carrying; obj != NULL; obj = obj->next_content )
    {
        if ( can_see_obj( ch, obj ) )
        {  /* player can see object */

add
            kwd = is_hiscore_obj( obj );
          if( kwd )
          {
              show_hiscore( kwd, ch );
              return;
           }
then go down to
    for ( obj = ch->in_room->contents; obj != NULL; obj =
obj->next_content )
    {

        if ( can_see_obj( ch, obj ) )
        {
and add  
            kwd = is_hiscore_obj( obj );
          if( kwd )
          {
              show_hiscore( kwd, ch );
              return;
           }

Add hiscore.c to your makefile

Make clean (rm -r -f *.o) and recompile.


Don't forget to define hiscores and hiscoset in interp.c and interp.h. I
don't have the commands set up in there, so I can't be much help for you.

Another thing: In show_hiscore, you'll see a {? . This is a random color
choice for my mud. You'll have to change that for your own liking.

Now, how to add lists:
From within the mud , type 
hiscoset create <listname>
hiscoset set <listname> desc <description>

for example, my pkiller scoresheet was done as
hiscoset create pkill
hiscoset set pkill desc Top 5 pkillers
hiscoset set pkill maxlength 5 (for only 5 entries)

NOW, in the code, add this:

in comm.c (probably in con_read_motd), add the followin bit of code
(again, assuming this is a pkill list.)
        adjust_hiscore( "pkill", ch, ch->pcdata->kills_pc );
        adjust_hiscore( "quest", ch, ch->questpoints );
        adjust_hiscore( "age", ch, get_age(ch) );

Hell, there's a few examples for you.
Make SURE you change the other areas where this code is refferenced
too. For example, a questpoint check would be called in quest.c after the
points are actually assigned, and a pkillers check in fight.c after the
player kills are adjusted.