Thanks for the help. I checked my buffer, and it was using something strange and odd so I added one in. The player file was overriding the buffer (I think). Here is the finished code for a do_players command that allows you to search for specific player levels and it'll list 'em (without crashing). ACMD(do_players) { FILE *fl; struct char_file_u player; int done=FALSE; char buf[MAX_STRING_LENGTH]; char arg1[MAX_INPUT_LENGTH], arg2[MAX_INPUT_LENGTH]; int lowl, highl; two_arguments(argument, arg1, arg2); if (!*arg1 || !*arg2) { send_to_char("Must provide low and high levels.\r\n", ch); return; } else { lowl = atoi(arg1); highl = atoi(arg2); } if (!(fl = fopen(PLAYER_FILE, "r+"))) { send_to_char("Can't open player file. Uh oh.", ch); return; } sprintf(buf, "Player Name Player Level\r\n"); while (!done) { fread(&player, sizeof(struct char_file_u), 1, fl); if (feof(fl)) { fclose(fl); done = TRUE; } if (!done) if (player.level >= lowl && player.level <= highl) sprintf(buf, "%s%-20s %-2i\r\n", buf, player.name, player.level); } send_to_char(buf, ch); } Wart || mud.kuntrynet.com:4000 || http://mud.kuntrynet.com/~wart/mud "You did all the talking and me" -- Laurie Anderson +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST