1
Fork 0
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

77 lines
2.6 KiB

Scriptname _00E_ClosedChestAlias extends ReferenceAlias
Int Property LOCK_LEVEL_NOVICE = 1 AutoReadOnly
Int Property LOCK_LEVEL_APPRENTICE = 25 AutoReadOnly
Int Property LOCK_LEVEL_ADEPT = 50 AutoReadOnly
Int Property LOCK_LEVEL_EXPERT = 75 AutoReadOnly
Int Property LOCK_LEVEL_MASTER = 254 AutoReadOnly
Event OnHit(ObjectReference akAggressor, Form akSource, Projectile akProjectile, bool abPowerAttack, bool abSneakAttack, bool abBashAttack, bool abHitBlocked)
ObjectReference hitRef = GetReference()
If akAggressor != PlayerREF || hitRef.IsLocked() == False
Return
EndIf
Int projectileLevel = 0
If akProjectile == _00E_UnlockProjectile_Novice
projectileLevel = LOCK_LEVEL_NOVICE
ElseIf akProjectile == _00E_UnlockProjectile_Apprentice
projectileLevel = LOCK_LEVEL_APPRENTICE
ElseIf akProjectile == _00E_UnlockProjectile_Adept
projectileLevel = LOCK_LEVEL_ADEPT
ElseIf akProjectile == _00E_UnlockProjectile_Expert
projectileLevel = LOCK_LEVEL_EXPERT
ElseIf akProjectile == _00E_UnlockProjectile_Master
projectileLevel = LOCK_LEVEL_MASTER
ElseIf akSource
Formlist unlockSpells = _00E_ChestAndDoorUnlockScript_UnlockSpells
If unlockSpells.HasForm(akSource)
If akSource == unlockSpells.GetAt(0) as Explosion
projectileLevel = LOCK_LEVEL_APPRENTICE
ElseIf akSource == unlockSpells.GetAt(1) as Explosion
projectileLevel = LOCK_LEVEL_ADEPT
ElseIf akSource == unlockSpells.GetAt(2) as Explosion
projectileLevel = LOCK_LEVEL_EXPERT
ElseIf akSource == unlockSpells.GetAt(3) as Explosion
projectileLevel = LOCK_LEVEL_MASTER
EndIf
EndIf
EndIf
If projectileLevel > 0
Int lockLevel = hitRef.GetLockLevel()
If lockLevel > LOCK_LEVEL_MASTER
_00E_sDoorLocked.Show()
WPNTG06ControlStaffShootFailM.Play(hitRef)
ElseIf projectileLevel >= lockLevel
; Unlock
hitRef.Lock(False)
_00E_UILockpickingUnlockM.Play(hitRef)
_00E_Ability_Antimagic_FXSShader.Play(hitRef)
hitRef.PlaceAtMe(_00E_UnlockLockExplosion, 1)
EndIf
EndIf
EndEvent
Projectile Property _00E_UnlockProjectile_Novice Auto
Projectile Property _00E_UnlockProjectile_Apprentice Auto
Projectile Property _00E_UnlockProjectile_Adept Auto
Projectile Property _00E_UnlockProjectile_Expert Auto
Projectile Property _00E_UnlockProjectile_Master Auto
Message Property _00E_sDoorLocked Auto
Sound Property _00E_UILockpickingUnlockM Auto
Sound Property WPNTG06ControlStaffShootFailM Auto
EffectShader Property _00E_Ability_Antimagic_FXSShader Auto
Explosion Property _00E_UnlockLockExplosion Auto
FormList Property _00E_UnlockScrolls Auto
FormList Property _00E_ChestAndDoorUnlockScript_UnlockSpells Auto
Actor Property PlayerREF Auto