enderalse/source/scripts/_00E_TeleportControl.psc

151 lines
3.7 KiB
Plaintext

Scriptname _00E_TeleportControl extends Quest Hidden
import Utility
Function TeleportPlayer(ObjectReference TeleportTarget)
Game.DisablePlayerControls(abCamSwitch = true)
Wait(3)
_00E_EquipControl.SheatheWeapon(PlayerREF)
TeleportIn()
PlayerREF.MoveTo(TeleportTarget)
TeleportOut()
_00E_Func_RefreshFace.RefreshFace()
EndFunction
Function TeleportIn()
Game.ForceThirdPerson()
if Player.GetSex() == 0
PlayerREF.PlayIdle(IdleT02AscendMale)
Else
PlayerREF.PlayIdle(IdleT02AscendFemale)
EndIf
_00E_MagicProtectionSpellM.Play(PlayerREF)
Wait(2.7)
TimeFadeOut01FXS.Play(PlayerREF)
Wait(1.3)
_00E_TeleportImod.Apply()
Wait(2)
EndFunction
Function TeleportOut()
_00E_A2_Ghostwalk_TeleportDoneSound.Play(playerREF)
PlayerREF.PlaceAtMe(_00E_NPCOorbayaTeleportExplosionBlue, 1)
Debug.sendAnimationEvent(playerREF, "IdleWebEnterInstant")
PlayerREF.setActorValue("Variable03", 5)
TimeFadeOut01FXS.Stop(PlayerREF)
TimeFadeIn01FXS.Play(PlayerREF)
Wait(0.5)
PlayerREF.playidle(WebIdleExit)
TimeFadeIn01FXS.Stop(PlayerREF)
PlayerREF.setActorValue("Variable03", 0)
PlayerREF.DrawWeapon()
Wait(3)
Debug.SendAnimationEvent(PlayerREF, "IdleForceDefaultState")
PlayerREF.PlayIdle(IdleForceDefaultState)
PlayerREF.setActorValue("Variable03", 0)
Game.EnablePlayerControls()
_FS_Phasmalist_ControlQuest.MoveApparitionToPlayer()
RegisterForSingleUpdate(2)
EndFunction
Event OnUpdate()
Game.EnablePlayerControls()
EndEvent
Function TeleportNPC(Actor NPCToTeleport, ObjectReference TeleportTarget)
{Teleport an NPC, with animations and FX}
Weapon weap01 = NPCToTeleport.GetEquippedWeapon(0)
Weapon weap02 = NPCToTeleport.GetEquippedWeapon(1)
If weap01 != None
NPCToTeleport.UnEquipItem(weap01)
EndIf
If weap02 != None
NPCToTeleport.UnEquipItem(weap02)
EndIf
NPCToTeleport.PlayIdle(IdleMagic_01)
_00E_TeleportCastSound.Play(NPCToTeleport)
Wait(3)
if NPCToTeleport.GetActorBase().GetSex() == 0
NPCToTeleport.PlayIdle(IdleT02AscendMale)
Else
NPCToTeleport.PlayIdle(IdleT02AscendFemale)
EndIf
_00E_MagicProtectionSpellM.Play(NPCToTeleport)
Wait(4)
TimeFadeOut01FXS.Play(NPCToTeleport)
Wait(2)
_00E_A2_Ghostwalk_TeleportDoneSound.Play(NPCToTeleport)
ObjectReference TeleportFXMarker = NPCToTeleport.PlaceAtMe(XMarkerHeading, 1)
TeleportFXMarker.MoveTo(NPCToTeleport, 0.0, 0.0, 100.0)
ObjectReference FXExplosion = TeleportFXMarker.PlaceAtMe(_00E_TeleportExplosion, 1)
_00E_NPCTeleportExplosionIMOD.Apply()
Game.ShakeCamera(afStrength = 0.2)
NPCToTeleport.MoveTo(TeleportTarget)
Debug.sendAnimationEvent(NPCToTeleport, "IdleWebEnterInstant")
NPCToTeleport.setActorValue("Variable03", 5)
TimeFadeOut01FXS.Stop(NPCToTeleport)
If NPCToTeleport.Is3DLoaded()
TimeFadeIn01FXS.Play(NPCToTeleport)
EndIf
Wait(0.5)
NPCToTeleport.playidle(WebIdleExit)
Wait(1)
TimeFadeIn01FXS.Stop(NPCToTeleport)
NPCToTeleport.setActorValue("Variable03", 0)
If weap01 != None
NPCToTeleport.EquipItem(weap01)
EndIf
If weap02 != None
NPCToTeleport.EquipItem(weap02)
EndIf
EndFunction
actor Property PlayerRef Auto
Idle Property IdleT02AscendMale Auto
Idle Property IdleT02AscendFemale Auto
Sound Property _00E_MagicProtectionSpellM Auto
EffectShader Property TimeFadeOut01FXS Auto
ImageSpaceModifier Property _00E_TeleportImod Auto
Sound Property _00E_A2_Ghostwalk_TeleportDoneSound Auto
Explosion Property _00E_NPCOorbayaTeleportExplosionBlue Auto
EffectShader Property TimeFadeIn01FXS Auto
Idle Property WebIdleExit Auto
Idle Property IdleForceDefaultState Auto
ActorBase Property Player Auto
Sound Property _00E_TeleportCastSound Auto
STATIC Property XMarkerHeading Auto
ImageSpaceModifier Property _00E_NPCTeleportExplosionIMOD Auto
Idle Property IdleMagic_01 Auto
Explosion Property _00E_TeleportExplosion Auto