Difference between revisions of "User:Rasikko"
Jump to navigation
Jump to search
imported>Scrivener07 |
imported>Scrivener07 |
||
Line 11: | Line 11: | ||
<source lang="papyrus">Float daysPassed = (Game.GetFormFromFile(0x00000039, "Fallout4.ESM") as GlobalVariable).GetValue()</source> | <source lang="papyrus">Float daysPassed = (Game.GetFormFromFile(0x00000039, "Fallout4.ESM") as GlobalVariable).GetValue()</source> | ||
<br> | <br> | ||
Using any of them, you pass into the arguments where needed for the following | Using any of them, you pass into the arguments where needed for the following function: | ||
<source lang="papyrus"> | <source lang="papyrus"> | ||
Float Function GetGameTime(Float afDaysPassed) Global | Float Function GetGameTime(Float afDaysPassed) Global | ||
Line 26: | Line 26: | ||
</source> | </source> | ||
<br> | <br> | ||
This function requires the return value from GetGameTime() above. | |||
<source lang="papyrus"> | <source lang="papyrus"> | ||
Float Function GetCurrentInGameTime(Float afGameTime) Global | Float Function GetCurrentInGameTime(Float afGameTime) Global | ||
Line 33: | Line 34: | ||
EndFunction | EndFunction | ||
</source> | </source> | ||
<br> | |||
<source lang="papyrus"> | |||
String Function GetCurrentDayOfWeek(Float afDaysPassed) Global | |||
; Returns the day of week. Returns an empty string if something went wrong. | |||
Int dayOfWeek = afDaysPassed as int % 7 | |||
if dayOfWeek == 0 | |||
return "Sunday" | |||
elseif dayOfWeek == 1 | |||
return "Monday" | |||
elseif dayOfWeek == 2 | |||
return "Tuesday" | |||
elseif dayOfWeek == 3 | |||
return "Wednesday" | |||
elseif dayOfWeek == 4 | |||
return "Thursday" | |||
elseif dayOfWeek == 5 | |||
return "Friday" | |||
elseif dayOfWeek == 6 | |||
return "Saturday" | |||
endif | |||
return "" | |||
EndFunction | |||
</source> | |||
<br> |
Revision as of 14:35, 31 August 2018
Time Functions
These are some helper functions you can use to work with time in the game. I offer three ways of starting them off, as the functions will require any of the three methods.
The first method is through GetCurrentGameTime - Utility. It does the same thing as the Global GameDaysPassed only a little slower.
Float daysPassed = Utility.GetCurrentGameTime()
The second method is through the global.
GlobalVariable property GameDaysPassed auto
The last method is through GetFormFromFile and pulls the global instead of making it a property.
Float daysPassed = (Game.GetFormFromFile(0x00000039, "Fallout4.ESM") as GlobalVariable).GetValue()
Using any of them, you pass into the arguments where needed for the following function:
Float Function GetGameTime(Float afDaysPassed) Global
; Returns the number of hours passed for the current day.
Float gameTime = (afDaysPassed - afDaysPassed as int) * 24.0
if gameTime > 12.00
return gameTime - 12.00
endif
return gameTime
EndFunction
This function requires the return value from GetGameTime() above.
Float Function GetCurrentInGameTime(Float afGameTime) Global
; Returns the actual in game time. h.mm0000
return afGameTime as int + ((((afGameTime - afGameTime as int) * 60.0) as int) / 100.0)
EndFunction
String Function GetCurrentDayOfWeek(Float afDaysPassed) Global
; Returns the day of week. Returns an empty string if something went wrong.
Int dayOfWeek = afDaysPassed as int % 7
if dayOfWeek == 0
return "Sunday"
elseif dayOfWeek == 1
return "Monday"
elseif dayOfWeek == 2
return "Tuesday"
elseif dayOfWeek == 3
return "Wednesday"
elseif dayOfWeek == 4
return "Thursday"
elseif dayOfWeek == 5
return "Friday"
elseif dayOfWeek == 6
return "Saturday"
endif
return ""
EndFunction