Date: Friday June 21, 2002 @ 1:18 Author: cameron Update of /home/netrek/cvsroot/Vanilla/tools In directory swashbuckler.real-time.com:/var/tmp/cvs-serv28377/tools Modified Files: README trimscores.c Log Message: fix trimscores documentation **************************************** Index: Vanilla/tools/README diff -u Vanilla/tools/README:1.1 Vanilla/tools/README:1.2 --- Vanilla/tools/README:1.1 Wed Nov 11 20:44:54 1998 +++ Vanilla/tools/README Fri Jun 21 01:18:31 2002 @@ -39,13 +39,9 @@ planets - List all planets with some general info about them. trimscores - takes the output of "scores A", and trims away players which no longer seem to be active. You may specify 1 numerical - argument, which represents how "nice" the program should be + argument, which represents how "harsh" the program should be when deciding which characters to throw away. The default is - 10. I use 5 myself. At 5, it throws away once played - characters after about 50 days of inactivity, and for a - Captain with 40 hours of play time, it will wait until the - character has been inactive for over 200 days before throwing - him away. Output is a list of deleted characters. + 10. Output is a list of deleted characters. showgalaxy - a curses (termcap) tool to watch the galaxy. Good for checking in on the game over a modem. Commands are 'm' for message, 'z' for zoom (followed by player number), 'P' for planet Index: Vanilla/tools/trimscores.c diff -u Vanilla/tools/trimscores.c:1.5 Vanilla/tools/trimscores.c:1.6 --- Vanilla/tools/trimscores.c:1.5 Wed May 29 17:34:38 2002 +++ Vanilla/tools/trimscores.c Fri Jun 21 01:18:31 2002 @@ -2,7 +2,7 @@ * Kevin P. Smith 12/05/88 * * Takes the output of scores A and generates the player file. - * (Also creates the .GLOBAL file) + * (Also creates the .GLOBAL file, depending on #define's) * This program reads stdin for its data. */ @@ -54,14 +54,14 @@ #ifdef LTD_STATS - printf("trimscores: This program does not work with LTD_STATS\n"); + fprintf(stderr, "trimscores: This program does not work with LTD_STATS\n"); exit(1); #else int fd; struct player j; - int i; + int count, kept; char buf[MAXBUFFER]; int harsh=10; /* How strict we will be with player trimming */ const LONG currenttime = time (NULL); @@ -72,7 +72,8 @@ } if (argc>2) usage(); getpath(); - fprintf(stderr,"Warning: If you do not know how to use this program, break it now!\n"); + fprintf(stderr,"Warning: if you do not know how to use this program,\n"); + fprintf(stderr," you're about to lose the player database\n"); status=(struct status *) malloc(sizeof(struct status)); scanf("%10ld %10d %10d %10d %10d %10lf\n", &status->time, @@ -85,8 +86,8 @@ #ifdef DOGLOBAL fd = open(Global, O_WRONLY|O_CREAT|O_TRUNC, 0600); if (fd < 0) { - printf("Cannot open the global file!\n"); - exit(0); + fprintf(stderr, "Cannot open the global file!\n"); + exit(0); } write(fd, (char *) status, sizeof(struct status)); close(fd); @@ -94,10 +95,12 @@ fd = open(PlayerFile, O_WRONLY|O_CREAT|O_TRUNC, 0644); if (fd < 0) { - printf("Cannot open player file\n"); + fprintf(stderr,"Cannot open player file\n"); + } else { + fprintf(stderr,"Player database truncated, now reading input\n"); } - i=0; + count=0; while (fgets(buf, MAXBUFFER, stdin)) { if (strlen(buf) > 0) buf[strlen(buf)-1] = '\0'; trimblanks2(buf+16); @@ -138,7 +141,7 @@ /* This formula reads: * If (deadtime - (10 + rank^2 + playtime/2.4)*n days > 0, nuke him. */ - if (i!=0 && harsh<100 && ((currenttime - play_entry.stats.st_lastlogin - 864000*harsh) - + if (count!=0 && harsh<100 && ((currenttime - play_entry.stats.st_lastlogin - 864000*harsh) - play_entry.stats.st_rank * play_entry.stats.st_rank * harsh * 86400 - (play_entry.stats.st_tticks + play_entry.stats.st_ticks + play_entry.stats.st_sbticks) * harsh > 0)) { @@ -158,12 +161,15 @@ } if (fd>=0) { write(fd, (char *) &play_entry, sizeof(struct statentry)); + kept++; } - i++; + count++; } if (fd>=0) { close(fd); } + fprintf(stderr,"Read %d records from input\n", count); + fprintf(stderr,"Wrote %d records to new player database\n", kept); #endif /* LTD_STATS */ @@ -172,14 +178,16 @@ void usage(void) { - printf("Usage: trimscores n < scoredb\n"); - printf("This program takes input of the form generated by the 'scores A'\n"); - printf(" command. It then recreates the database, throwing away characters\n"); - printf(" which haven't been used recently. The n tells it how nice to be\n"); - printf(" when determining who to throw away. The default n is 10.\n"); - printf(" Any character destroyed must have not played for the last n*10 days\n"); - printf(" and then some consideration is given to how valued he is likely to be.\n"); - printf("It also outputs a quick description of the characters who were\n"); - printf(" nuked.\n"); + printf("Usage: trimscores [n] < scores > dropped\n\ +\n\ +Takes input of the form generated by the 'scores A' command. But do\n\ +not run it at the same time as 'scores A', because is writes to the\n\ +input files by 'scores'.\n\ +\n\ +It then recreates the database (.players), throwing away characters\n\ +which haven't been used recently. The n tells it how harsh to be when\n\ +determining who to throw away. The default n is 10.\n\ +\n\ +For characters dropped, a summary line is written to standard output.\n"); exit(0); }