Scriptname _00E_JesparFollowTriggerSC 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.GetCurrentStageID() >= ValidStageMin ) && (CurrentQuest.GetCurrentStageID() < ValidStageMax ) bool bWasZero if TravelStateVariable.GetValue() == 0 bWasZero = True EndIf If InTrigger == False InTrigger = True TravelStateVariable.SetValue((TravelStateVariable.GetValue()+1)) EndIf if ((TravelStateVariable.GetValue() == 0) || bWasZero) && !bIsStartBox bWasZero = False if _00E_JesparEntriggerFollowNotif != None _00E_JesparEntriggerFollowNotif.Show() endif If CompanionIsTalking == NONE CompanionIsTalking = Game.GetForm(0x000250BB) as GlobalVariable EndIf If CompanionIsTalking.GetValueInt() == 0 CompanionIsTalking.SetValueInt(1) _00E_MC_JesparREF.Say(JesparDialogue_Misc_PlayerReentersFollowTrigger) EndIf EndIf _00E_MC_JesparREF.EvaluatePackage() EndIf EndFunction Function SendExitEvent() If (CurrentQuest.GetCurrentStageID() >= ValidStageMin) && (CurrentQuest.GetCurrentStageID() < ValidStageMax ) If InTrigger == True TravelStateVariable.SetValue((TravelStateVariable.GetValue() - 1)) _00E_MC_JesparREF.EvaluatePackage() InTrigger = False EndIf If (TravelStateVariable.GetValue() == 0) && !bIsStartBox If _00E_JesparEntriggerStopNotif != None _00E_JesparEntriggerStopNotif.Show() EndIf If CompanionIsTalking == NONE CompanionIsTalking = Game.GetForm(0x000250BB) as GlobalVariable EndIf If CompanionIsTalking.GetValueInt() == 0 CompanionIsTalking.SetValueInt(1) _00E_MC_JesparREF.Say(JesparDialogue_Misc_PlayerLeavesFollowTrigger) EndIf _00E_MC_JesparREF.EvaluatePackage() EndIf Endif EndFunction ;===================================================================================== ; PROPERTIES ;===================================================================================== bool InTrigger bool bHasEntered bool Property bIsStartBox = False Auto int Property ValidStageMax Auto int Property ValidStageMin Auto Actor Property PlayerREF Auto Actor Property _00E_MC_JesparREF Auto Quest Property CurrentQuest Auto GlobalVariable Property TravelStateVariable Auto GlobalVariable Property CompanionIsTalking Auto Topic Property JesparDialogue_Misc_PlayerLeavesFollowTrigger Auto Topic Property JesparDialogue_Misc_PlayerReentersFollowTrigger Auto Message Property _00E_JesparEntriggerFollowNotif Auto Message Property _00E_JesparEntriggerStopNotif Auto