enderalse/scripts/source/_00e_mq02jesparfollowentrigger.psc

121 lines
3.3 KiB
Plaintext

Scriptname _00E_MQ02JesparFollowEntrigger extends ObjectReference
; I have replaced this script by a modified copy of
; _00E_JesparFollowTriggerSC. -- arvisrend, 17 Aug 2016
; Changed vital parts of the script as it hasn't worked properly, -- Till, 29 March 2019
;=====================================================================================
; 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 (MQ02.GetStage() >= 140) && (MQ02.GetStage() < 160) && (PlayerREF.GetWorldSpace() != Ark)
if _00E_MQ02_TravelState.GetValue() == 0
_00E_MQ02_TravelState.SetValue(1)
if !bIsStartBox
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
ElseIf _00E_MQ02_TravelState.GetValue() == 1
_00E_MQ02_TravelState.SetValue(2)
EndIf
_00E_MC_JesparREF.EvaluatePackage()
EndIf
if PlayerREF.GetWorldSpace() == Ark && MQ02.GetStage() > 140
MQ02.SetStage(160)
EndIf
Return
EndFunction
Function SendExitEvent()
If (MQ02.GetStage() >= 140) && (MQ02.GetStage() < 160)
If _00E_MQ02_TravelState.GetValue() == 1
_00E_MQ02_TravelState.SetValue(0)
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
ElseIf _00E_MQ02_TravelState.GetValue() == 2
_00E_MQ02_TravelState.SetValue(1)
Endif
_00E_MC_JesparREF.EvaluatePackage()
EndIf
Return
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
bool Property bIsStartBox = False Auto
Actor Property PlayerREF Auto
Actor Property _00E_MC_JesparREF Auto
Quest Property MQ02 Auto
GlobalVariable Property _00E_MQ02_TravelState Auto
GlobalVariable Property CompanionIsTalking Auto
Topic Property JesparDialogue_Misc_PlayerLeavesFollowTrigger Auto
Topic Property JesparDialogue_Misc_PlayerReentersFollowTrigger Auto
Worldspace Property Ark Auto
Message Property _00E_JesparEntriggerFollowNotif Auto
Message Property _00E_JesparEntriggerStopNotif Auto