Difference between revisions of "GetSecondsPassed"

From GECK

(note about GameDaysPassed - anyone care to check if this was true in Oblivion?)
Line 1: Line 1:
 
Link to TES4 Construction Set Wiki: [http://cs.elderscrolls.com/constwiki/index.php/GetSecondsPassed GetSecondsPassed].
 
Link to TES4 Construction Set Wiki: [http://cs.elderscrolls.com/constwiki/index.php/GetSecondsPassed GetSecondsPassed].
  
In Fallout 3, [[:Category:Time Functions|GameDaysPassed]] is a float with enough precision to accurately measure the passage of seconds, which can be used as an alternative to GetSeconds Passed. Consider:
+
In Fallout 3, [[:Category:Time Functions|GameDaysPassed]] is a float with enough precision to accurately measure the passage of seconds, which can be used as an alternative to GetSecondsPassed. Consider:
 
<pre>float MyTimer
 
<pre>float MyTimer
  
Line 31: Line 31:
 
end</pre>
 
end</pre>
 
It is also slightly more efficient to use GameDaysPassed because you do not need to update a variable every frame, you only have to do the check - saving the script an operation. A minor note, but nonetheless notable.
 
It is also slightly more efficient to use GameDaysPassed because you do not need to update a variable every frame, you only have to do the check - saving the script an operation. A minor note, but nonetheless notable.
 +
 +
However, for cases where the timer needs to be accurate to fractions of a second, GetSecondsPassed is the best choice (it returns fractions of seconds, even if the name implies units of seconds).
  
 
[[Category:Functions]]
 
[[Category:Functions]]
 
[[Category:Time Functions]]
 
[[Category:Time Functions]]

Revision as of 19:16, 25 December 2008

Link to TES4 Construction Set Wiki: GetSecondsPassed.

In Fallout 3, GameDaysPassed is a float with enough precision to accurately measure the passage of seconds, which can be used as an alternative to GetSecondsPassed. Consider:

float MyTimer

begin GameMode
    if GameDaysPassed < MyTimer
        return
    else
       ; Do stuff.

       ; Reset the timer to 5 seconds (24 hours of 60 minutes of 60 seconds in a day).
        set MyTimer to GameDaysPassed + (1.0 / 24.0 / 60.0 / 60.0) * 5.0
    endif
end

This is the same as this:

float MyTimer

begin GameMode
   ; Keep track of time.
    set MyTimer to MyTimer - GetSecondsPassed

    if MyTimer > 0
        return
    else
       ; Do stuff.

       ; Reset the timer to 5 seconds.
        set MyTimer to 5
    endif
end

It is also slightly more efficient to use GameDaysPassed because you do not need to update a variable every frame, you only have to do the check - saving the script an operation. A minor note, but nonetheless notable.

However, for cases where the timer needs to be accurate to fractions of a second, GetSecondsPassed is the best choice (it returns fractions of seconds, even if the name implies units of seconds).

Personal tools