BanjoOz Posted April 24, 2013 Share Posted April 24, 2013 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 NPC2) Dialog ends, screen fades to black3) Player is forced to sleep or wait for two hours (screen is still black)4) Fade up from black5) 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 More sharing options...
vforvic Posted April 25, 2013 Share Posted April 25, 2013 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 More sharing options...
BanjoOz Posted April 28, 2013 Author Share Posted April 28, 2013 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 More sharing options...
Recommended Posts