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.
 
 
 

97 lines
2.5 KiB

Scriptname _00E_ScrollUnlockAlias extends ReferenceAlias Hidden
event OnPlayerLoadGame()
if UnlockScrollEquipped()
GotoState("Equipped")
endif
endevent
Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference)
if akBaseObject as Scroll && _00E_UnlockScrolls.HasForm(akBaseObject)
GotoState("Equipped")
endif
endEvent
bool function UnlockScrollEquipped()
Actor PlayerREF = GetReference() as Actor
if PlayerREF.IsEquipped(_00E_UnlockScrolls)
return true
endif
Form leftHand = PlayerREF.GetEquippedObject(0)
return leftHand && _00E_UnlockScrolls.HasForm(leftHand)
endfunction
Event OnUpdate()
if UnlockScrollAliases.IsStopped()
if ! UnlockScrollAliases.Start()
RegisterForSingleUpdate(0.1)
endif
elseif UnlockScrollAliases.IsStopping()
RegisterForSingleUpdate(0.01)
elseif UnlockScrollAliases.IsStarting()
RegisterForSingleUpdate(0.01)
endif
EndEvent
state Equipped
event OnPlayerLoadGame()
if ! UnlockScrollEquipped()
GotoState("")
endif
endevent
event OnBeginState()
ObjectReference actorRef = GetReference()
RegisterForAnimationEvent(actorRef, "BeginCastRight")
RegisterForAnimationEvent(actorRef, "BeginCastLeft")
endevent
event OnEndState()
ObjectReference actorRef = GetReference()
UnregisterForAnimationEvent(actorRef, "BeginCastRight")
UnregisterForAnimationEvent(actorRef, "BeginCastLeft")
endevent
Event OnUpdate()
if UnlockScrollAliases.IsStopped()
if ! UnlockScrollAliases.Start()
RegisterForSingleUpdate(0.1)
endif
elseif UnlockScrollAliases.IsStopping()
RegisterForSingleUpdate(0.01)
elseif UnlockScrollAliases.IsStarting()
RegisterForSingleUpdate(0.01)
endif
EndEvent
Event OnObjectEquipped(Form akBaseObject, ObjectReference akReference)
; do nothing
endEvent
Event OnObjectUnequipped(Form akBaseObject, ObjectReference akReference)
if ! UnlockScrollEquipped()
GotoState("")
endif
endEvent
Event OnAnimationEvent(ObjectReference akSource, string asEventName)
ObjectReference crosshairRef = Game.GetCurrentCrosshairRef()
if crosshairRef
Form baseObject = crosshairRef.GetBaseObject()
if baseObject as Container || baseObject as Door
ScrollTarget.ForceRefTo(crosshairRef)
UnlockScrollAliases.Stop()
return
endif
endif
UnlockScrollAliases.Stop()
RegisterForSingleUpdate(0.01)
ScrollTarget.Clear()
endEvent
endstate
Quest Property UnlockScrollAliases Auto
FormList Property _00E_UnlockScrolls Auto
ReferenceAlias Property ScrollTarget Auto