set travelTime to ((GetCurrentTime + (GameDaysPassed * 24) - currentTime)/TimeScaleif travelTime >= 0.01 set flag to 1 set weatherShouldForce to 1 set fastTraveled to 1 elseif travelTime >= 0.0002 set flag to 3 set weatherShouldForce to 1 set fastTraveled to 1endifset currentTime to GetCurrentTime + (GameDaysPassed * 24)
Basically, it's supposed to force a new weather if you fast travel a distance that results in a large travelTime, and set the old weather on a small travelTime. The check is carried out for every cell change, though currentTime is updated every time the script is run.
However, I'd like it to change the weather if the travel time is greater than the predetermined time for the current weather to last. The time set for the next natural weather change is given by timeForCheck, which is the currentTime at the time of the weather being set plus the weather length.
I have that sort of system set up for the sleep/wait menu:
begin menumode 1012;Sleep/Wait Menuif IsTimePassing == 1 if (GetCurrentTime + (GameDaysPassed * 24)) < timeForCheck set flag to 3 set weatherShouldForce to 1 elseif (GetCurrentTime + (GameDaysPassed * 24)) >= timeForCheck set flag to 1 set weatherShouldForce to 1 endifendifend
So I was wondering if there was any way of doing the same thing for Fast Travel, without triggering it for normal cell transitions (as if I put similar checks into the GameMode cell change checks, one of the options would be true for every check, regardless of Fast Travel or not, and would lead to screwy weather.
Any help would be greatly appreciated.