Difference between revisions of "User:Rasikko"
imported>Rasikko |
imported>Rasikko m (→Time Functions) |
||
Line 28: | Line 28: | ||
<br /> | <br /> | ||
This function also takes some mathematical steps:<br> | This function also takes some mathematical steps:<br> | ||
1. Game Days Passed is converted into total hours. | 1. Game Days Passed is converted into total hours.<br> | ||
2. Then it's converted into total minutes. | 2. Then it's converted into total minutes.<br> | ||
3. Finally it's multiplied by the game's time scale(default: 20, where 1 RL minute = 20 game minutes) | 3. Finally it's multiplied by the game's time scale(default: 20, where 1 RL minute = 20 game minutes)<br> | ||
<source lang="papyrus"> | <source lang="papyrus"> | ||
Float Function ConvertGameMinutesToRealMinutes() | Float Function ConvertGameMinutesToRealMinutes() | ||
Line 36: | Line 36: | ||
return ((Utility.GetCurrentGameTime() * 24) * 60) * (Game.GetFormFromFile(0x0000003A, "Skyrim.ESM") as GlobalVariable).GetValue() | return ((Utility.GetCurrentGameTime() * 24) * 60) * (Game.GetFormFromFile(0x0000003A, "Skyrim.ESM") as GlobalVariable).GetValue() | ||
EndFunction | EndFunction | ||
</source> | </source> |
Revision as of 09:45, 27 November 2017
I've been modding my games since TES 3.
Time Functions
Various functions for calculating time in skyrim. Most use GetCurrentGameTime - Utility as it returns the total game days passed. Making it easier for conversions.
This simple function converts days passed into hours passed.
Float Function GetGameHoursPassed()
; Converts the game days passed to game time hours.
return Utility.GetCurrentGameTime() * 24
EndFunction
This function does a few mathematical steps before arriving to the result:
1. The days passed is turned into a whole number and divided by 7 with the remainder being the day of the week.
2. The days passed is turned into a fraction of a day and then converted into the hours passed since that day started.
3. Result from Step 2 is added to the result of Step 1.
Float Function GetGameHoursPassedForWeek()
; returns the total hours passed for the current week.
; Get the current time(it's actually how many game days have passed).
Float CurrentGameTime = Utility.GetCurrentGameTime()
; Get hours passed since sundas.
return (((CurrentGameTime as Int) % 7) + ((CurrentGameTime - CurrentGameTime as int) * 24)) as Float
EndFunction
This function also takes some mathematical steps:
1. Game Days Passed is converted into total hours.
2. Then it's converted into total minutes.
3. Finally it's multiplied by the game's time scale(default: 20, where 1 RL minute = 20 game minutes)
Float Function ConvertGameMinutesToRealMinutes()
; Converts game minutes to real time minutes.
return ((Utility.GetCurrentGameTime() * 24) * 60) * (Game.GetFormFromFile(0x0000003A, "Skyrim.ESM") as GlobalVariable).GetValue()
EndFunction