Jump to content

I need help with a Dream Script


Recommended Posts

So I'm making a mod, that is not supposed to be 100% lore-friendly and is more fanfiction. It's about a Romance with Vivec.

 

For a part of this mod I want the Character to have dreams if he sleeps in a certain bed. The Script I wrote works as intended for my Character that has already finished Morrowind's Mainquest.

 

When I however load an older savegame I run into two different problems:

 

#1 When one of the nightmares about Dagoth Ur happens while you are sleeping in the modded bed, it breaks the script. None of the dreams I wrote happen after that anymore.

 

#2 The last 2 dreams are only supposed to happen once you met Vivec. It works that my Character who finished the Mainquest experiences those 2 dreams and the Character in the savegame before he finishes the Mainquest doesn't get the dreams. However for testing I added the Journal entry to the Character who didn't finish the Mainquest (Journal B8_MeetVivec, 50) before he slept in the bed and also after and even though I did that those two last dreams didn't happen.

 

How can I fix those 2 issues?

 

Thank you guys in advance :)

PS: If there is a way to make this script simpler I gladly take your advice as well.

Anyone that helps of course will be credited :)

begin Nerevec_Bed_Vivec

short Nerevec_SleepDay
short Nerevec_dayspassed
short Nerevec_compareDay
short BedIsActive
short VivecMet

if ( MenuMode == 0)

    if ( OnActivate == 1 )
    
        if ( VivecMet == 0 )

            if ( GetJournalIndex B8_MeetVivec > 33 )

                set VivecMet to 1

            endif

        endif
        ShowRestMenu
        set BedIsActive to 1

    endif

endif

if ( BedIsActive == 1 )
    
    if ( Nerevec_PCGender == 1 )

        if ( GetPCSleep == 1 )

            if ( Nerevec_SleepDay != Day )
            
                if ( Nerevec_compareDay == 0 )
                
                    set Nerevec_compareDay to Day
            
                endif

                set Nerevec_SleepDay to Day
                set Nerevec_dayspassed to ( Nerevec_SleepDay - Nerevec_compareDay )

                if ( Nerevec_Dream_Number == 0 )

                    MessageBox "censored0"
                    Journal "Nerevec_01_Dreams", 10
                    set Nerevec_compareDay to Day
                    set Nerevec_daysPassed to 0
                    set Nerevec_Dream_Number to 1
                    set BedIsActive to 0
                    Return

                elseif  ( Nerevec_Dream_Number > 0 )

                    if ( Nerevec_daysPassed >= 3 )
                
                        if ( Nerevec_TtLeyra_Dreams_01 != 1 )

                            if ( Nerevec_Dream_Number == 1 )

                                MessageBox "censored1"
                                Journal "Nerevec_01_Dreams", 20
                                set Nerevec_compareDay to Day
                                set Nerevec_daysPassed to 0
                                set Nerevec_Dream_Number to 2
                                set BedIsActive to 0
                                Return

                            elseif ( Nerevec_Dream_Number == 2 )

                                MessageBox "censored2"
                                Journal "Nerevec_01_Dreams", 30
                                set Nerevec_compareDay to Day
                                set Nerevec_daysPassed to 0
                                set Nerevec_Dream_Number to 3
                                set BedIsActive to 0
                                Return

                            endif
                
                        elseif ( Nerevec_TtLeyra_Dreams_01 == 1 )
    
                            if ( Nerevec_Dream_Number == 3 )

                                MessageBox  "censored3"
                                set Nerevec_compareDay to Day
                                set Nerevec_daysPassed to 0
                                set Nerevec_Dream_Number to 4
                                set BedIsActive to 0
                                Return
                            
                            endif
                        
                            if ( Nerevec_Dream_Number == 4 )

                                MessageBox "censored4"
                                set Nerevec_compareDay to Day
                                set Nerevec_daysPassed to 0
                                set Nerevec_Dream_Number to 5
                                set BedIsActive to 0
                                Return

                            endif
                        
                            if ( VivecMet == 1 )
                            
                                if ( Nerevec_Dream_Number == 5 )

                                    MessageBox "censored5"
                                    set Nerevec_compareDay to Day
                                    set Nerevec_daysPassed to 0
                                    set Nerevec_Dream_Number to 6
                                    set BedIsActive to 0
                                    Return

                                elseif ( Nerevec_Dream_Number == 6 )
                            
                                    MessageBox "censored6"
                                    set Nerevec_compareDay to Day
                                    set Nerevec_daysPassed to 0
                                    set Nerevec_Dream_Number to 7
                                    set BedIsActive to 0
                                    Return
            
                                endif

                            endif

                        endif
            
                    elseif ( Nerevec_daysPassed < 3 )
                    
                        set BedIsActive to 0

                    endif
            
                endif
        
            endif

        endif

    endif

endif

if ( Nerevec_Dream_Number >= 7 )

      Return

endif



 

 

Link to comment
Share on other sites

I think I got it working ... I should have used DaysPassed instead of days ... and I renamed the zone to "St. Delyn, Old Residence" instead of "Vivec, St. Delyn Old Residence"

 

And the thing with the Journal Cheat... it works if I progress the quest naturally ingame, so it probably has to do with me cheating for testing.

Link to comment
Share on other sites

  • Recently Browsing   0 members

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