Re: Loading and Extracting

From: Daniel Koepke (
Date: 12/02/96

On Mon, 2 Dec 1996, Ron Hensley wrote:

> Hello,
> Okay on a few occasions ive run across situations where i know the vnum of
> a mob for instance. And I need to process the mob for a bit, then im done
> with it. At no time is it loaded into a room. So ive tried something like:
> Has anyone run into this situation and have a pointer how to load
> something up, obj or char, process it as a normal obj/char, then delete it
> without blowing things up.

A quick examination of extract_char() shows these lines:

  if (ch->in_room == NOWHERE) {
    log("SYSERR: NOWHERE extracting char. (handler.c, extract_char)");

And below that:

Obviously, since your mobile isn't a room, they can't be char_from_room()
'ed the thing that is weird is it's not caught by the first if block...
Have you changed your extract_char() any?

Anyway, something tells me that you don't even need to call
extract_char().  In extract_char() there is this block:

  if (GET_MOB_RNUM(ch) > -1)

So you can easily use that instead of extract_char().  Also, if you're
getting a core dump and you have a debugger (eg., gdb) please post the
output from the 'backtrace' (bt) in the debugger, as this often shows
where the code crashed.  Furthermore, post the relevant code for the
highest ones on the stack (provided there is code, of course).  This will
definetly help us see the problems, provided you don't see them first.
If you don't know how to use 'gdb', uh, consult your man pages, the gdb
man page is surprisingly well written and not too confusing (uh, for
being a man page, that is), although it doesn't cover all the bases in
enough detail, IMHO.


Daniel Koepke
Forgive me father, for I am sin.

| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   |

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