Difference between revisions of "User:Rasikko"

From the Fallout4 CreationKit Wiki
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 functions:
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