Starting room

Posted by Zeno on Wed 17 Sep 2003 02:05 AM — 11 posts, 31,829 views.

USA #0
Ok, I know how to change the starting room for Smaug, so I did it. But when a new player enters the game I get this error.


Log: [*****] BUG: Char_to_room: Ziona -> NULL room!  Putting char in limbo (2)


The area is installed, and is not a prototype.
In mud.h, I changed the code to

#define ROOM_VNUM_SCHOOL           1300
#define ROOM_AUTH_START            1301


I'm sitting in 1300 when a player enters, so the room does exist.
Canada #1
Is your char actually *starting* in the school/auth_start room? :P.
It might be defined as something else.
USA #2
In comm.c its

            if (!sysdata.WAIT_FOR_AUTH)
              char_to_room( ch, get_room_index( ROOM_VNUM_SCHOOL ) );
            else
            {
              char_to_room( ch, get_room_index( ROOM_AUTH_START ) );
              ch->pcdata->auth_state = 0;
              SET_BIT(ch->pcdata->flags, PCFLAG_UNAUTHED);


I also changed ROOM_AUTH_START to 1300 to make sure. Its still getting the error.
Canada #3
Hm. Only thing that makes sense to me would be if you had been editing the wrong mud.h file, or forgot to make clean before recompiling.

...you *did* make clean, right? :P
Australia Forum Administrator #4
Maybe in Char_to_room function, put in a display to show what room number it is attempting to transfer to, and failing.
USA #5
Yeah, only way mud.h would actually change the MUD is through a clean recomplile, and I've done that a few times so far.

Nick, you want to to display where it sends? I'll try that now, hold on.
[EDIT]
Ok, I did another make clean just in case, and now it lags when I try to connect. I got this bug.


Comm: Sock.sinaddr:  172.164.246.109, port 3393.
Log: [*****] BUG: ALARM CLOCK!  In section ALARM CLOCK!  In section ALARM CLOCK!  In section ALARM CLOCK!  In section
Alas, the hideous malevalent entity known only as 'Lag' rises once more!

Log: clearing newdesc
Comm: Sock.sinaddr:  172.164.246.109, port 3393.


And I've made sure that I did a make clean.
Amended on Thu 18 Sep 2003 08:21 PM by Zeno
Australia Forum Administrator #6
Hard to say what would cause that, other than a big pause.

A possible reason is that it is doing DNS lookups and you don't have a DNS server, so it can't find the IP address of the person connecting.

Try setting:

Nameresolving 0

in system.dat.
USA #7
Well, actually that was me testing if it would happen just once. I was on my immortal char and connected again through another char.


--- Connected on Thursday, September 18, 2003, 7:41 PM ---
Zeno

It stayed like that until 7:42:39, when it actually connected. I had Nameresolving set to 0 too.

[EDIT] All fixed. Lets get back to the start room, heh.
Amended on Sat 20 Sep 2003 04:30 AM by Zeno
USA #8
Ugh, I can't figure out how to show it where its trying to send. Whats the variable I need to use? This is what I tried, and I knew it wouldn't work.

       bug( "Tried to send to %d", ch->in_room );

Of course they aren't in a room when you start.
Australia Forum Administrator #9
In the code above you called get_room_index. Inside that is:

if ( fBootDb )
bug( "Get_room_index: bad vnum %d.", vnum );


This displays the bad room number when booting. To work out what is going on, comment out that first line:


// if ( fBootDb )
bug( "Get_room_index: bad vnum %d.", vnum );

USA #10
Alright, so I wasn't even close of what I was supposed to be doing. Anyways, its trying to send to 21001.


Log: [*****] BUG: Get_room_index: bad vnum 21001.
Log: [*****] BUG: Char_to_room: Ziona -> NULL room!  Putting char in limbo (2)
Log: [*****] BUG: Get_room_index: bad vnum 21001.


But... why? I've done multiple clean recompiles. The only thing thats defined as 21001 is #define ROOM_VNUM_TEMPLE. I'm going to try changing that now.

[EDIT]
Fine, so new characters were being sent to ROOM_VNUM_TEMPLE. I don't why, but I'll check it over.