Re: Mud Hanging when players enter

From: Mike Levine (mrunix@srv1.ic.net)
Date: 02/17/97


Shaw wrote:
> 
> Ok I have patched in the autoeq code from ftpcircle.  It seems to work
> sometimes, but the majority of the time the mud will hang whenever a
> players enters.  I have really noticed it when they enter with
> retrieving crash saved items.  And it seems like whenever they do enter
> sucessfully they are put into room #1: Limbo instead of the default...
> 
> If anyone can help out it would be appreciated!

I've noticed this too. Here is the relevant code from interpreter.c
(after
autoeq patch is installed):

    case '1':
      reset_char(d->character);
      if (PLR_FLAGGED(d->character, PLR_INVSTART))
        GET_INVIS_LEV(d->character) = GET_LEVEL(d->character);

      /* put character to their loadroom before autoequipping them */
      if ((load_room = GET_LOADROOM(d->character)) != NOWHERE)
        load_room = real_room(load_room);

      /* If char was saved with NOWHERE, or real_room above failed... */
      if (load_room == NOWHERE) {
        if (GET_LEVEL(d->character) >= LVL_IMMORT)
          load_room = r_immort_start_room;
        else
          load_room = r_mortal_start_room;
      }

      if (PLR_FLAGGED(d->character, PLR_FROZEN))
        load_room = r_frozen_start_room;

      char_to_room(d->character, load_room);
      if ((load_result = Crash_load(d->character)))
        if (GET_LEVEL(d->character) < LVL_IMMORT &&
            !PLR_FLAGGED(d->character, PLR_FROZEN)) {
          char_from_room(d->character);
          char_to_room(d->character, load_room);
        }

      save_char(d->character, NOWHERE);
      send_to_char(WELC_MESSG, d->character);
      d->character->next = character_list;
      character_list = d->character;
      act("$n has entered the game.", TRUE, d->character, 0, 0,
TO_ROOM);

      STATE(d) = CON_PLAYING;
      if (!GET_LEVEL(d->character)) {
        do_start(d->character);
        send_to_char(START_MESSG, d->character);
      }
      look_at_room(d->character, 0);
      if (has_mail(GET_IDNUM(d->character)))
        send_to_char("You have mail waiting.\r\n", d->character);
      if (load_result == 2) {   /* rented items lost */
        send_to_char("\r\n\007You could not afford your rent!\r\n"
          "Your possesions have been donated to the Salvation
Army!\r\n",
                     d->character);
      }
      d->prompt_mode = 1;
      read_aliases(d->character);
      break;

If anyone can shed some light on what's going on it would be most
appreciated.

Mike Levine
mrunix@ic.net
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
|    Or send 'info circle' to majordomo@cspo.queensu.ca     |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST