56 lines
1.7 KiB
Plaintext
56 lines
1.7 KiB
Plaintext
Scriptname _00E_EngineBugfixAlias extends ReferenceAlias Hidden
|
|
|
|
int function _GetScriptVersion() Global
|
|
return 1
|
|
endFunction
|
|
|
|
Event OnInit()
|
|
Utility.Wait(0.05)
|
|
_ClearStuckHelpMessages()
|
|
EndEvent
|
|
|
|
Event OnPlayerLoadGame()
|
|
|
|
Actor PlayerREF = GetReference() as Actor
|
|
|
|
; Perks modifying armor weights need some push on each game load to work.
|
|
; The push is needed only if the player is over-encumbered on game load.
|
|
; If the player is not over-encumbered, the push is not needed because checking the inventory, picking up items, sheathing/drawing a weapon will reset the perks anyway.
|
|
If PlayerREF.IsOverEncumbered()
|
|
_ResetPerk(PlayerREF, _00E_Class_Keeper_P05_C_Conditioning)
|
|
_ResetPerk(PlayerREF, _00E_Class_Vagrant_P05_B_Lightweight)
|
|
EndIf
|
|
|
|
; ResetHelpMessage crashes the game when called in menu mode, for instance, when loading a savegame fails due to missing mods
|
|
Utility.Wait(0.05)
|
|
|
|
; If a help message is visible during game reload, it gets stuck on screen
|
|
; This workaround shows an empty message to forcefully clear the queue
|
|
_ClearStuckHelpMessages()
|
|
|
|
; Workaround for broken physics on loading saves, made on a mount
|
|
If PlayerREF.IsOnMount()
|
|
PlayerREF.Dismount()
|
|
EndIf
|
|
|
|
EndEvent
|
|
|
|
Function _ResetPerk(Actor PlayerREF, Perk p)
|
|
If PlayerREF.HasPerk(p)
|
|
PlayerREF.RemovePerk(p)
|
|
PlayerREF.AddPerk(p)
|
|
EndIf
|
|
EndFunction
|
|
|
|
Event _ClearStuckHelpMessages()
|
|
if EnderalFunctions.GetNewGameCount() > 1
|
|
Message.ResetHelpMessage("Empty")
|
|
_00E_EmptyMessage.ShowAsHelpMessage("Empty", 0.1, 10, 1)
|
|
endif
|
|
EndEvent
|
|
|
|
Perk Property _00E_Class_Keeper_P05_C_Conditioning Auto
|
|
Perk Property _00E_Class_Vagrant_P05_B_Lightweight Auto
|
|
|
|
Message Property _00E_EmptyMessage Auto
|