Greetings
    I want to keep track of mob kills/killed stats and show the top ten in
each category....
 
I cant get the stats to load properly...here is my update_mobstats and
load_mobstats and a sample of the data....
 
What am I doing wrong?
 
*****LOAD_MOBSTAT*****
 
void load_mobstats()
{
  FILE *fp;
  int vnum;
 
      fclose(fpReserve);
      if ((fp=fopen("../data/mobstat.txt","r")) == NULL)
      {
        log_string("Error: unable to open mobstat file!");
        fpReserve = fopen( NULL_FILE, "r" );
        exit(1);
      }
 
      for ( ; ; )
      {
       MOB_INDEX_DATA *pMobIndex;
 
       if ( feof(fp) )
       {
        fclose( fp );
        fpReserve = fopen( NULL_FILE, "r" );
        return;
       }
 
       vnum = fread_number( fp );
 
       if ( vnum == -1 )
       {
        fclose( fp );
        return;
       }
 

       pMobIndex = get_mob_index(vnum);
       pMobIndex->killed = fread_number(fp);
       pMobIndex->kills = fread_number(fp);
      }
 
      fclose(fp);
      fpReserve = fopen( NULL_FILE, "r" );
      return;
}

 
*****UPDATE_MOBSTATS*****  Called one every 5 mins or so 
 
void mobstat_update (void)
{
     FILE *fp;
     int vnum;
     MOB_INDEX_DATA *pMobIndex;
     CHAR_DATA *mob;
     int nMatch;
     char buf[MSL];
 
    fclose(fpReserve);
 
    fp = fopen("../data/mobstat.txt","w");
 
    nMatch = 0;
    for (vnum = 0; nMatch < top_mob_index; vnum++)
    if ((pMobIndex = get_mob_index(vnum)) != NULL)
    {
      nMatch++;
      if ( ( pMobIndex = get_mob_index( vnum ) ) != NULL )
      {
       mob = create_mobile( pMobIndex );
       if (mob->pIndexData->kills >= 3 || mob->pIndexData->killed >= 3)
       {
        sprintf(buf,"%5d %5d %5d\n", mob->pIndexData->vnum,
mob->pIndexData->kills, mob->pIndexData->killed);
        fprintf( fp, buf );
       }
      }
    }
     fprintf(fp,"-1");
     fclose(fp);
     fpReserve = fopen( NULL_FILE, "r" );
     return;
}

 
*****DATA FILE**** mobstats.txt
 
   11     0     3
   12     1     2
  101     2    0
-1
 
 
Any help in pointing out my mistake would be great....it appears that the
data is not getting loaded into the indexdata.....
 
Thanks
-T

Reply via email to