103 lines
2.2 KiB
Plaintext
103 lines
2.2 KiB
Plaintext
scriptName TrapTriggerHinge extends TrapTriggerBase
|
|
;
|
|
;
|
|
;
|
|
;================================================================
|
|
|
|
|
|
int popmessage
|
|
bool triggeredOnce = False
|
|
objectReference objectSelf
|
|
objectReference trapLinkedRef
|
|
keyword property TrapKeyword auto
|
|
message property LockpickMessage auto
|
|
sound property disarmSound auto
|
|
|
|
event onCellLoad()
|
|
objectSelf = self as ObjectReference
|
|
trapLinkedRef = getLinkedRef(TrapKeyword) as objectReference
|
|
if trapLinkedRef as trapTriggerBase
|
|
(trapLinkedRef as trapTriggerBase).triggerType = triggertype
|
|
endif
|
|
endEvent
|
|
|
|
auto State Active
|
|
;Over ride trapTriggerBase events
|
|
event onBeginState()
|
|
endevent
|
|
|
|
event onTriggerEnter(objectReference triggerRef)
|
|
endevent
|
|
|
|
event onTriggerLeave(objectReference triggerRef)
|
|
endevent
|
|
|
|
event OnMagicEffectApply(objectReference akCaster, MagicEffect akEffect)
|
|
endevent
|
|
|
|
;Activation
|
|
event onActivate(objectReference triggerRef)
|
|
if triggerRef as actor == game.getPlayer()
|
|
if !isLocked()
|
|
goToState("Disarmed")
|
|
endif
|
|
else
|
|
; ;;Debug.Trace(self + " has been activated by " + triggerRef)
|
|
goToState("Triggered")
|
|
EndIf
|
|
EndEvent
|
|
|
|
event onLockStateChanged()
|
|
if !isLocked()
|
|
goToState("Disarmed")
|
|
elseif isLockBroken()
|
|
goToState("Triggered")
|
|
else
|
|
;goToState("Active")
|
|
endif
|
|
endEvent
|
|
|
|
event onHit(ObjectReference akAggressor, Form akWeapon, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
|
|
if TriggeredOnce == False
|
|
; ;Debug.Trace(self + " has been hit by " + akAggressor)
|
|
goToState("Triggered")
|
|
EndIf
|
|
EndEvent
|
|
EndState
|
|
|
|
|
|
|
|
state Disarmed
|
|
event onBeginState()
|
|
if disarmSound
|
|
disarmSound.play(self)
|
|
endif
|
|
playanimation("Disarm01")
|
|
setDestroyed(true)
|
|
EndEvent
|
|
EndState
|
|
|
|
state Triggered
|
|
event onBeginState()
|
|
(trapLinkedRef).activate(self) ; USKP 2.0.1 - No need to have it use a variable with no purpose. "self" works just fine.
|
|
setDestroyed(true)
|
|
playAnimation("Trigger01")
|
|
EndEvent
|
|
endState
|
|
|
|
event onTriggerEnter(objectReference triggerRef)
|
|
endEvent
|
|
|
|
event onTriggerLeave(objectReference triggerRef)
|
|
endEvent
|
|
|
|
state Inactive
|
|
endState
|
|
|
|
event onReset()
|
|
self.Reset()
|
|
self.clearDestruction()
|
|
self.setDestroyed(False)
|
|
goToState("Active")
|
|
endEvent
|