Jump to content

Fade to black timings? Help please!


BanjoOz

Recommended Posts

I've started playing and modding FO3 after a year or so away, and have hit a stumbling block... something I'm sure is very obvious and easy is driving me nuts trying to solve!

 

I want the following to work:

1) Player selects a dialog choice with an NPC

2) Dialog ends, screen fades to black

3) Player is forced to sleep or wait for two hours (screen is still black)

4) Fade up from black

5) NPC re-engages the player in conversation

 

After trial and error and a lot of searching and reading, I've got everything working except the "fade to black" effect; every single thing I try results in it only fading AFTER the second NPC conversation ends (step 5).

 

Is there a way to "pause" everything until the fade finishes?

 

I assumed I needed to use imod (was using "imod FadeToBlackISFX") and I'm pretty sure I need a timer to get the timings right, but I can't for the life of me figure out how to script this correctly.

 

As a side note: I've been putting the script commands in the dialog option's "result script" so far (and using addscriptpackage to get the NPC to re-engage dialog... can/should I be using a simpler method for that?).

 

It's just driving me crazy that something that seems so darn obvious is giving me such trouble, and that every search on the topic I've done comes up with a solution that doesn't work (in the case of what I want to do, that is).

 

If anyone can help and/or provide a code snippet to show me what I need to do to set this up, it would be very much appreciated!

Link to comment
Share on other sites

I would use the Dialogue Result Script to start the Fade to Black and at the same time set a Variable that would start a timer in the Quest Script. The Timer would determine when things happen such as moving or resetting things during and after the Fade to Black. Then I would have another timer in that same Quest Script that would control when the next Dialogue would start after Fade in from Black.

 

This would be in the Dialogue Result End Script and would set a variable in the Quest Script to begin the Timer. I would disable the Players controls to keep them from doing something that might mess up things before you have the Fade all done.

DisablePlayerControls
set MercMS010.StartFadeToBlack to 1
imod MercFadeToBlackISFX

 

This is in the Quest Script where the timers are run and variables are set to begin the next Dialogue.

if StartFadeToBlack == 1
     set fQuestDelayTimer to 0.0002
	if TimerFadeOut <1 
	     set TimerFadeOut to TimerFadeOut + getsecondspassed
	else 
	     player.moveto MercIntMkrOps
	     MercNpcBlainM2aREF.moveto MercIntMkrRoute2P9
	     MercNpcBlainM2aREF.RemoveItem MercBlainsRifleNPC 1 1
	     MercNpcBlainM2aREF.RemoveItem FollowersCharonCombatKnife 1 1
              set StartFadeToBlack to 0
              setstage mercms010 100
	     ApplyImageSpaceModifier DLC03IntroFadeInFromBlackISFX
              set StartTimerForFadeInDialogue to 1
       	endif
endif

 

This is also in the Quest Script to start the Fade in from Black and start the next Dialogue.

if StartTimerForFadeInDialogue == 1
     set fQuestDelayTimer to 0.0002
           if TimerFadeOut <1
                set TimerFadeOut to TimerFadeOut + getsecondspassed
           else
                set StartDialogueAgain to 1   ;This would be a Condition in the Dialogue Package
           endif
endif

 

This will all have to be adjusted to fit your timings and actual needs, but the basics are there for you to work with as needed. Keep in mind that you can also make your own custom Fade In and Fade Out to help you get the timings where you need them. I found that adjusting fQuestDelayTimer actually worked better than anything at timings. I just could never get any other method to work for some reason. But as with most things in the GECK if it works then use it because so many things in the GECK don't.

 

Do not forget to EnablePlayerControls at the end of the final Dialogue.

Link to comment
Share on other sites

THANK YOU!

 

That's a huge help, and much appreciated! I finally got it working a slightly different way, using stage timers, but will look at polishing it properly with this information. Again, I really appreciate the help!

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...