enderalse/scripts/source/_00e_mq13c_failsavesc.psc

88 lines
2.3 KiB
Plaintext

Scriptname _00E_MQ13c_FailsaveSC extends ObjectReference
;=====================================================================================
; EVENTS
;=====================================================================================
Event OnTriggerEnter(ObjectReference akActionRef)
If !bDone && akActionRef == PlayerREF
If bYaela
PortToPlayerIfNotNearby(MQ13c._00E_MC_YaelaREF)
EndIf
If bRomance
PortToPlayerIfNotNearby(MQ13c.akCompanionRomance)
EndIf
If bKurmai
PortToPlayerIfNotNearby(MQ13c._00E_SC_KurmaiREF)
EndIf
If bNoRomance
PortToPlayerIfNotNearby(MQ13c.akCompanionNoRomance)
EndIf
EndIf
EndEvent
Event OnUpdate()
If bRomance && !PlayerREF.HasLOS(MQ13c.akCompanionRomance)
MQ13c.akCompanionRomance.MoveTo(PlayerREF)
bDone = True
ElseIf bNoRomance && !PlayerREF.HasLOS(MQ13c.akCompanionNoRomance)
MQ13c.akCompanionNoRomance.MoveTo(PlayerREF)
ElseIf bKurmai && !PlayerREF.HasLOS(MQ13c._00E_SC_KurmaiREF)
MQ13c._00E_SC_KurmaiREF.MoveTo(PlayerREF)
ElseIf bYaela && !PlayerREF.HasLOS(MQ13c._00E_MC_YaelaREF)
MQ13c._00E_MC_YaelaREF.MoveTo(PlayerREF)
Else
RegisterForSingleUpdate(1)
EndIf
EndEvent
;=====================================================================================
; FUNCTIONS
;=====================================================================================
Function PortToPlayerIfNotNearby(Actor akPortTarget)
If !__Config_bDistanceCheck
akPortTarget.MoveTo(PlayerREF)
bDone = True
Else
If !PlayerREF.HasLOS(akPortTarget)
akPortTarget.MoveTo(PlayerREF)
bDone = True
Else
RegisterForSingleUpdate(1)
EndIf
EndIf
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
bool bDone
bool Property bYaela Auto
bool Property bKurmai Auto
bool Property bRomance Auto
bool Property bNoRomance Auto
bool Property __Config_bDistanceCheck = False Auto
bool Property __Config_bResetAI = False Auto
float Property __Config_fPortingDistance = 650.0 Auto
{If distance-check is true, when should the NPC be ported to the player?}
_00E_MQ13c_Functions Property MQ13c Auto
Actor Property PlayerREF Auto