137 lines
3.2 KiB
Plaintext
137 lines
3.2 KiB
Plaintext
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 |