126 lines
3.8 KiB
Plaintext
126 lines
3.8 KiB
Plaintext
Scriptname _00E_PlayerSetUpScript extends ObjectReference
|
|
{Initializes all the necessary Quests, maintains the player, contains various OnPlayerLoadGame() failsafes. This script is important for proper updating, do not overwrite it.}
|
|
|
|
int function _GetScriptVersion() Global
|
|
return 1
|
|
endFunction
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnInit()
|
|
|
|
If self != (PlayerREF as ObjectReference)
|
|
return
|
|
EndIf
|
|
|
|
PlayerREF.SetActorValue("speedMult", 95)
|
|
PlayerREF.SetActorValue("Healrate", 0)
|
|
|
|
EnableDisableKillmove()
|
|
|
|
; starts all quests that are in the formlist
|
|
Int iIndex = QuestsToStart.GetSize()
|
|
While iIndex > 0
|
|
iIndex -= 1
|
|
Quest kQuest = QuestsToStart.GetAt(iIndex) as Quest
|
|
kQuest.Start()
|
|
endwhile
|
|
|
|
EndEvent
|
|
|
|
Event OnPlayerLoadGame()
|
|
If self == (PlayerREF as ObjectReference) ; A check just in case. Most likely this condition is always True
|
|
Maintenance()
|
|
EndIf
|
|
EndEvent
|
|
|
|
|
|
;=====================================================================================
|
|
; ALL UPDATES
|
|
;=====================================================================================
|
|
|
|
Function EnableDisableKillmove()
|
|
|
|
; it seems like that this ini setting does not do stuff by itself (or it is bugged)
|
|
; therefore we need to read it from the file and change the global with which the killmoves are conditioned
|
|
|
|
If Utility.GetINIBool("bVATSDisable:VATS") == false
|
|
KillMove.SetValueInt(1)
|
|
Else
|
|
KillMove.SetValueInt(0)
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
Function SetAutoSaveInterval()
|
|
|
|
; updates the autosave interval
|
|
_00E_AutoSaveSystem_Functions AutoSaveSystem_Functions = Game.GetFormFromFile(0x00048141, "Skyrim.esm") as _00E_AutoSaveSystem_Functions
|
|
AutoSaveSystem_Functions.UpdateAutoSaveInterval()
|
|
|
|
EndFunction
|
|
|
|
Function FailsafeMQ05PrologueAliases()
|
|
|
|
; failsafe for issue 1536, fills empty aliases
|
|
If MQ05PrologueFunctions == None
|
|
MQ05PrologueFunctions = Game.GetForm(0x00033A5B) as _00E_MQ05Prologue_Functions
|
|
EndIf
|
|
MQ05PrologueFunctions.FillEmptyAliasesFailsafe()
|
|
|
|
EndFunction
|
|
|
|
Function RefreshMountNamesOnLoad()
|
|
|
|
_00E_NQ06_Functions NQ06Functions = Game.GetForm(0x725BA) as _00E_NQ06_Functions
|
|
NQ06Functions.RefreshNamesOnSaveLoad()
|
|
|
|
EndFunction
|
|
|
|
|
|
;=====================================================================================
|
|
; MAINTENANCE
|
|
;=====================================================================================
|
|
|
|
Function Maintenance()
|
|
|
|
; changes to the actor value healrate will not persist in consecutive saves
|
|
; every time a save gets loaded the healrate needs to be set to 0, otherwise it will go back again to default at 0.7
|
|
; this is called before active magic effects of potions or spells are applied to the player which could also alter the value
|
|
PlayerREF.SetActorValue("Healrate", 0)
|
|
|
|
; Workaround for broken physics on loading saves, made on a mount
|
|
If PlayerREF.IsOnMount()
|
|
PlayerREF.Dismount()
|
|
EndIf
|
|
|
|
; Clear stuck help messages, leaking between game loads
|
|
Message.ResetHelpMessage("Clear")
|
|
(Game.GetForm(0xAC80E) as Message).ShowAsHelpMessage("Clear", 0.1, 1, 1)
|
|
|
|
EnableDisableKillmove()
|
|
|
|
SetAutoSaveInterval()
|
|
|
|
FailsafeMQ05PrologueAliases()
|
|
|
|
RefreshMountNamesOnLoad()
|
|
|
|
SendModEvent("Enderal_GameLoaded")
|
|
|
|
EndFunction
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
_00E_MQ05Prologue_Functions Property MQ05PrologueFunctions Auto
|
|
|
|
Actor Property PlayerREF Auto
|
|
|
|
FormList Property QuestsToStart Auto
|
|
|
|
GlobalVariable Property KillMove Auto
|