Scriptname _00E_ComplexSermonTriggerBox extends ObjectReference Import Utility ;===================================================================================== ; EVENTS ;===================================================================================== Event OnInit() Ready = True EndEvent Event OnTriggerEnter(ObjectReference akActionRef) If akActionRef == PlayerREF && !SermonSceneArray[0].IsPlaying() && !__Config_Priest.IsDead() && Ready If (GameHour.GetValue() >= __Config_ValidGameTimeMax) || (GameHour.GetValue() <= __Config_ValidGameTimeMin) PreachingMarker.ForceRefTo(__Config_Priest.GetLinkedRef()) Preaching_LookMarker.ForceRefTo(__Config_Priest.GetLinkedRef(PreachingMarkerKeyword)) Preacher.ForceRefTo(__Config_Priest) If __Config_Priest.IsDisabled() __Config_Priest.Enable() EndIf __Config_Priest.MoveTo(objSermonPriestStartMarker) ChosenScene = GetRandomSermonScene() ChosenScene.ForceStart() If (ChosenScene.IsPlaying()) Ready = False RegisterForSingleUpdateGameTime(6) EndIf EndIf EndIf EndEvent Event OnUpdateGameTime() Ready = True EndEvent ;===================================================================================== ; FUNCTION ;===================================================================================== Scene Function GetRandomSermonScene() SceneToPlay = SermonSceneArray[SermonIndex] int SermonIndex = RandomInt(0, SermonSceneArray.Length) Return SceneToPlay EndFunction ;===================================================================================== ; PROPERTIES ;===================================================================================== bool Ready = True Scene Property SceneToPlay Auto Hidden Scene Property ChosenScene Auto Hidden Scene[] Property SermonSceneArray Auto ReferenceAlias Property Preacher Auto ReferenceAlias Property PreachingMarker Auto ReferenceAlias Property Preaching_LookMarker Auto Keyword Property PreachingMarkerKeyword Auto GlobalVariable Property GameHour Auto ObjectReference Property objSermonPriestStartMarker Auto Float Property __Config_ValidGameTimeMin Auto {The minimum game time} Float Property __Config_ValidGameTimeMax Auto {The max game time} Actor Property PlayerREF Auto Actor Property __Config_Priest Auto {The priest who owns this temple and who should hold the sermon}