I probably completely missed this in the manual and forums but I CAN'T FIND IT!!! How on Earth can you make a character (not the player character) walk back and forth WITHOUT HALTING GAMEPLAY??? I wan't to do this like, there is a guy who is walking back and forth on top of a button, you have to get to the button and not touch him. How can I do this, hmm........ I tried everything, hotspots, objects, Direct, Straight, Path, Blocking, Colliding, I just can't figure the simple thing out, PLEASE HELP!!!
Well...
1. Please calm down.
2. Use descriptive subject
3. This thread is more suitable for the beginner's tech forum
4. Try to do something like this (not checked) in repeated_execute event of that room (suppose you want character BUM to walk to and fro the coordinates (50,100) and (200,100)), provided you first place him on one of the sides:
if ((character[BUM].x==50)&&(character[BUM].y==100)) { //if he reaches the left coordinates
MoveCharacter(BUM,200,100);//Move him to the right
} else if ((character[BUM].x==200)&&(character[BUM].y==100)) { //if he reaches the right coordinates
MoveCharacter(BUM,50,100);//Move him to the left
}
MoveCharacter functions cause you to have to wait while BUM moves, I need him to move while I am moving as well!!!
Quote: "WITHOUT HALTING GAMEPLAY"
remember...
Look up MoveCharacterBlocking ...
I can't remember the exact syntax, but it's something like this:
MoveCharacterBlocking(CHARID,X,Y,VAL);
CHARID,X, and Y are self explanatory
VAL is either 0 or 1, 0 for non-pause, 1 for pausing the game.
I believe that's how it works, but look it up just in case :)
~ d
@Darth Mandarb:
MoveCharacterBlocking is the blocking version of MoveCharacter. VAL is the "direct" Parameter which is used to control wether to ignore walkable areas or not.
@Akumayo:
MoveCharacter is non-blocking. I'd suggest you first try out a solution you were given, unless you really know that it isn't working.
Besides Gilbot's solution you can use a combination of MoveCharacter and MoveCharacterPath in repeatedly_execute:
if (character [BLUM].x <= 50)
{
MoveCharacter (BLUM, 200, 100);
MoveCharacterPath (BLUM, 50, 100);
}
To be on the safe side, I'd adjust it slightly:
if (character[BLUM].walking == 0)
{
MoveCharacter (BLUM, 200, 100);
MoveCharacterPath (BLUM, 50, 100);
}
otherwise it's possible that while at X=50, the move would keep getting restarted and he'd not move.
One point this thread does bring up is the confusing naming between MoveCharacter, MoveCharacterBlocking and MoveCharacterDirect. I may well merge all three into a single command at some point to make things clearer.
Thanks guys, Punaman, I'll try yours, I really hope that someday I willl understand all of this... AND THAT MOVING CHARACTERS WILL BE EASY!!!
QuoteMOVING CHARACTERS WILL BE EASY
l0l...
*no comment*