Enderal SE https://mod.pub/enderal-se/38-enderal-se
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.5 KiB
47 lines
1.5 KiB
ScriptName GA_00E_DuesterPressureDoor01SCPT Extends ObjectReference
|
|
|
|
;-- Variables ---------------------------------------
|
|
|
|
;-- Properties --------------------------------------
|
|
ObjectReference Property DoortoOpen Auto
|
|
Int Property PlateState Auto
|
|
ObjectReference Property XMarkerStateA Auto
|
|
ObjectReference Property XMarkerStateB Auto
|
|
|
|
;-- Functions ---------------------------------------
|
|
|
|
; Skipped compiler generated GetState
|
|
|
|
; Skipped compiler generated GotoState
|
|
|
|
Event OnTrigger(ObjectReference triggerRef)
|
|
If PlateState == 0
|
|
XMarkerStateA.Disable(False)
|
|
Self.DoorState()
|
|
Debug.Notification("The plate is currently pressed!")
|
|
PlateState = 1
|
|
EndIf
|
|
EndEvent
|
|
|
|
Event OnTriggerLeave(ObjectReference triggerRef)
|
|
If PlateState == 1
|
|
XMarkerStateA.Enable(False)
|
|
Self.DoorState()
|
|
Debug.Notification("The plate is not pressed!")
|
|
PlateState = 0
|
|
EndIf
|
|
EndEvent
|
|
|
|
Function DoorState()
|
|
Int openState = DoortoOpen.GetOpenState()
|
|
If XMarkerStateA.IsDisabled() && XMarkerStateB.IsDisabled() && openState == 3 || openState == 4
|
|
Debug.Notification("The door is open!")
|
|
DoortoOpen.SetOpen(True)
|
|
ElseIf XMarkerStateA.IsDisabled() && XMarkerStateB.IsEnabled() && openState == 1 || openState == 2
|
|
DoortoOpen.SetOpen(False)
|
|
ElseIf XMarkerStateA.IsEnabled() && XMarkerStateB.IsDisabled() && openState == 1 || openState == 2
|
|
DoortoOpen.SetOpen(False)
|
|
ElseIf XMarkerStateA.IsEnabled() && XMarkerStateB.IsEnabled() && openState == 1 || openState == 2
|
|
DoortoOpen.SetOpen(False)
|
|
EndIf
|
|
EndFunction
|
|
|