62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
Scriptname _00E_ComplexFollowTrigScript extends ObjectReference
|
|
{Use this script if you have an NPC following the player. If the player leaves this box, the NPC will make a remark and stay put.
|
|
If the player returns into the triggerbox, the NPC will follow him again.}
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnTriggerEnter(ObjectReference akActionRef)
|
|
if (akActionRef == PlayerREF)
|
|
myActor = FollowingNPC.GetActorReference()
|
|
if (myActor.GetCurrentPackage() == FollowingPackage) || (myActor.GetCurrentPackage() == WaitPackage)
|
|
If (Counter.GetValueInt() == 0)
|
|
myActor.Say(NPCPlayerReturnsDialogue)
|
|
EndIf
|
|
Counter.SetValueInt(Counter.GetValueInt() + 1)
|
|
Debug.MessageBox(akActionRef + " just entered us!" + Counter.GetValue())
|
|
myActor.EvaluatePackage()
|
|
EndIf
|
|
EndIf
|
|
EndEvent
|
|
|
|
Event OnTriggerLeave(ObjectReference akActionRef)
|
|
if (akActionRef == PlayerREF)
|
|
if (myActor.GetCurrentPackage() == FollowingPackage) || (myActor.GetCurrentPackage() == WaitPackage)
|
|
Counter.SetValueInt((Counter.GetValueInt() - 1))
|
|
Debug.MessageBox(akActionRef + " just left us!" + Counter.GetValue())
|
|
myActor.EvaluatePackage()
|
|
if (Counter.GetValueInt() == 0)
|
|
myActor.Say(NPCPlayerLeavesDialogue)
|
|
EndIf
|
|
endif
|
|
endif
|
|
|
|
EndEvent
|
|
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
Actor myActor
|
|
|
|
Topic Property NPCPlayerLeavesDialogue Auto
|
|
{The topic the NPC says when the player leaves the triggerbox, such as "I'll wait for you here"}
|
|
Topic Property NPCPlayerReturnsDialogue Auto
|
|
{The topic the NPC says when the player returns, such as "Glad you're back"!}
|
|
|
|
ReferenceAlias Property FollowingNPC Auto
|
|
{The Alias of the NPC who is following the player}
|
|
|
|
Package Property FollowingPackage Auto
|
|
{The follow package that is usually running}
|
|
Package Property WaitPackage Auto
|
|
{The wait package that will run if the player leaves}
|
|
|
|
Actor Property PlayerREF Auto
|
|
|
|
GlobalVariable Property Counter Auto
|
|
{Set this to a custom global variable}
|
|
|