Users browsing this thread: 1 Guest(s)
simultaneous movement in events

#1
Posts: 34
Threads: 7
Thanks Received: 0
Thanks Given: 1
Joined: Mar 2015
Reputation: 2
Status
None
Good evening. Hopefully a quick question, how do I make actor and/or npcs move simultaneously during events? Like say Shadow and Interceptor. The instance that comes to mind is the Fiagro castle scene while they're all riding chocobos.

I'm trying to make it so Shadow and Interceptor enter the scene at the same time. Shadow is a character and Interceptor obviously a NPC. When I do one queue after the other it looks like one then the other moves. So I tried animating out each movement seperatly and sequentially, and it looks choppy and awful. The basic structure i'm using for the action queues i'm using is 01 82 8A FF, if need be I can post up the whole event but I have a feeling it's something small I'm missing. Thanks in advance for any help.
  Find
Quote  

#2
Posts: 2,549
Threads: 98
Thanks Received: 147
Thanks Given: 159
Joined: Aug 2009
Reputation: 52
Status
Nattak\'d
Not exactly a quick question to answer by any means, for you to fully understand how to go about this, but here goes lol.

Instead of using 8X, where X is the number of bytes in the action queue, use 0X.
For instance, a random example:
03 03 C2 81 FF:
Action queue for Shadow, 3 bytes long, sets speed to normal, moves character 1 to the right, and ends queue.
10 83 C2 81 FF:
Action queue for Intercepter (assuming he is NPC 10) 3 bytes long, sets speed to normal, moves character 1 to the right, ends queue, BUT instead waits until it is complete...the difference being Shadow using 0X will not wait until complete, allowing for Intercepter to also move. If you had them both 8X, then Shadow would do his action queue, and it would have to wait until it is complete, before Intercepter would do his. And if you had them both using 0X, it would have them both move at the same time, but would then read whatever's very next in the event code right away... So if there was for instance a dialog box directly after these two movements, it would read it right away, right when they start their movement queues that dialog box would pop up...so you would want to either use a normal pause after this, to time it out so their movements are finished before the next command happens, or instead have the last character use 8X instead of 0X, which would then have them both move, but at least wait until the last character is done before moving on with the event. Still with me?

Basically the last character's action queue in a simultaneous movement scenario, you'd want to use 8X on, while any previous movements should use 0X.

In other words, 03 83 C2 81 FF would have him move and any other NPC/character would have to wait their turn, while 03 03 C2 81 FF would have him do the same action queue, but it would continue to read on to the next character's/NPCs action queue, or whatever's next in the event code. There is a LOT more to it than this in an event with timing/pauses, but basically you can use 0 for having multiple NPCs moving at the same time, and 8 to have them act their whole queue by themselves first, or prolong the event from continuing until complete.

You can work in pauses within action queues by using E0 XX, where XX is the amount of time you want to wait until continuing on with the action queue, so other characters can move and act at different times or w/e. You can also use normal 91-95 pauses outside of the queues, those would be used to prevent whatever's next in the event code... It's pretty damn hard for me to explain this stuff via typing in a thread, but I am more than happy to continue to try! Anyway to sum up what I'm trying to say about pauses, using various timing commands is essential to making it look good and detailed. And there's a couple other timing/pausing commands that can be used as well, depending on the circumstance.

Any character or NPC with 8X instead of 0X will have a sort of precedence over the other, meaning you would want to use 8X for that character to be the last one to execute their action queue after all the others, while 0X disregards all other ones, but the event would not continue as long as one of the characters you are simultaneously moving has 8X for their queue, and it's usually placed on the last character that's moving before whatever's next in the event just to prevent the event from continuing, but allowing all the intended movements to carry out.

f**k it's hard for me to explain lol...hope you sorta understand. As always look at some instances in the event dump and hex code to see. When you see in the event dump after a character's action queue how it says (Wait until complete), that means it is using 8X instead of 0X. When it doesn't say that, it is using 0X, which means it will just continue to read any further action queues in front of it, to allow for simultaneous movement.

It starts to get mighty tricky controlling a bunch of people, and having the exact timing you want, but just remember to use E0 XX to add pauses when necessary within the queue, E0 being the pause command to use inside of the queue, and to know which X bytes long command to use. And use normal pauses outside of action queues to prevent the code from continuing on. Once you try this out and see it in action it should start to make since and become easier to understand. I'm willing to help out much more if needed though.

Also, important: 0X will become 1X once it goes over 0F, and 8X will become 9X once it goes over 8F...for those super long action queues.

There's a lot to character movement and timing with various pause techniques, it can get tricky so ask away if you get stuck or don't understand something I said here. But getting your hands dirty now that you know this bit of info and looking at various references in the dump & hex code is the best way to learn, while asking questions along the way. Although I'm not sure of how far you are planning to take your event(s) or if it is just a simple change you'd like to do here and there, but I'd be willing to take you under my wing so to speak if you'd like lol. ^_^


We are born, live, die and then do the same thing over again.
Quote  

#3
Posts: 1,633
Threads: 56
Thanks Received: 13
Thanks Given: 84
Joined: Apr 2014
Reputation: 12
Status
Atma
Oh! i thought you had to split all actions queues in single steps to make them act together Laugh
Knowing that, making actions in events starts to make a sense.


THE GREATEST CHALLENGE OF ALL TIMES AWAITS:
http://www.ff6hacking.com/forums/showthr...p?tid=2593
DO YOU HAVE WHAT IT TAKES TO SLAY A GOD?
------------------------------------------------------------------------
Tenkarider's project #2 is started: FF6 Curse of the Madsiur Joke (CotMJ)
http://www.ff6hacking.com/forums/showthr...p?tid=2755
What happens when Madsiur tweaks your account? This full game hack will show that!
  Find
Quote  

#4
Posts: 34
Threads: 7
Thanks Received: 0
Thanks Given: 1
Joined: Mar 2015
Reputation: 2
Status
None
Wow, it really wasn't quick. Laugh

I knew about the different bytes for length, and had a feeling that was it, and I even tried it, but it's possible I missed one when changing them around and it made it still look choppy. In fact, when they were all 0X Shadow and Interceptor never even entered the scene, just door swung open and people talking and shit. Weird lookin'.

Now that I know that is the ticket I can experiment a little more to find the right formula to get this to move fluidly. And I was already very aware of the pauses, there's even a pause that's like BX something, I'll have to find it in the event dump again for reference (or I misread, it was late) .

These first few events are going to be mostly "easy", however, I do have some pretty complicated ones in the pipeline since it'll be quite difficult to really rewrite the story without altering some of the longer scenes. Pretty much the entirety of Thamasa will need to be fixed to go with my general story. So yeah... Having a mentor so to speak would be very helpful in the coming months (hopefully not years).

By the way, you did a great job explaining, no worries there. Smile
  Find
Quote  



Forum Jump:

Users browsing this thread: 1 Guest(s)


Theme by Madsiur2017Custom Graphics by JamesWhite