Stock BUG with new character creation

From: Kras Kresh (
Date: 05/25/02

For those MUDs that are getting init_char() problems, here is the cause.
This also applies for all other CircleMUDs!!! I tested it on the latest
MUD.. well probably not the latest (2002050120-snapshot).

Try this:
1. create new character
2. delete character
3. enter same character name on second creation, but pick 'N' and choose
another name and create the character
4. quit game
5. log on your IMM
6. stat file (character one)
7. stat file (character two)

Notice you are stat'ing the same one character. This character's ID will
probably be 0 (didn't bother checking on the CVS, but it was on the MUD i'm
working on).

Fix? Not sure, but I'll give it a shot.

interpreter.c: nanny():
  case CON_NAME_CNFRM:          /* wait for conf. of new name    */
    if (UPPER(*arg) == 'Y') {
      if (isbanned(d->host) >= BAN_NEW) {
        mudlog(NRM, LVL_GOD, TRUE, "Request for new char %s denied from [%s]
        write_to_output(d, "Sorry, new characters are not allowed from your
        STATE(d) = CON_CLOSE;
      if (circle_restrict) {
        write_to_output(d, "Sorry, new players can't be created at the
        mudlog(NRM, LVL_GOD, TRUE, "Request for new char %s denied from [%s]
        STATE(d) = CON_CLOSE;
      write_to_output(d, "New character.\r\nGive me a password for %s: ",
    } else if (*arg == 'n' || *arg == 'N') {
      write_to_output(d, "Okay, what IS it, then? ");
+      free_char(d->character);
+      clear_char(d->character);
-      free(d->character->;
-      d->character-> = NULL;
      STATE(d) = CON_GET_NAME;
    } else
      write_to_output(d, "Please type Yes or No: ");

  case CON_PASSWORD:            /* get pwd for known player      */

Chat with friends online, try MSN Messenger:

   | FAQ: |
   | Archives: |
   | Newbie List:   |

This archive was generated by hypermail 2b30 : 06/25/03 PDT