1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

129 lines
4.3 KiB

Scriptname _00E_PlayerFunctions extends Actor
_00E_EnderalControls Property ControlRepository Auto
Float fDefaultHeadTrackTimerOldValue = 0.0
Float fStayHeadTrackTimerOldValue = 0.0
int function _GetScriptVersion() Global
return 1
endFunction
Event OnInit()
fDefaultHeadTrackTimerOldValue = Game.GetGameSettingFloat("fAIHoldDefaultHeadTrackTimer")
fStayHeadTrackTimerOldValue = Game.GetGameSettingFloat("fAIStayonScriptHeadtrack")
if ControlRepository == None
ControlRepository = Game.GetForm(0x493C2) as _00E_EnderalControls
endif
EndEvent
Event OnPlayerLoadGame()
if ControlRepository == None
ControlRepository = Game.GetForm(0x493C2) as _00E_EnderalControls
endif
EndEvent
_00E_SkillControl function GetSkillControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.SkillControl
endfunction
_00E_SympathyControl function GetSympathyControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.SympathyControl
endfunction
_00E_SoundControl function GetSoundControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.SoundControl
endfunction
_00E_VisionControl function GetVisionControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.VisionControl
endfunction
_00E_CombatMusicControl function GetCombatMusicControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.CombatMusicControl
endfunction
_00E_FadeToBlackControl function GetFadeToBlackControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.FadeToBlackControl
endfunction
_00E_TeleportControl function GetTeleportControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.TeleportControl
endfunction
_00E_SafeItemRemove function GetSafeItemRemove() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.SafeItemRemove
endfunction
_00E_BrawlControl function GetBrawlControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.BrawlControl
endfunction
_00E_MiningControl function GetMiningControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.MiningControl
endfunction
_00E_DigControl function GetDigControl() Global
return (Game.GetForm(0x14) as _00E_PlayerFunctions).ControlRepository.DigControl
endfunction
;=====================================================================================
; Stop/restart random headtracking
;=====================================================================================
Function StopRandomHeadTracking()
; Raise "change headtrack target" timers a lot so the NPCs would stare at what the scene tells them, without randomly switching to the player or other NPCs
Game.SetGameSettingFloat("fAIHoldDefaultHeadTrackTimer", 1000.0)
Game.SetGameSettingFloat("fAIStayonScriptHeadtrack", 1000.0)
EndFunction
Function ResumeRandomHeadTracking()
Game.SetGameSettingFloat("fAIHoldDefaultHeadTrackTimer", fDefaultHeadTrackTimerOldValue)
Game.SetGameSettingFloat("fAIStayonScriptHeadtrack", fStayHeadTrackTimerOldValue)
EndFunction
;=====================================================================================
; Equip/unequip torches
;=====================================================================================
Int Function _GetHandSlotEx(int iHand)
; By default, iHand = 0 for left hand, 1 for right hand
; In SKSE's "Equip Ex" functions though: iHand = 2 for left hand, 1 for right hand
Return 2 - iHand
EndFunction
Bool Function UnequipTorches(Form[] equippedTorches)
Bool unequipping = False
Int iHand = 0
While iHand < equippedTorches.Length
If GetEquippedItemType(iHand) == 11 ; A torch is in the hand?
Form torch = GetEquippedObject(iHand)
If torch
UnequipItemEx(torch, _GetHandSlotEx(iHand))
equippedTorches[iHand] = torch
unequipping = True
EndIf
EndIf
iHand += 1
EndWhile
Return unequipping
EndFunction
Function ReequipTorches(Form[] equippedTorches)
Int iHand = 0
While iHand < equippedTorches.Length
Form torch = equippedTorches[iHand]
If torch
If GetItemCount(torch) > 0
EquipItemEx(torch, _GetHandSlotEx(iHand), False, True)
EndIf
; "Forget" about the form to not keep it persistent if equippedTorches is a script's property or variable
equippedTorches[iHand] = None
EndIf
iHand += 1
EndWhile
EndFunction