Hope somebody finds this usefull only my second post but I found this bug rather annoying. It might need to be modified some to fit your mud. I am not sure how much of it is stock. I take no responsiblity want no recognition. Basically all I did was hack the reconnect stuff. In iterpreter.c add the following: case '1': + /* now check for linkless and usurpable */ + for (tmp_ch = character_list; tmp_ch; tmp_ch = tmp_ch->next) + if (!IS_NPC(tmp_ch) && + GET_IDNUM(d->character) == GET_IDNUM(tmp_ch)) { + if (!tmp_ch->desc) { + SEND_TO_Q("Reconnecting.\r\n", d); + act("$n has reconnected.", TRUE, tmp_ch, 0, 0, TO_ROOM); + if(!d->unix_name) + sprintf(buf, "%s [%s] has reconnected.", GET_NAME(d->character), d->host); + else + sprintf(buf, "%s [%s@%s] has reconnected.", GET_NAME(d->character), d->unix_name, d->host); + + mudlog(buf, NRM, MAX(LVL_IMMORT, GET_INVIS_LEV(d->character)), TRUE); + } + free_char(d->character); + tmp_ch->desc = d; + d->character = tmp_ch; + tmp_ch->char_specials.timer = 0; + REMOVE_BIT(PLR_FLAGS(d->character), PLR_MAILING | PLR_WRITING | PLR_EDITING); + + STATE(d) = CON_PLAYING; + return; + } else { /* this code is to prevent people from multiply logging in */ for (k = descriptor_list; k; k = next) { next = k->next; if (!k->connected && k->character && !str_cmp(GET_NAME(k->character), GET_NAME(d->character))) { SEND_TO_Q("Your character has been deleted.\r\n", d); STATE(d) = CON_CLOSE; return; + } } } +------------------------------------------------------------+ | 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/08/00 PST