Moved ResetArmorWeightPerks() to a separate quest

This commit is contained in:
Eddoursul 2023-10-28 00:36:54 +02:00
parent 7e77aa6acb
commit 54dfde9cbf
5 changed files with 25 additions and 23 deletions

BIN
WeightPerkQuest.esp Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,25 @@
Scriptname ArmorWeightPerkFixAlias extends ReferenceAlias Hidden
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
EndEvent
Function _ResetPerk(Actor PlayerREF, Perk p)
If PlayerREF.HasPerk(p)
PlayerREF.RemovePerk(p)
PlayerREF.AddPerk(p)
EndIf
EndFunction
Perk Property _00E_Class_Keeper_P05_C_Conditioning Auto
Perk Property _00E_Class_Vagrant_P05_B_Lightweight Auto

View File

@ -79,24 +79,6 @@ Function RefreshMountNamesOnLoad()
EndFunction
Function _ResetPerk(Perk p)
If PlayerREF.HasPerk(p)
PlayerREF.RemovePerk(p)
PlayerREF.AddPerk(p)
EndIf
EndFunction
Function ResetArmorWeightPerks()
; 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(_00E_Class_Keeper_P05_C_Conditioning)
_ResetPerk(_00E_Class_Vagrant_P05_B_Lightweight)
EndIf
EndFunction
;=====================================================================================
; MAINTENANCE
@ -120,8 +102,6 @@ Function Maintenance()
EnableDisableKillmove()
ResetArmorWeightPerks()
SetAutoSaveInterval()
FailsafeMQ05PrologueAliases()
@ -143,6 +123,3 @@ Actor Property PlayerREF Auto
FormList Property QuestsToStart Auto
GlobalVariable Property KillMove Auto
Perk Property _00E_Class_Keeper_P05_C_Conditioning Auto
Perk Property _00E_Class_Vagrant_P05_B_Lightweight Auto