scriptName SoundTrap extends TrapTriggerBase ; ; ; ;================================================================ weapon property triggerEffect auto ammo property triggerEffectAmmo auto explosion property havokNudge auto ObjectReference Property ParentMarker Auto ;USKP 2.1.2 Bug #19283 import game State Active Event onBeginState() goToState("DoNothing") ; ;debug.Trace("Sound trap has fired") SetMotionType(1) objectReference selfRef = self ;goToState( "DoNothing" ) if triggerEffect triggerEffect.fire(selfRef, triggerEffectAmmo) endIf activate(self as objectReference) if triggerSound TriggerSound.play( self as ObjectReference) endIf if havokNudge self.placeAtMe(havokNudge) endIf ; USKP 2.0.1 - Detection events can't be done for ObjectReference types. Curse you Patch 1.9! if( (lastTriggerRef as Actor) != None ) CreateDetectionEvent(lastTriggerRef as actor, soundLevel) ; creates a detection event, 3 = generic event EndIf ApplyHavokImpulse(0.0, 0.0, -1.0, 15.0) playAnimation( "trigger01" ) endEvent event OnTriggerEnter( objectReference triggerRef ) endEvent event OnTriggerLeave( objectReference triggerRef ) endEvent endState State DoNothing ;Dummy state, don't do anything if animating event OnTriggerEnter( objectReference triggerRef ) endEvent event OnTriggerLeave( objectReference triggerRef ) ; USKP 2.0.1 - Returns traps to be used again once the player moves away if they should be allowed to. if( FiniteUse == false || ( FiniteUse == True && CountUsed < TriggerCount ) ) ; Defined on TrapTriggerBase goToState("Active") EndIf endEvent event OnLoad() endEvent EndState ; USKP 1.2.3 changed these two blocks to OnLoad and OnUnload because the original *CellAttach events were not the correct types. Event OnLoad() SetMotionType(4) EndEvent Event OnUnload() EndEvent event onReset() self.reset() ;USKP 2.1.2 Bug #19283 - Several refs this is used on have enable parents that cause this to spam errors. if( ParentMarker == None ) self.Disable() self.Enable() EndIf goToState("Inactive") endEvent