This is what Ive used for all of my cutscenes, as well as a disable movement script, which I could provide if you need.
Im only going by Moosh's description of his script, but unlike Moosh's, this can be put on a screen several times, for however many sfx are needed (no script duplicates). Just put an FFC with this script and use D0 for the SFX value.However, his has the option to wait a certain amount of time before playing. It depends on what you want.
Im only going by Moosh's description of his script, but unlike Moosh's, this can be put on a screen several times, for however many sfx are needed (no script duplicates).
Welp, this is what I get for rushing things without proofreading. I meant to say put a duplicate of the FFC. They're basically the same script, just mine has a delay so you can play the sound partway through a cutscene screen.
Sorry I didnt get back sooner, but here is the NoInput script that I use for my cutscenes. I believe this script was given to me by Avataro.
Link wont be able to do anything on a screen that has this FFCscript on it, so there has to be either a timed warp out, or you could use FFC changers to bring an Autowarp combo into the screen. Strings will override the script, meaning A and B can still be used to speed up and skip messages.
If you need a more in depth explanation, just let me know. Id be happy to walk you through my method of making cutscenes.
Sorry I didnt get back sooner, but here is the NoInput script that I use for my cutscenes. I believe this script was given to me by Avataro.
Link wont be able to do anything on a screen that has this FFCscript on it, so there has to be either a timed warp out, or you could use FFC changers to bring an Autowarp combo into the screen. Strings will override the script, meaning A and B can still be used to speed up and skip messages.
If you need a more in depth explanation, just let me know. Id be happy to walk you through my method of making cutscenes.
* as in a stand in for anything, eg. PressA. There's two ZScript commands for any button, Link->Press* and Link->Input*. The NoInput script you're using doesn't block button presses, so you'd still be able to use just about any item that just runs when you press the button (e.g. arrow) and doesn't need you to keep holding it (e.g. hookshot). You'd need to add Link->PressA = false;, Link->PressB = false;, etc to fix it.
Failing to block ->Press* would result in bugs. In addition to what Russ said (using items), the player could repeatedly press a directional button to leave the screen.
The short of it, is that ->Input* only matters one frame after ->Press* is regiatered. If a button is held for more then one frame, then ->Input for that button returns true. Mashing right but not holding it down doesn't r3egister as ->InputRight.
This test quest only disables all Link->Input's. You still can't move or do anything though. So you guys aren't right about that. xD Maybe it matters for something else though, idk.
I believe Link->Press* only matters for script compatibility. Link->Press* doesn't affect anything in vanilla ZC, but it still gets set if a button has been pressed that frame and other scripts can detect this and do things.
I believe Link->Press* only matters for script compatibility. Link->Press* doesn't affect anything in vanilla ZC, but it still gets set if a button has been pressed that frame and other scripts can detect this and do things.
Wot?
1. Writing to Link->Press simulates button inputs:
(a). Setting Press true, is the same as if the player manually pressed a button this frame.
(b). Setting ->Press false, disables a button press that happened on the current frame.
2. Pressing a button that was not held on the previous frame, sets ->Press for that button on the current frame.
3. If ->Press was valid on the previous frame for a given button, ->Press for that button becomes false, and ->Input for that button is true.
So, if you fail to set ->Press false, then the player can still press buttons, and things will happen, as normal, for those button presses. Setting ->Input false does not dampen button presses that occur on the same frame.
Further, if you set ->Input false for a button, and it is held down, on the very next frame ZC will register it as a new press of that button.
This can lead to some quite nasty, and unfortunate bugs. Try making an item script that launches an ffc, and have the ffc set ->Input false for the button with the item that launched it, to see what happens.
Spoiler
The item script will re-run for several frames, once per frame, until the player releases the button. This can be useful if you want a SHMUP style game, with autofire. All you need is to have a simple ffc script that your gun button runs that does this: