enderalse/source/scripts/defaultinteriordoorshutscript.psc

33 lines
1.1 KiB
Plaintext

ScriptName DefaultInteriorDoorShutScript extends ObjectReference
bool Property SkipBehaviorDuringQuestStages Auto
{Default: false; if true, do not close and lock while quest stage is between X and Y of QuestToWatch}
Quest Property QuestToWatch Auto
{Default: None; which quest's stages to limit behavior during}
Int Property SkipBehaviorAtStage = 0 Auto
{Default: 0; which stage of QuestToWatch should we start skipping closing and locking behavior?}
int Property ResumeBehaviorAtStage = 0 Auto
{Default: 0; which stage of QuestToWatch should we resume closing and locking behavior?}
Event OnOpen(ObjectReference akActionRef)
if SkipBehaviorDuringQuestStages == True
int QuestStage = QuestToWatch.GetCurrentStageID()
if QuestStage >= SkipBehaviorAtStage && QuestStage < ResumeBehaviorAtStage
; debug.trace(self + "OnOpen() skipping closing and locking because quest stages prohibit.")
Return
EndIf
EndIf
If (akActionRef != (Game.GetForm(0x14) as Actor))
; debug.trace(self + "OnOpen() by Non-Player Actor. Waiting 3, then closing and locking.")
Utility.Wait(3)
Self.SetOpen(False)
Self.Lock()
EndIf
EndEvent