62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
Scriptname FXBirdFleeSCRIPT extends ObjectReference
|
|
{Triggers birds to fly away}
|
|
|
|
; Eddoursul 2024.01.21: Use states and updates, added OnReset
|
|
|
|
sound property BirdFlockSound auto
|
|
sound property BirdFlockFleeSound auto
|
|
bool property PlayerTriggered = false auto
|
|
{check if player is only actor that can trigger - Default FALSE}
|
|
|
|
int instanceID00
|
|
|
|
;*************************************************
|
|
|
|
auto state Init
|
|
Event OnCellAttach()
|
|
RegisterForSingleUpdate(0.5)
|
|
endEvent
|
|
|
|
event OnUpdate()
|
|
instanceID00 = BirdFlockSound.Play(Self)
|
|
GotoState("Waiting")
|
|
endevent
|
|
endstate
|
|
|
|
;*************************************************
|
|
|
|
State Waiting
|
|
Event onTriggerEnter(ObjectReference akActionRef)
|
|
if ! PlayerTriggered || (akActionRef as Actor && akActionRef == Game.GetForm(0x14))
|
|
GotoState("Triggered")
|
|
PlayAnimation("PlayAnim01")
|
|
BirdFlockFleeSound.Play(Self)
|
|
RegisterForSingleUpdate(0.5)
|
|
endif
|
|
endEvent
|
|
endState
|
|
|
|
;*************************************************
|
|
|
|
State Triggered
|
|
event OnUpdate()
|
|
GotoState("WaitForReset")
|
|
Sound.StopInstance(instanceID00)
|
|
instanceID00 = 0
|
|
endevent
|
|
endState
|
|
|
|
;*************************************************
|
|
|
|
State WaitForReset
|
|
event OnReset()
|
|
GotoState("Init")
|
|
; OnReset fires after onCellAttach()
|
|
if Is3DLoaded()
|
|
RegisterForSingleUpdate(0.5)
|
|
endif
|
|
endevent
|
|
endState
|
|
|
|
;*************************************************
|