96 lines
2.0 KiB
Plaintext
96 lines
2.0 KiB
Plaintext
Scriptname _00E_BardMarkerScript extends ObjectReference
|
|
|
|
Import Utility
|
|
|
|
;IMPORTANT: EVERY BARD ACTOR NEEDS THE _00E_BardActorScript
|
|
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnInit()
|
|
|
|
Self.BlockActivation(True)
|
|
|
|
EndEvent
|
|
|
|
Event OnActivate(ObjectReference akActionRef)
|
|
|
|
if Self.IsActivationBlocked()
|
|
if akActionRef == Game.GetPlayer()
|
|
; Do Nothing
|
|
Else
|
|
Self.Activate(akActionRef, True)
|
|
EndIf
|
|
EndIf
|
|
|
|
EndEvent
|
|
Event OnUpdate()
|
|
|
|
If (BardREF.GetDistance(Self) < 100) && (Initiated == False)
|
|
Debug.Trace("Close enough!")
|
|
Initiated = True
|
|
StartInstrumentalSong()
|
|
Else
|
|
RegisterForSingleUpdate(1)
|
|
EndIf
|
|
|
|
EndEvent
|
|
;=====================================================================================
|
|
; FUNCTIONS
|
|
;=====================================================================================
|
|
|
|
Function WaitForBard(Actor Bard)
|
|
{Accessed from: Package _00E_UseBardMarker, OnEnd}
|
|
|
|
if Waiting == False
|
|
BardREF = Bard
|
|
RegisterForSingleUpdate(1)
|
|
Waiting = True
|
|
Else
|
|
Return
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
Function StartInstrumentalSong()
|
|
|
|
if Playing == False
|
|
Wait(1.5)
|
|
; BardREF.GetLinkedRef(BardSongMarker).Enable()
|
|
Playing = True
|
|
Else
|
|
Return
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
Function StopInstrumentalSong()
|
|
{Accessed from: Package _00E_UseBardMarker, OnEnd}
|
|
|
|
Playing = False
|
|
Waiting = False
|
|
Wait(1.5)
|
|
BardREF.GetLinkedRef(BardSongMarker).Disable()
|
|
; Sound.StopInstance(CurrentSongInstance)
|
|
|
|
EndFunction
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
int CurrentSongInstance
|
|
bool Playing
|
|
bool Waiting
|
|
bool Initiated
|
|
|
|
Actor BardREF
|
|
Sound SongToPlay
|
|
|
|
Keyword Property BardSongMarker Auto
|
|
|
|
Package Property _00E_UseBardMarker Auto
|
|
|