enderalse/source/scripts/defaultenabledisablelinkedref.psc

95 lines
1.7 KiB
Plaintext

scriptName defaultEnableDisableLinkedRef extends ObjectReference
{
- This script enables or disables linked ref based on which type user defines in properties.
- Can be done OnTriggerEnter, or OnActivate, whichever happens first
- This script only fires once then disables itself (default), or can be told to go to a done state (usually for activators) with the ShouldDisable bool.
}
int property TriggerType auto
{
0 (default) - enables linked ref
1 - disables linked ref
}
bool Property PlayerOnly = TRUE auto
{
Does this only trigger for the player? (DEFAULT = TRUE)
}
bool Property Fade = FALSE auto
{
Fade in/out when enabled/disabled? (DEFAULT = FALSE)
}
bool Property ShouldDisable = TRUE auto
{
Should I disable once triggered/activated? (DEFAULT = TRUE)
}
float Property Delay = 0.0 auto
{
Delay before Enable/Disable (DEFAULT = 0.0)
}
ObjectReference myLinkedRef
auto State Waiting
Event onTriggerEnter(ObjectReference triggerRef)
if (triggerRef == Game.GetPlayer()) || (!PlayerOnly)
myLinkedRef = GetLinkedRef() as ObjectReference
utility.Wait(Delay)
if (TriggerType == 0)
myLinkedRef.enable(Fade)
elseif (TriggerType == 1)
myLinkedRef.disable(Fade)
endif
if (ShouldDisable == TRUE)
self.disable()
else
GoToState("Done")
endif
endif
endEvent
Event onActivate(ObjectReference triggerRef)
if (triggerRef == Game.GetPlayer()) || (!PlayerOnly)
myLinkedRef = GetLinkedRef() as ObjectReference
utility.Wait(Delay)
if (TriggerType == 0)
myLinkedRef.enable(Fade)
elseif (TriggerType == 1)
myLinkedRef.disable(Fade)
endif
if (ShouldDisable == TRUE)
self.disable()
else
GoToState("Done")
endif
endif
endEvent
endState
State Done
;Do Nothing
endState