42 lines
950 B
Plaintext
42 lines
950 B
Plaintext
|
Scriptname _00E_GreetingTriggerScript extends ObjectReference
|
||
|
|
||
|
ActorBase Property GreeterBase Auto
|
||
|
Topic Property GreetingDialogueTopic Auto
|
||
|
Faction Property GreetingFaction Auto
|
||
|
Actor Property PlayerRef Auto
|
||
|
|
||
|
Actor akGreeter
|
||
|
Bool bGreetingCocked
|
||
|
|
||
|
Event OnTriggerEnter(ObjectReference triggerRef)
|
||
|
If triggerRef != PlayerRef || bGreetingCocked
|
||
|
Return
|
||
|
EndIf
|
||
|
|
||
|
bGreetingCocked = True
|
||
|
|
||
|
Utility.Wait(1.0)
|
||
|
|
||
|
akGreeter = Game.FindClosestReferenceOfTypeFromRef(GreeterBase, PlayerRef, 1024.0) as Actor
|
||
|
If akGreeter
|
||
|
akGreeter.AddToFaction(GreetingFaction)
|
||
|
akGreeter.Say(GreetingDialogueTopic)
|
||
|
EndIf
|
||
|
|
||
|
RegisterForSingleUpdate(5.0)
|
||
|
EndEvent
|
||
|
|
||
|
Event OnUpdate()
|
||
|
If akGreeter
|
||
|
; Force remove akGreeter from GreetingFaction, it's too late to make a sale pitch.
|
||
|
akGreeter.RemoveFromFaction(GreetingFaction)
|
||
|
akGreeter = None
|
||
|
EndIf
|
||
|
|
||
|
If PlayerRef.IsInInterior() == False
|
||
|
bGreetingCocked = False
|
||
|
Else
|
||
|
RegisterForSingleUpdate(2.0)
|
||
|
EndIf
|
||
|
EndEvent
|