Fixed respawn bug and npc memory issue.

This commit is contained in:
Vatiken
2012-08-09 03:10:35 +00:00
parent 336275220b
commit 45cf3ade34
3 changed files with 31 additions and 3 deletions

View File

@@ -2,6 +2,19 @@ TbaMUD is currently being developed by The Builder Academy. If you need any
help, find any bugs, or have ideas for improvement please stop by TBA at help, find any bugs, or have ideas for improvement please stop by TBA at
telnet://tbamud.com:9091 or email rumble@tbamud.com --Rumble telnet://tbamud.com:9091 or email rumble@tbamud.com --Rumble
@ @
[Aug 08 2012] - Vatiken
bug: fixed another copyover issue that resulted in dying character respawning at corpse.
bug: fixed an issue where a PC could be remembered after dying. (Thanks Zusuk)
improve: cleaned up some code and did some colour adjustments.
feature: new debug toggle with 4 settings.
bug: fixed an issue with hedit that prevented editing of certain helpfiles.
feature: added message editor for combat messages.
bug: fixed a small bug with colour codes in interpreter.c.
bug: fixed crash bug in oasis_lists.c caused by buffer overflows.
bug: fixed issue with certain clients that were adding extra new-lines.
bug: fixed crash bug in improved editor.
improve: cedit toggle for colour codes in comm channels.
typo: Fixed typo in do_scan.
[May 28 2012] - Vatiken [May 28 2012] - Vatiken
bug: Fixed a MAJOR duping issue. bug: Fixed a MAJOR duping issue.
[May 24 2012] - Vatiken [May 24 2012] - Vatiken

View File

@@ -460,7 +460,7 @@ void copyover_recover()
if (!PLR_FLAGGED(d->character, PLR_DELETED)) { if (!PLR_FLAGGED(d->character, PLR_DELETED)) {
REMOVE_BIT_AR(PLR_FLAGS(d->character), PLR_WRITING); REMOVE_BIT_AR(PLR_FLAGS(d->character), PLR_WRITING);
REMOVE_BIT_AR(PLR_FLAGS(d->character), PLR_MAILING); REMOVE_BIT_AR(PLR_FLAGS(d->character), PLR_MAILING);
REMOVE_BIT_AR(PLR_FLAGS(d->character), PLR_CRYO); REMOVE_BIT_AR(PLR_FLAGS(d->character), PLR_CRYO);
} else } else
fOld = FALSE; fOld = FALSE;
} else } else
@@ -473,7 +473,13 @@ void copyover_recover()
} else { } else {
write_to_descriptor (desc, "\n\rCopyover recovery complete.\n\r"); write_to_descriptor (desc, "\n\rCopyover recovery complete.\n\r");
GET_PREF(d->character) = pref; GET_PREF(d->character) = pref;
enter_player_game(d); enter_player_game(d);
/* Clear their load room if it's not persistant. */
if (!PLR_FLAGGED(d->character, PLR_LOADROOM))
GET_LOADROOM(d->character) = NOWHERE;
d->connected = CON_PLAYING; d->connected = CON_PLAYING;
look_at_room(d->character, 0); look_at_room(d->character, 0);

View File

@@ -930,10 +930,19 @@ void extract_char_final(struct char_data *ch)
if (FIGHTING(k) == ch) if (FIGHTING(k) == ch)
stop_fighting(k); stop_fighting(k);
} }
/* we can't forget the hunters either... */ /* Whipe character from the memory of hunters and other intelligent NPCs... */
for (temp = character_list; temp; temp = temp->next) for (temp = character_list; temp; temp = temp->next) {
/* PCs can't use MEMORY, and don't use HUNTING() */
if (!IS_NPC(temp))
continue;
/* If "temp" is hunting our extracted char, stop the hunt. */
if (HUNTING(temp) == ch) if (HUNTING(temp) == ch)
HUNTING(temp) = NULL; HUNTING(temp) = NULL;
/* If "temp" has allocated memory data and our ch is a PC, forget the
* extracted character (if he/she is remembered) */
if (!IS_NPC(ch) && MEMORY(temp))
forget(temp, ch); /* forget() is safe to use without a check. */
}
char_from_room(ch); char_from_room(ch);