Scriptname _00E_CaliaFollowTriggerScript extends ObjectReference ;===================================================================================== ; EVENTS ;===================================================================================== Event OnTriggerEnter(ObjectReference akActionRef) If (akActionRef == PlayerREF) SendEnterEvent() EndIf EndEvent Event OnTriggerLeave(ObjectReference akActionRef) If (akActionRef == PlayerREF) SendExitEvent() EndIf EndEvent ;===================================================================================== ; FUNCTIONS ;===================================================================================== Function SendEnterEvent() If (CurrentQuest.GetStage() >= ValidStageMin ) && (CurrentQuest.GetStage() < ValidStageMax ) bool bWasZero If TravelStateVariable.GetValue() == 0 bWasZero = True EndIf If InTrigger == False InTrigger = True TravelStateVariable.Mod(1) EndIf If ((TravelStateVariable.GetValue() == 0) || bWasZero) && !bIsStartBox bWasZero = False If !bIsTransitionBox If _00E_CaliaEntriggerFollowNotif != None _00E_CaliaEntriggerFollowNotif.Show() EndIf If CompanionIsTalking == NONE CompanionIsTalking = Game.GetForm(0x000250BB) as GlobalVariable EndIf If CompanionIsTalking.GetValueInt() == 0 CompanionIsTalking.SetValueInt(1) _00E_MC_CaliaREF.Say(CaliaDialogue_PlayerReenters) EndIf EndIf _00E_MC_CaliaREF.EvaluatePackage() EndIf EndIf Return EndFunction Function SendExitEvent() If (CurrentQuest.GetStage() >= ValidStageMin ) && (CurrentQuest.GetStage() < ValidStageMax ) If InTrigger == True TravelStateVariable.Mod(-1) _00E_MC_CaliaREF.EvaluatePackage() InTrigger = False EndIf If (TravelStateVariable.GetValue() == 0) If !bIsTransitionBox If _00E_CaliaEntriggerStopNotif != None _00E_CaliaEntriggerStopNotif.Show() EndIf If CompanionIsTalking == NONE CompanionIsTalking = Game.GetForm(0x000250BB) as GlobalVariable EndIf If CompanionIsTalking.GetValueInt() == 0 CompanionIsTalking.SetValueInt(1) _00E_MC_CaliaREF.Say(CaliaDialogue_PlayerLeaves) EndIf EndIf _00E_MC_CaliaREF.EvaluatePackage() EndIf EndIf Return EndFunction ;===================================================================================== ; PROPERTIES ;===================================================================================== bool InTrigger bool bHasEntered int Property ValidStageMin Auto int Property ValidStageMax Auto bool Property bIsStartBox = False Auto bool Property bIsTransitionBox Auto Actor Property PlayerREF Auto Actor Property _00E_MC_CaliaREF Auto Quest Property CurrentQuest Auto GlobalVariable Property TravelStateVariable Auto GlobalVariable Property CompanionIsTalking Auto Topic Property CaliaDialogue_PlayerLeaves Auto Topic Property CaliaDialogue_PlayerReenters Auto Message Property _00E_CaliaEntriggerFollowNotif Auto Message Property _00E_CaliaEntriggerStopNotif Auto