125 lines
3.6 KiB
Plaintext
125 lines
3.6 KiB
Plaintext
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
|