Jump to content

Getting scripts to update with AND without wait menu?


Khet

Recommended Posts

Right, while back I was working on a mod called Evanore Island. I dropped it (and Oblivion alltogether) once Fallout 3 was released. Well, decided to launch up Oblivion again and resume that mod. Now, there's a problem that I have never been able to fix, so hopefully one of you can help me out with this.

 

Basically, the simple premise of the mod is the construction of a town. After a construction stage begins the player must wait X amount of days before it's finished. Now, here's the problem and where I hope someone can help me. Currently, if the player uses the wait menu to make the time go quicker then between each wait you need to stop for five to ten seconds before using wait again, otherwise the script won't be able to update. Is there a way to allow the script to update even if they don't pause between each wait?

 

Again, I need a way to get the script to update during a wait period. Because of the way Bethesda handles scripts if you don't pause between each wait the script never has a chance to update. Something also tells me this isn't as simple as adding the same block to a Begin MenuMode since it would collide with the GameMode version and result in ultra fast construction.

 

I really feel this is the main thing that's really holding back the true potential of this mod. It's a very annoying bug when you find out you have to wait another day because you didn't pause long enough before using wait again. Credit and kudos to anyone who can fix this!

 

Here's the relevant part of the script if it'll help fix this little deal. Yes, I know the formatting is horrible. All of this was written when I was first learning scripting and I haven't finished cleaning the script up yet, forgive me!

 

Short DoOnce1
Short DayCount
Short CurrentDay

Begin GameMode

;This is the block for the first house to be constructed
If DoOnce1 == 0 && GetStage EITownCon == 10
If CurrentDay == 0
Set CurrentDay to GameDay
	Elseif CurrentDay != GameDay
	Set DayCount to DayCount + 1
	Set CurrentDay to GameDay
		If DayCount == 3
		EHouseRef01.Enable
		ETent01.Disable
		Ptal.MoveToMarker PHouse
		Set DoOnce1 to 1
	Set DayCount to 0
	Setstage EITownCon 11
	Set CurrentDay to 0
	endif
endif
endif
endif

End

Link to comment
Share on other sites

You could either make the script update more often or make the script run in menumode as well as gamemode (having it run in menumode too should not make the house get built faster.

 

For faster updates:

Add "Float fQuestDelayTime" to your list of variables

Add this code somewhere in your script

If fQuestDelayTime != xx
 Set fQuestDelayTime to xx
EndIf

where xx means the script updates once every xx seconds (I would suggest 1 or 0.5 in this case).

 

For menu and game mode functionality:

Replace "Begin Gamemode" with "Begin Gamemode || Menumode"

 

I hope this solves your problem.

Link to comment
Share on other sites

Hmm, think I used the FQuestDelayTime at one point and found out it didn't work but I could easily be mistaken. I'll just have to give it another shot.
Link to comment
Share on other sites

  • Recently Browsing   0 members

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