enderalse/source/scripts/_00e_mq00templepuzzlescn.psc

126 lines
5.0 KiB
Plaintext

Scriptname _00E_MQ00TemplePuzzleSCN extends ObjectReference
;DRSTG08AStoneSecretDoorOpenM
Event OnActivate(ObjectReference akActionRef)
Actor PlayerRef = Game.GetForm(0x14) as Actor
if akActionRef == PlayerRef && !Activated && (PlayerRef.GetItemCount(_00E_MQ00TempleKey) >= 1)
PlayerRef.RemoveItem(_00E_MQ00TempleKey, 1)
MoveStone = true
Runenstein.enable()
;_00E_MQP03_sMechanismSomethingMissing.Show()
Self.GetNthLinkedRef(1).enable(True)
Self.GetNthLinkedRef(2).TranslateTo(3231.4490, 9968.7236, 1104.0, 0.0, 0.0, 270, 20)
StoneSound = DRSStoneRotatingDiscLPM.Play(Self.GetNthLinkedRef(2))
Sound.SetInstanceVolume(StoneSound, 5)
Utility.Wait(2.0)
Self.GetNthLinkedRef(3).enable(True)
Self.GetNthLinkedRef(4).TranslateTo(3104, 10080, 1184.0, 0.0, 0.0, 180, 20)
Utility.Wait(3.0)
Self.GetNthLinkedRef(5).enable(True)
Self.GetNthLinkedRef(6).TranslateTo(3040, 10272, 1200, 0.0, 0.0, 90, 25)
Self.GetNthLinkedRef(1).Disable(True)
Utility.Wait(3.0)
Self.GetNthLinkedRef(7).enable(True)
Self.GetNthLinkedRef(3).Disable(True)
Self.GetNthLinkedRef(8).TranslateTo(3040, 10464, 1280, 0.0, 0.0, 250, 30)
Utility.Wait(3.0)
Self.GetNthLinkedRef(9).enable(True)
Self.GetNthLinkedRef(5).Disable(True)
Self.GetNthLinkedRef(10).TranslateTo(3088, 10624, 1216, 0.0, 0.0, 90, 35)
Utility.Wait(4.5)
Self.GetNthLinkedRef(7).Disable(True)
Utility.Wait(4.9)
Self.GetNthLinkedRef(9).Disable(True)
Activated = True
ElseIf !MoveStone
_00E_MQP03_sMechanismSomethingMissing.Show()
EndIf
EndEvent
Event OnLoad()
if Count == False
_00E_Questshader.Play(Self)
Count = True
endif
; Failsave to ensure that leaving the cell does not stop the
; pillars from rising.
if MoveStone == true
if ( Self.GetNthLinkedRef(2).GetPositionZ() < 1100 || Self.GetNthLinkedRef(4).GetPositionZ() < 1180 || Self.GetNthLinkedRef(6).GetPositionZ() < 1197 || Self.GetNthLinkedRef(8).GetPositionZ() < 1276 || Self.GetNthLinkedRef(10).GetPositionZ() < 1214 )
Self.GetNthLinkedRef(1).enable(True)
Self.GetNthLinkedRef(2).TranslateTo(3231.4490, 9968.7236, 1104.0, 0.0, 0.0, 270, 20)
StoneSound = DRSStoneRotatingDiscLPM.Play(Self.GetNthLinkedRef(2))
Sound.SetInstanceVolume(StoneSound, 5)
Utility.Wait(2.0)
Self.GetNthLinkedRef(3).enable(True)
Self.GetNthLinkedRef(4).TranslateTo(3104, 10080, 1184.0, 0.0, 0.0, 180, 20)
Utility.Wait(3.0)
Self.GetNthLinkedRef(5).enable(True)
Self.GetNthLinkedRef(6).TranslateTo(3040, 10272, 1200, 0.0, 0.0, 90, 25)
Self.GetNthLinkedRef(1).Disable(True)
Utility.Wait(3.0)
Self.GetNthLinkedRef(7).enable(True)
Self.GetNthLinkedRef(3).Disable(True)
Self.GetNthLinkedRef(8).TranslateTo(3040, 10464, 1280, 0.0, 0.0, 250, 30)
Utility.Wait(3.0)
Self.GetNthLinkedRef(9).enable(True)
Self.GetNthLinkedRef(5).Disable(True)
Self.GetNthLinkedRef(10).TranslateTo(3088, 10624, 1216, 0.0, 0.0, 90, 35)
Utility.Wait(4.5)
Self.GetNthLinkedRef(7).Disable(True)
Utility.Wait(4.9)
Self.GetNthLinkedRef(9).Disable(True)
Activated = True
endif
endif
EndEvent
Event OnCellAttach()
; Failsave to ensure that leaving the cell does not stop the
; pillars from rising.
if MoveStone == true
if ( Self.GetNthLinkedRef(2).GetPositionZ() < 1100 || Self.GetNthLinkedRef(4).GetPositionZ() < 1180 || Self.GetNthLinkedRef(6).GetPositionZ() < 1197 || Self.GetNthLinkedRef(8).GetPositionZ() < 1276 || Self.GetNthLinkedRef(10).GetPositionZ() < 1214 )
Self.GetNthLinkedRef(1).enable(True)
Self.GetNthLinkedRef(2).TranslateTo(3231.4490, 9968.7236, 1104.0, 0.0, 0.0, 270, 20)
StoneSound = DRSStoneRotatingDiscLPM.Play(Self.GetNthLinkedRef(2))
Sound.SetInstanceVolume(StoneSound, 5)
Utility.Wait(2.0)
Self.GetNthLinkedRef(3).enable(True)
Self.GetNthLinkedRef(4).TranslateTo(3104, 10080, 1184.0, 0.0, 0.0, 180, 20)
Utility.Wait(3.0)
Self.GetNthLinkedRef(5).enable(True)
Self.GetNthLinkedRef(6).TranslateTo(3040, 10272, 1200, 0.0, 0.0, 90, 25)
Self.GetNthLinkedRef(1).Disable(True)
Utility.Wait(3.0)
Self.GetNthLinkedRef(7).enable(True)
Self.GetNthLinkedRef(3).Disable(True)
Self.GetNthLinkedRef(8).TranslateTo(3040, 10464, 1280, 0.0, 0.0, 250, 30)
Utility.Wait(3.0)
Self.GetNthLinkedRef(9).enable(True)
Self.GetNthLinkedRef(5).Disable(True)
Self.GetNthLinkedRef(10).TranslateTo(3088, 10624, 1216, 0.0, 0.0, 90, 35)
Utility.Wait(4.5)
Self.GetNthLinkedRef(7).Disable(True)
Utility.Wait(4.9)
Self.GetNthLinkedRef(9).Disable(True)
Activated = True
endif
endif
endevent
Function StopSound()
Sound.StopInstance(StoneSound)
EndFunction
Message Property _00E_MQP03_sMechanismTriggered Auto
Message Property _00E_MQP03_sMechanismSomethingMissing Auto
Int StoneSound
MiscObject Property _00E_MQ00TempleKey Auto
ObjectReference Property Runenstein Auto
EffectShader Property _00E_Questshader Auto
Sound Property DRSTG08AStoneSecretDoorOpenM Auto
Sound Property DRSStoneLabyrinthianCloseM Auto
Sound Property DRSStoneRotatingDiscLPM Auto
Bool Activated = False
Bool Count = False
bool MoveStone