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