Getting a non-player character to follow you into a new room

Started by Bender86, Wed 05/05/2004 19:19:49

Previous topic - Next topic

Bender86

At this point in the game, there are 2 characters available to control. When one character enters a certain room, I need the one which isn't being currently controlled to also enter that room. I tried using:

if (GetPlayerCharacter()==2) {
   character[0].room =6;
   NewRoomEx(6,75,162);
   } 
else if (GetPlayerCharacter()==0) {
   character[2].room =6; 
   NewRoomEx(6,75,162);
   } 
}

In the rooms 'player enters screen (before fadein) script. This produced a black screen. I then tried it in the 'player enters screen' script, which made the room flash between black and normal...kinda crazy...:P The character however was not to be seen. I'd appreciate some help on this one, thanx ^_^
-This message will self destruct in 5 seconds-

Ishmael

See FollowCharacter and FollowCharacterEx commands in the manual, they might help you.
I used to make games but then I took an IRC in the knee.

<Calin> Ishmael looks awesome all the time
\( Ö)/ ¬(Ö ) | Ja minähän en keskellä kirkasta päivää lähden minnekään juoksentelemaan ilman housuja.

stuh505

1) You are trying to use character[CHAR].room as a function to change the character's room.  This is only a variable that records what room the character is in...changing it won't actually move the character.  You are also using this function incorrectly; you need to put the character's script name in the brackets.

2) if you set follow, they will follow through room transitions.  this could work for your situation.  I am also curious if there is a way to directly move a non-player character from one room to another

3) Why do you have the same line (NewRoomEx) repeated in both conditional statements?  It could be written only once

Gilbert

#3
1) Actually changing that character[...].room variable is a valid way of moving a non-player character to another room (use NewRoom(Ex)() for player character to ensure the room change), and refering to a character with number is okay also, though using the script names is a cleaner and better way for it (in case the numbers are changed for some reasons).
2) Just alter the character[...].room variable

Bender:
Actually I don't quite understand why you'd put this in "character enters screen (whatever)" interactions, as it's strange that you want a room change immediately after entering a room, UNLESS that part of script is put in room 6 itself (which I had guessed).
In that case the problem was with your NewRoomEx() lines, as you put them in "character enters screen (whatever)", it will go on an infinite loop of re-entering forever. If you're already in room 6 you don't need the NewRoomEx() lines anymore, so comment/delete these troublesome lines:
if (GetPlayerCharacter()==2) {
Ã,  Ã, character[0].room =6;
Ã,  // NewRoomEx(6,75,162);
Ã,  Ã, }Ã,  
 else if (GetPlayerCharacter()==0) {
Ã,  Ã, character[2].room =6;Ã,  
Ã,  // NewRoomEx(6,75,162);
Ã,  Ã, }Ã,  
}

Bender86

Thanx guys ^_^ The follow character command works just fine and..as for those new room comands in my script..god knows why they were there. I think I forgot to delete em after a copy n paste.  Anyways..thanx for the help, its all workin dandy now.
-This message will self destruct in 5 seconds-

SMF spam blocked by CleanTalk