885 lines
27 KiB
Plaintext
885 lines
27 KiB
Plaintext
Scriptname _00E_NQR01_Functions extends Quest Conditional
|
|
|
|
Import Utility
|
|
|
|
int function _GetScriptVersion() Global
|
|
return 1
|
|
endFunction
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnUpdateGameTime()
|
|
|
|
if GetCurrentStageID() == 25
|
|
SetObjectiveDisplayed(0, True, True)
|
|
SetCurrentStageID(30)
|
|
Elseif GetCurrentStageID() == 45
|
|
SetObjectiveDisplayed(0, True, True)
|
|
SetCurrentStageID(50)
|
|
Elseif GetCurrentStageID() == 61
|
|
SetObjectiveDisplayed(0, True, True)
|
|
SetCurrentStageID(62)
|
|
Elseif GetCurrentStageID() == 66
|
|
SetObjectiveDisplayed(0, True, True)
|
|
SetCurrentStageID(70)
|
|
EndIf
|
|
|
|
EndEvent
|
|
|
|
Event OnUpdate()
|
|
|
|
if bAnimationFired == false && !bSecondAnimation
|
|
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "attackPowerStartLeft")
|
|
RegisterForSingleUpdate(0.1)
|
|
elseif bAnimationFired == false && bSecondAnimation
|
|
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "attackPowerStartRight")
|
|
RegisterForSingleUpdate(0.1)
|
|
endIf
|
|
|
|
EndEvent
|
|
|
|
Event OnAnimationEvent(ObjectReference akSource, string asEventName)
|
|
|
|
if (akSource == FS_NQR01_Cinematic_Fake_Tharael_01) && (asEventName == "PowerAttack_Start_End")
|
|
|
|
UnregisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "PowerAttack_Start_End")
|
|
bAnimationFired = true
|
|
_00E_FS_NQR05_TharaelTeleportShock.Apply()
|
|
Teleport(FS_NQR01_Cinematic_Fake_Tharael_01, FS_NQR01_Tharael_Teleport_01, false)
|
|
_00E_FS_NQR01_TharaelIntro.Add()
|
|
Wait(0.35)
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.SetGhost(True)
|
|
FS_NQR01_Cinematic_GiantOriginMarker.KnockAreaEffect(500.0, 64)
|
|
_00E_NQR01_Battle05_Parent.PlayIdle(GiantRecoilLarge)
|
|
WPNImpactBladeVsFlesh.Play(_00E_NQR01_Battle05_Parent)
|
|
_00E_NPCOorbaya_HitHeavyM.Play(_00E_NQR01_Battle05_Parent)
|
|
Wait(0.45)
|
|
_00E_FS_NQR01_CrowdGaspM.Play(PlayerREF)
|
|
Teleport(FS_NQR01_Cinematic_Fake_Tharael_01, FS_NQR01_Tharael_Teleport_Withdraw, true)
|
|
Attack02()
|
|
|
|
elseif (akSource == FS_NQR01_Cinematic_Fake_Tharael_02) && (asEventName == "PowerAttack_Start_End")
|
|
|
|
UnregisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "PowerAttack_Start_End")
|
|
bAnimationFired = true
|
|
; Utility.Wait(0.15)
|
|
Teleport(FS_NQR01_Cinematic_Fake_Tharael_02, FS_NQR01_Tharael_Teleport_02, false)
|
|
Wait(0.35)
|
|
WPNImpactBladeVsFlesh.Play(_00E_NQR01_Battle05_Parent)
|
|
_00E_NPCOorbaya_HitM.Play(_00E_NQR01_Battle05_Parent)
|
|
_00E_NQR01_Battle05_Parent.PlayImpactEffect(PHYBodyDragon)
|
|
GAme.ShakeCamera()
|
|
InitializeCoordinates(_00E_NQR01_Battle05_Parent)
|
|
_00E_SC_TharaelREF.SetAlpha(0.0)
|
|
_00E_SC_TharaelREF.MoveTo(_00E_NQR01_Battle05_Parent, EndLocX, EndLocY, EndLocZ, false)
|
|
_00E_SC_TharaelREF.SetAngle(TargetAngleX, TargetAngleY, TargetAngleZ)
|
|
Teleport(FS_NQR01_Cinematic_Fake_Tharael_02, FS_NQR01_Tharael_Teleport_Withdraw, true)
|
|
Wait(0.45)
|
|
Stab()
|
|
endIf
|
|
|
|
EndEvent
|
|
|
|
;=====================================================================================
|
|
; FUNCTIONS
|
|
;=====================================================================================
|
|
|
|
;=======================================CINEMATIC=====================================
|
|
|
|
Function Prepare()
|
|
|
|
FS_NQR01_Battle05_CageOpenerREF.Enable()
|
|
FS_NQR01_Battle05_CageOpenerREF.MoveTo(FS_NQR01_Cinematic_OpenerREF)
|
|
AllowIdleChatter.SetValue(0)
|
|
FS_NQR01_PitFighterFacadeParentREF.Disable()
|
|
FS_NQR01_Cinematic_Stage_01.SetValueInt(1)
|
|
_00E_NQR01_Battle05_Parent.Enable()
|
|
_00E_SC_TharaelREF.Enable()
|
|
|
|
if SKSE.GetVersion()
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_02.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_02.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
|
|
_00E_SC_TharaelREF.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
|
|
_00E_SC_TharaelREF.EquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
|
|
else
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_02.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_02.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
_00E_SC_TharaelREF.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
_00E_SC_TharaelREF.equipitem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
endif
|
|
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.Enable()
|
|
FS_NQR01_Cinematic_Fake_Tharael_02.Enable()
|
|
_00E_SC_TharaelREF.MoveTo(FS_NQR01_Cinematic_Fake_Tharael_02)
|
|
|
|
;DEBUG
|
|
; _00E_NQR01_Battle05_Parent.Enable()
|
|
; _00E_NQR01_Battle05_Parent.MoveTo(FS_NQR01_Cinematic_GiantREF)
|
|
; _00E_NQR01_Battle05_Parent.EvaluatePackage()
|
|
;DEBUG
|
|
|
|
EndFunction
|
|
|
|
Function OpenDoor()
|
|
|
|
FS_NQR01_Battle05_CageOpenerREF.PlayIdle(IdleTake)
|
|
Wait(0.5)
|
|
NQR01_SC01_Battle_04_CageDoor.SetOpen(True)
|
|
_00E_Crowd_MQ14CheerM.Play(PlayerREF)
|
|
|
|
EndFunction
|
|
|
|
Function Death()
|
|
|
|
Game.ShakeCamera(afStrength = 1.0)
|
|
_00E_NQR01_Battle05_Parent.PlayImpactEffect(PHYBodyDragon)
|
|
_00E_NQR01_Battle05_Parent.PlaceAtMe(_00E_FXDustExplosionBig)
|
|
_00E_NPCOorbaya_DeathM.Play(_00E_NQR01_Battle05_Parent)
|
|
Wait(2)
|
|
FS_NQR01_Cinematic_Stage_02.SetValueInt(1)
|
|
|
|
EndFunction
|
|
|
|
Function InitializeCoordinates(Actor TargetVictim)
|
|
|
|
EndLocX = (150*Math.Sin(TargetVictim.GetAngleZ()))
|
|
EndLocY = (150*Math.Cos(TargetVictim.GetAngleZ()))
|
|
EndLocZ = 0
|
|
|
|
TargetAngleX = 0.0
|
|
TargetAngleY = 0.0
|
|
TargetAngleZ = TargetVictim.GetAngleZ() + 180
|
|
|
|
EndFunction
|
|
|
|
Function _SlowMotion(float fDuration = 5.0, bool bSound = true)
|
|
|
|
PlayerREF.AddSpell(_00E_FS_NQR05_SlowMotionSP, False)
|
|
|
|
if bSound
|
|
_00E_FS_NQR05_SlowMotion_IntroM.Play(PlayerREF)
|
|
endif
|
|
|
|
Wait(fDuration)
|
|
|
|
if bSound
|
|
_00E_FS_NQR05_SlowMotion_OutroM.Play(PlayerREF)
|
|
endif
|
|
|
|
PlayerREF.RemoveSpell(_00E_FS_NQR05_SlowMotionSP)
|
|
|
|
EndFunction
|
|
|
|
Function Stab()
|
|
|
|
_00E_NQR01_Battle05_Parent.SetGhost(False)
|
|
_00E_NQR01_Battle05_Parent.GetActorBase().SetEssential(False)
|
|
|
|
; Utility.Wait(0.1)
|
|
|
|
if _00E_SC_TharaelREF.PlayIdleWithTarget(pa_1HMKillMoveGiantA, _00E_NQR01_Battle05_Parent)
|
|
MAGIllusionReleaseAimedSDM.Play(_00E_SC_TharaelREF)
|
|
_00E_FS_NQR05_TharaelTeleportShock.Apply()
|
|
_00E_SC_TharaelREF.SetAlpha(1.0)
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
|
|
MAGIllusionFearExplosionSDM.Play(_00E_SC_TharaelREF)
|
|
;Utility.Wait(2.4)
|
|
Wait(2.0)
|
|
_SlowMotion(2)
|
|
endIf
|
|
|
|
_00E_BloodyFXShader.Play(_00E_SC_TharaelREF)
|
|
Wait(2.6)
|
|
Death()
|
|
|
|
EndFunction
|
|
|
|
Function Teleport(Actor akActor, ObjectReference objLocation, bool bOut = false)
|
|
|
|
if !bOut
|
|
_00E_FS_NQR05_TharaelTeleportShockSmallIMOD.Apply()
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Play(akActor)
|
|
else
|
|
_00E_FS_Tharael_DematerializeFXS.Play(akActor)
|
|
Wait(0.2)
|
|
endIf
|
|
|
|
akActor.MoveTo(objLocation)
|
|
MAGIllusionReleaseAimedSDM.Play(akActor)
|
|
|
|
EndFunction
|
|
|
|
Function GiantIntimidate()
|
|
|
|
FS_NQR01_Battle05_CageOpenerREF.Disable()
|
|
Debug.SendAnimationEvent(_00E_NQR01_Battle05_Parent, "aggroWarningStart")
|
|
_00E_NPCOorbaya_IdleScreamM.Play(_00E_NQR01_Battle05_Parent)
|
|
|
|
EndFunction
|
|
|
|
Function Attack01()
|
|
|
|
Game.DisablePlayerControls()
|
|
_00E_NQR01_Battle05_Parent.SetGhost(true)
|
|
bAnimationFired = false
|
|
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "IdleStop")
|
|
|
|
RegisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "PowerAttack_Start_End")
|
|
|
|
Wait(0.25)
|
|
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_01, "attackPowerStartLeft")
|
|
|
|
RegisterForSingleUpdate(0.1)
|
|
|
|
EndFunction
|
|
|
|
Function Attack02()
|
|
|
|
bSecondAnimation = true
|
|
|
|
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "IdleStop")
|
|
|
|
RegisterForAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "PowerAttack_Start_End")
|
|
|
|
Wait(0.25)
|
|
Debug.SendAnimationEvent(FS_NQR01_Cinematic_Fake_Tharael_02, "attackPowerStartRight")
|
|
|
|
RegisterForSingleUpdate(0.1)
|
|
|
|
EndFunction
|
|
|
|
;=======================================CINEMATIC=====================================
|
|
|
|
Function GiveContract()
|
|
|
|
SetObjectiveCompleted(5)
|
|
PlayerREF.AddItem(_00E_NQR01_Contract, 1, false)
|
|
|
|
EndFunction
|
|
|
|
Function HandOverContract()
|
|
|
|
SetObjectiveCompleted(10)
|
|
PlayerREF.RemoveItem(_00E_NQR01_Contract, 1, false)
|
|
|
|
EndFunction
|
|
|
|
Function StartArenaBattle(int iObjectiveIndex, Actor akActorParent, Scene scSceneToStart)
|
|
|
|
SetObjectiveCompleted(0)
|
|
int iIndex = _00E_FS_NQR04_ArenaDummyFormlist.GetSize()
|
|
While iIndex > 0
|
|
iIndex -= 1
|
|
Actor Dummy = _00E_FS_NQR04_ArenaDummyFormlist.GetAt(iIndex) as Actor
|
|
Dummy.SetGhost(1)
|
|
EndWhile
|
|
Game.DisablePlayerControls()
|
|
_00E_TeleportGlobal.SetValueInt(1)
|
|
FS_NQR01_PitFighterFacadeParentREF.Disable()
|
|
FS_NQR01_NavcutREF.Disable()
|
|
_00E_FS_NQR01_IsCommentatorTalking.SetValueInt(0)
|
|
_00E_FS_NQR01_CurrentlyInCombat.SetValueInt(1)
|
|
akActorParent.Enable()
|
|
SetObjectiveDisplayed(iObjectiveIndex)
|
|
FadeToBlackIMOD.Apply()
|
|
Wait(2)
|
|
FadeToBlackHoldIMOD.ApplyCrossFade(2)
|
|
NQR01_ArenaDoorREF.BlockActivation(True)
|
|
PlayerREF.MoveTo(NQR01_SC01_PlayerStartFightMarker)
|
|
FS_NQR01_ArenaGuardREF.Disable()
|
|
StartCombatKulisse()
|
|
FadeToBlackBackIMOD.ApplyCrossFade(3)
|
|
_00E_FS_Theriantrophist_AllowTemporaryTransform.SetValueInt(1)
|
|
scSceneToStart.ForceStart()
|
|
|
|
EndFunction
|
|
|
|
Function StartArenaCombat(Formlist flEnemies)
|
|
|
|
Game.RequestAutoSave()
|
|
_FS_Phasmalist_ControlQuest.MoveApparitionToPlayer()
|
|
Game.EnablePlayerControls()
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
|
|
AllowIdleChatter.SetValue(0)
|
|
_00E_FS_NQR01_ArenaBattleMusic.Add()
|
|
|
|
int iIndex = flEnemies.GetSize()
|
|
|
|
while iIndex > 0
|
|
|
|
iIndex -= 1
|
|
Actor akEnemy = flEnemies.GetAt(iIndex) as Actor
|
|
akEnemy.SetActorValue("Aggression", 3)
|
|
akEnemy.SetGhost(False)
|
|
akEnemy.EvaluatePackage()
|
|
|
|
endwhile
|
|
|
|
if flEnemies == _00E_NQR01_Battle05_Enemies
|
|
NQR01_SC01_Battle_04_CageDoor.SetOpen(True)
|
|
_00E_SC_TharaelREF.Enable()
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
Function StartArenaBattle01()
|
|
|
|
StartArenaBattle(15, _00E_NQR01_Battle01_Parent, NQR01_SC01_ArenaBattle_01)
|
|
|
|
EndFunction
|
|
|
|
Function StartArenaBattle02()
|
|
|
|
StartArenaBattle(25, _00E_NQR01_Battle02_Parent, NQR01_SC01_ArenaBattle_02)
|
|
|
|
EndFunction
|
|
|
|
Function StartArenaBattle03()
|
|
|
|
StartArenaBattle(30, _00E_NQR01_Battle03_Parent, NQR01_SC01_ArenaBattle_03)
|
|
|
|
EndFunction
|
|
|
|
Function StartArenaBattle04()
|
|
|
|
if NQR01_Battle04_EnemyREF == NONE
|
|
NQR01_Battle04_EnemyREF = Game.GetForm(0x00043C13) as Actor
|
|
EndIf
|
|
|
|
ArenaBattle_04_Enemy.ForceRefIfEmpty(NQR01_Battle04_EnemyREF)
|
|
|
|
if NQR01_SC01_ArenaBattle_04 != Game.GetForm(0x00043C12) as Scene
|
|
NQR01_SC01_ArenaBattle_04 = Game.GetForm(0x00043C12) as Scene
|
|
EndIf
|
|
|
|
StartArenaBattle(45, NQR01_Battle04_EnemyREF, NQR01_SC01_ArenaBattle_04)
|
|
|
|
EndFunction
|
|
|
|
|
|
Function StartArenaBattle05()
|
|
|
|
if _00E_NQR01_Battle05_Parent == NONE
|
|
_00E_NQR01_Battle05_Parent = Game.GetForm(0x00043C1C) as Actor
|
|
EndIf
|
|
|
|
ArenaBattle_05_Enemy.ForceRefIfEmpty(_00E_NQR01_Battle05_Parent)
|
|
|
|
StartArenaBattle(35, _00E_NQR01_Battle05_Parent, NQR01_SC01_ArenaBattle_05)
|
|
|
|
EndFunction
|
|
|
|
Function StopArenaCombat()
|
|
|
|
_00E_FS_Theriantrophist_AllowTemporaryTransform.SetValueInt(0)
|
|
_00E_FS_NQR01_ArenaBattleMusic.Remove()
|
|
int CrowdInstance = _00E_Crowd_MQ14CheerM.Play(PlayerREF)
|
|
Sound.SetInstanceVolume(CrowdInstance, 0.8)
|
|
_00E_FS_NQR01_CurrentlyInCombat.SetValueInt(0)
|
|
SetObjectiveCompleted(15)
|
|
FS_NQR01_ArenaGuardREF.StopCombat()
|
|
FS_NQR01_ArenaGuardREF.StopCombatAlarm()
|
|
|
|
EndFunction
|
|
|
|
Function Register()
|
|
|
|
SetObjectiveDisplayed(0, True, True)
|
|
RegisterForSingleUpdateGameTime(24)
|
|
|
|
EndFunction
|
|
|
|
Function DisableCorpsesAndAdvanceStage(Formlist flEnemies, int iDesiredStage)
|
|
|
|
_00E_TeleportGlobal.SetValueInt(0)
|
|
AllowIdleChatter.SetValue(1)
|
|
FS_NQR01_ArenaGuardREF.Enable()
|
|
Wait(5)
|
|
FadeToBlackIMOD.Apply()
|
|
Wait(2)
|
|
FadeToBlackHoldIMOD.ApplyCrossFade(2)
|
|
|
|
int iIndex = flEnemies.GetSize()
|
|
|
|
while iIndex > 0
|
|
|
|
iIndex -= 1
|
|
|
|
ObjectReference akEnemy = flEnemies.GetAt(iIndex) as ObjectReference
|
|
akEnemy.RemoveAllItems(FS_NQR01_LootChestREF)
|
|
akEnemy.Disable()
|
|
|
|
endwhile
|
|
|
|
iIndex = _00E_FS_NQR04_ArenaDummyFormlist.GetSize()
|
|
While iIndex > 0
|
|
iIndex -= 1
|
|
Actor Dummy = _00E_FS_NQR04_ArenaDummyFormlist.GetAt(iIndex) as Actor
|
|
Dummy.SetGhost(0)
|
|
EndWhile
|
|
|
|
PlayerREF.MoveTo(FS_NQR01_ReturnFromArenaMarkerREF)
|
|
_FS_TheriantrophistControlQuest.TransformBackIfTransformed()
|
|
_FS_Phasmalist_ControlQuest.MoveApparitionToPlayer()
|
|
FS_NQR01_PitFighterFacadeParentREF.Enable()
|
|
FS_NQR01_PitFighterFacadeParentREF.MoveTo(FS_NQR01_Fistfighter01_Marker)
|
|
FS_NQR01_Fistfighter02.MoveTo(FS_NQR01_Fistfighter02_Marker)
|
|
FS_NQR01_NavcutREF.Enable()
|
|
FS_NQR01_PitFighterFacadeParentREF.EvaluatePackage()
|
|
FS_NQR01_Fistfighter02.EvaluatePackage()
|
|
FS_NQR01_PitFighterFacadeParentREF.StartCombat(FS_NQR01_Fistfighter02)
|
|
Wait(3)
|
|
FadeToBlackBackIMOD.ApplyCrossFade(1)
|
|
SetCurrentStageID(iDesiredStage)
|
|
Game.RequestAutoSave()
|
|
|
|
EndFunction
|
|
|
|
Function StartCombatKulisse()
|
|
|
|
NQR01_CrowdParentREF.Enable()
|
|
|
|
EndFunction
|
|
|
|
|
|
Function GiveRewardBattle01()
|
|
|
|
SetObjectiveCompleted(20)
|
|
PlayerREF.AddItem(Gold001, __Config_iBattle01_Reward)
|
|
_00E_EPHandler.GiveEP(__Config_iBattle01_expReward)
|
|
|
|
EndFunction
|
|
|
|
Function GiveRewardBattle02()
|
|
|
|
SetObjectiveCompleted(20)
|
|
PlayerREF.AddItem(Gold001, __Config_iBattle02_Reward)
|
|
_00E_EPHandler.GiveEP(__Config_iBattle02_expReward)
|
|
|
|
EndFunction
|
|
|
|
Function GiveRewardBattle03()
|
|
|
|
SetObjectiveCompleted(20)
|
|
PlayerREF.AddItem(Gold001, __Config_iBattle03_Reward)
|
|
_00E_EPHandler.GiveEP(__Config_iBattle03_expReward)
|
|
|
|
EndFunction
|
|
|
|
Function GiveRewardBattle04()
|
|
|
|
SetObjectiveCompleted(20)
|
|
PlayerREF.AddItem(Gold001, __Config_iBattle04_Reward)
|
|
_00E_EPHandler.GiveEP(__Config_iBattle04_expReward)
|
|
|
|
EndFunction
|
|
|
|
Function GiveRewardBattle05()
|
|
|
|
SetObjectiveCompleted(20)
|
|
; Rasha says "can't pay you this time"
|
|
; PlayerREF.AddItem(Gold001, __Config_iBattle05_Reward)
|
|
_00E_EPHandler.GiveEP(__Config_iBattle05_expReward)
|
|
bAfterBattle05TalkStage = 1
|
|
|
|
EndFunction
|
|
|
|
Function FinishRashaLine()
|
|
bAfterBattle05TalkStage = 2
|
|
EndFunction
|
|
|
|
Function SetUpSC04()
|
|
|
|
_00E_FS_NQR01_Loot.Show()
|
|
_00E_SC_TharaelREF.Enable()
|
|
_00E_SC_TharaelREF.MoveTo(NQR01_SC04_TharaelMarker)
|
|
|
|
NQR01_SC04_Tharael.ForceStart()
|
|
_00E_SC_RashaREF.BlockActivation(true)
|
|
|
|
EndFunction
|
|
|
|
Function DespawnTharael()
|
|
|
|
_00E_SC_TharaelREF.Disable()
|
|
|
|
EndFunction
|
|
|
|
Function WaitForNextCombat()
|
|
|
|
FadeToBlackIMOD.Apply()
|
|
Wait(2)
|
|
FadeToBlackHoldIMOD.ApplyCrossFade(2)
|
|
|
|
if GetCurrentStageID() == 25
|
|
SetCurrentStageID(30)
|
|
Elseif GetCurrentStageID() == 45
|
|
SetCurrentStageID(50)
|
|
Elseif GetCurrentStageID() == 61
|
|
SetCurrentStageID(62)
|
|
Elseif GetCurrentStageID() == 66
|
|
SetCurrentStageID(70)
|
|
EndIf
|
|
|
|
FadeToBlackBackIMOD.ApplyCrossFade(1)
|
|
|
|
EndFunction
|
|
|
|
Function TharaelAppearInArena()
|
|
|
|
AllowIdleChatter.SetValue(0)
|
|
_00E_SC_TharaelREF.Enable()
|
|
SetObjectiveCompleted(35)
|
|
_00E_SC_TharaelREF.MoveTo(FS_NQR01_TharaelAppearREF)
|
|
_00E_SC_TharaelREF.SetAlpha(0.0)
|
|
_00E_A2_Ghostwalk_TeleportSound.Play(_00E_SC_TharaelREF)
|
|
_00E_A2_GhostwalkTeleportReappearVFX.Play(_00E_SC_TharaelREF)
|
|
Wait(1.5)
|
|
_00E_NQR01_Battle05_Parent.SetGhost(True)
|
|
_00E_A2_GhostwalkTeleportVFX.Play(_00E_SC_TharaelREF)
|
|
_00E_A2_GhostwalkTeleportReappearVFX.Stop(_00E_SC_TharaelREF)
|
|
_00E_SC_TharaelREF.PlaceAtMe(_00E_A2_GhostwalkImpactExplosion, 1)
|
|
_00E_SC_TharaelREF.SetAlpha(1.0)
|
|
_00E_NQR01_Battle05_Parent.StopCombat()
|
|
_00E_NQR01_Battle05_Parent.StopCombatAlarm()
|
|
Wait(2)
|
|
_00E_SC_TharaelREF.PlayIdle(_00E_IdleThrow)
|
|
Game.ShakeCamera()
|
|
_00E_FS_NQR01_TharaelFlashpowderImod.Apply()
|
|
MAGPowerRacialPacifyFire.Play(PlayerREF)
|
|
_00E_NPCOorbaya_IdleIntimidateM.Play(_00E_NQR01_Battle05_Parent)
|
|
Wait(1.5)
|
|
WPNBowFire.Play(PlayerREF)
|
|
Wait(0.1)
|
|
WPNBowFire.Play(PlayerREF)
|
|
Wait(0.2)
|
|
WPNBowFire.Play(PlayerREF)
|
|
Wait(0.2)
|
|
WPNImpactArrowVsFlesh.Play(PlayerREF)
|
|
Wait(0.3)
|
|
WPNImpactArrowVsFlesh.Play(PlayerREF)
|
|
Wait(0.2)
|
|
WPNImpactArrowVsFlesh.Play(PlayerREF)
|
|
_00E_NQR01_Battle05_Parent.SetGhost(False)
|
|
_00E_NQR01_Battle05_Parent.GetActorBase().SetEssential(False)
|
|
_00E_NQR01_Battle05_Parent.Kill(_00E_SC_TharaelREF)
|
|
|
|
EndFunction
|
|
|
|
Function TharaelStartCombat()
|
|
|
|
Game.RequestAutoSave()
|
|
_00E_A2_GhostwalkTeleportVFX.Stop(_00E_SC_TharaelREF)
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
|
|
AllowIdleChatter.SetValue(0)
|
|
_00E_FS_NQR01_ArenaBattleMusic.Add()
|
|
Game.EnablePlayerControls()
|
|
Game.SetPlayerAIDriven(False)
|
|
SetObjectiveDisplayed(35, False, False)
|
|
SetObjectiveDisplayed(40)
|
|
_00E_SC_TharaelREF.SetGhost(False)
|
|
Teleport(_00E_SC_TharaelREF, FS_NQR01_TharaelBeamMarker01, true)
|
|
FS_NQR01_Cinematic_Fake_Tharael_01.Disable()
|
|
FS_NQR01_Cinematic_Fake_Tharael_02.Disable()
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
|
|
_00E_SC_TharaelREF.RemoveFromFaction(PlayerAlliesFaction)
|
|
_00E_SC_TharaelREF.StartCombat(PlayerREF)
|
|
_00E_SC_TharaelREF.SetActorValue("Aggression", 3)
|
|
_00E_SC_TharaelREF.EvaluatePackage()
|
|
|
|
EndFunction
|
|
|
|
Function TharaelStopCombat()
|
|
|
|
_00E_FS_NQR01_ArenaBattleMusic.Remove()
|
|
_00E_FS_NQR01_CurrentlyInCombat.SetValueInt(0)
|
|
SetObjectiveCompleted(40)
|
|
_00E_SC_TharaelREF.StopCombat()
|
|
_00E_SC_TharaelREF.AddToFaction(PlayerAlliesFaction)
|
|
_00E_SC_TharaelREF.SetGhost(True)
|
|
_00E_SC_TharaelREF.ResetHealthAndLimbs()
|
|
_00E_SC_TharaelREF.SetActorValue("Aggression", 1)
|
|
|
|
EndFunction
|
|
|
|
Function TeleportTharaelAndPlayer()
|
|
|
|
Game.DisablePlayerControls()
|
|
_00E_SC_TharaelREF.PlayIdle(IdleMagic_01)
|
|
Debug.SendAnimationEvent(_00E_SC_TharaelREF, "IdleForceDefaultState")
|
|
Wait(1.0)
|
|
Teleport(_00E_SC_TharaelREF, NQR01_SC05_TharelMarker, true)
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
|
|
_00E_SC_TharaelREF.Disable()
|
|
_00E_SC_TharaelREF.MoveTo(NQR01_SC05_TharelMarker)
|
|
_00E_FS_NQR05_TharaelTeleportShockSmallIMOD.Apply()
|
|
Wait(0.5)
|
|
Teleport(PlayerREF, NQR01_SC05_PlayerMarker, true)
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Play(_00E_SC_TharaelREF)
|
|
_00E_TeleportImod.Apply()
|
|
|
|
if !FS_NQR01_SC8_IAmInTheWayRatREF.IsDead()
|
|
FS_NQR01_SC8_IAmInTheWayRatREF.Kill(FS_NQR01_SC8_IAmInTheWayRatREF)
|
|
EndIf
|
|
|
|
_00E_SC_TharaelREF.RemoveItem(_00E_FS_NQR_TharaelsBow, 1, true)
|
|
_00E_SC_TharaelREF.RemoveItem(_00E_FS_NQR_TharaelsArrows, 55, true)
|
|
_00E_NQR01_Battle05_Parent.Disable()
|
|
_FS_TheriantrophistControlQuest.TransformBackIfTransformed()
|
|
_FS_Phasmalist_ControlQuest.UnsummonApparitionIfExists()
|
|
|
|
EndFunction
|
|
|
|
Function StartSC05()
|
|
|
|
SetCurrentStageID(80)
|
|
Game.ForceFirstPerson()
|
|
_00E_TeleportGlobal.SetValueInt(0)
|
|
AllowIdleChatter.SetValue(1)
|
|
FS_NQR01_ArenaGuardREF.Enable()
|
|
FS_NQR01_PitFighterFacadeParentREF.Enable()
|
|
FS_NQR01_PitFighterFacadeParentREF.MoveTo(FS_NQR01_Fistfighter01_Marker)
|
|
FS_NQR01_Fistfighter02.MoveTo(FS_NQR01_Fistfighter02_Marker)
|
|
FS_NQR01_NavcutREF.Enable()
|
|
FS_NQR01_PitFighterFacadeParentREF.EvaluatePackage()
|
|
FS_NQR01_Fistfighter02.EvaluatePackage()
|
|
FS_NQR01_PitFighterFacadeParentREF.StartCombat(FS_NQR01_Fistfighter02)
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Stop(_00E_SC_TharaelREF)
|
|
_00E_FS_NQR05_TharaelMaterializeFXS.Stop(PlayerREF)
|
|
_00E_FS_Tharael_DematerializeFXS.Stop(PlayerREF)
|
|
_00E_FS_Tharael_DematerializeFXS.Stop(_00E_SC_TharaelREF)
|
|
_00E_SC_TharaelREF.MoveTo(NQR01_SC05_TharelMarker)
|
|
_00E_SC_TharaelREF.Enable()
|
|
SetObjectiveDisplayed(50)
|
|
Wait(3)
|
|
NQR01_SC05_Explanation.ForceStart()
|
|
|
|
Game.EnablePlayerControls()
|
|
|
|
EndFunction
|
|
|
|
Function GiveRewardEXP(bool bDeclined)
|
|
|
|
if SKSE.GetVersion()
|
|
_00E_SC_TharaelREF.UnEquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 1, true)
|
|
_00E_SC_TharaelREF.UnEquipItemEx(_00E_FS_NQR05_Tharael_Dagger, 2, true)
|
|
else
|
|
_00E_SC_TharaelREF.UnequipItem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
_00E_SC_TharaelREF.UnequipItem(_00E_FS_NQR05_Tharael_Dagger, true, true)
|
|
endif
|
|
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveCombatSoundtracks()
|
|
AllowIdleChatter.SetValue(1)
|
|
NQR01_SC05_Explanation.Stop()
|
|
SetObjectiveCompleted(50)
|
|
_00E_EPHandler.GiveEP(__Config_iRewardEXP)
|
|
Teleport(_00E_SC_TharaelREF, NQR01_SC01_PlayerStartFightMarker, true)
|
|
_00E_SC_TharaelREF.AddItem(_00E_FS_NQR_TharaelsBow, 1, true)
|
|
_00E_SC_TharaelREF.AddItem(_00E_FS_NQR_TharaelsArrows, 55, true)
|
|
_00E_SC_TharaelREF.Disable()
|
|
|
|
if !bDeclined
|
|
PlayerREF.AddItem(_01E_FS_TeleportrolleUnterstadt, 3)
|
|
FS_NQR02.SetCurrentStageID(5)
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
GlobalVariable Property AllowIdleChatter Auto
|
|
|
|
int __Config_iBattle01_Reward = 150
|
|
int __Config_iBattle02_Reward = 250
|
|
int __Config_iBattle03_Reward = 350
|
|
int __Config_iBattle04_Reward = 450
|
|
int __Config_iBattle05_Reward = 550
|
|
|
|
int __Config_iBattle01_expReward = 150
|
|
int __Config_iBattle02_expReward = 250
|
|
int __Config_iBattle03_expReward = 350
|
|
int __Config_iBattle04_expReward = 450
|
|
int __Config_iBattle05_expReward = 550
|
|
|
|
int __Config_iRewardEXP = 1000
|
|
|
|
Actor Property PlayerREF Auto
|
|
Actor Property _00E_SC_TharaelREF Auto
|
|
Actor Property _00E_SC_RashaREF Auto
|
|
Actor Property FS_NQR01_ArenaGuardREF Auto
|
|
Actor Property FS_NQR01_Fistfighter02 Auto
|
|
Actor Property FS_NQR01_PitFighterFacadeParentREF Auto
|
|
Actor Property FS_NQR01_SC8_IAmInTheWayRatREF Auto
|
|
|
|
; 1: The Destroyer / Deathviper
|
|
; 2: The Wanderer / The Wanderer
|
|
; 3: The Prophet / The Prophetess
|
|
int Property iPlayerNameIndex = 1 Auto Conditional Hidden
|
|
|
|
Book Property _00E_NQR01_Contract Auto
|
|
|
|
ImageSpaceModifier Property FadeToBlackIMOD Auto
|
|
ImageSpaceModifier Property FadeToBlackHoldIMOD Auto
|
|
ImageSpaceModifier Property FadeToBlackBackIMOD Auto
|
|
ImageSpaceModifier Property _00E_TeleportImod Auto
|
|
ImageSpaceModifier Property _00E_FS_NQR01_TharaelFlashpowderImod Auto
|
|
|
|
EffectShader Property _00E_EspionageFXS Auto
|
|
|
|
Scroll Property _01E_FS_TeleportrolleUnterstadt Auto
|
|
|
|
Quest Property FS_NQR02 Auto
|
|
|
|
MusicType Property _00E_Music_Combat_BonehunterNoCond Auto
|
|
|
|
MiscObject Property Gold001 Auto
|
|
|
|
Message Property _00E_FS_NQR01_Loot Auto
|
|
|
|
ObjectReference Property NQR01_SC01_PlayerStartFightMarker Auto
|
|
ObjectReference Property NQR01_CrowdParentREF Auto
|
|
ObjectReference Property FS_NQR01_ReturnFromArenaMarkerREF Auto
|
|
ObjectReference Property NQR01_ArenaDoorREF Auto
|
|
ObjectReference Property NQR01_SC04_TharaelMarker Auto
|
|
ObjectReference Property NQR01_SC01_Battle_04_CageDoor Auto
|
|
ObjectReference Property FS_NQR01_TharaelAppearREF Auto
|
|
ObjectReference Property NQR01_SC04_RashaRun001 Auto
|
|
ObjectReference Property NQR01_SC05_TharelMarker Auto
|
|
ObjectReference Property NQR01_SC05_PlayerMarker Auto
|
|
ObjectReference Property FS_NQR01_LootChestREF Auto
|
|
ObjectReference Property FS_NQR01_Fistfighter01_Marker Auto
|
|
ObjectReference Property FS_NQR01_Fistfighter02_Marker Auto
|
|
ObjectReference Property FS_NQR01_NavcutREF Auto
|
|
ObjectReference Property FS_NQR01_TharaelBeamMarker01 Auto
|
|
ObjectReference Property FS_NQR01_Cinematic_OpenerREF Auto
|
|
|
|
Formlist Property _00E_NQR01_Battle01_Enemies Auto
|
|
Formlist Property _00E_NQR01_Battle02_Enemies Auto
|
|
Formlist Property _00E_NQR01_Battle03_Enemies Auto
|
|
Formlist Property _00E_NQR01_Battle04_Enemies Auto
|
|
Formlist Property _00E_NQR01_Battle05_Enemies Auto
|
|
Formlist Property _00E_FS_NQR04_ArenaDummyFormlist Auto
|
|
|
|
MusicType Property _00E_FS_NQR01_ArenaBattleMusic Auto
|
|
MusicType Property _00E_FS_Music_Special_Character_Tharael Auto
|
|
|
|
Idle Property WebIdleExit Auto
|
|
Idle Property IdleMagic_01 Auto
|
|
Idle Property _00E_IdleThrow Auto
|
|
Idle Property IdleTake Auto
|
|
|
|
Actor Property _00E_NQR01_Battle01_Parent Auto
|
|
Actor Property _00E_NQR01_Battle02_Parent Auto
|
|
Actor Property _00E_NQR01_Battle03_Parent Auto
|
|
Actor Property _00E_NQR01_Battle05_Parent Auto
|
|
Actor Property NQR01_Battle04_EnemyREF Auto
|
|
Actor Property FS_NQR01_Battle05_CageOpenerREF Auto
|
|
|
|
GlobalVariable Property _00E_FS_NQR01_CurrentlyInCombat Auto
|
|
GlobalVariable Property FS_NQR01_Cinematic_Stage_01 Auto
|
|
GlobalVariable Property FS_NQR01_Cinematic_Stage_02 Auto
|
|
GlobalVariable Property _00E_FS_NQR01_IsCommentatorTalking Auto
|
|
GlobalVariable Property _00E_TeleportGlobal Auto
|
|
|
|
ReferenceAlias Property ArenaBattle_04_Enemy Auto
|
|
ReferenceAlias Property ArenaBattle_05_Enemy Auto
|
|
|
|
VisualEffect Property _00E_A2_GhostwalkTeleportVFX Auto
|
|
VisualEffect Property _00E_A2_GhostwalkTeleportReappearVFX Auto
|
|
|
|
Explosion Property _00E_A2_GhostwalkImpactExplosion Auto
|
|
|
|
Sound Property _00E_A2_Ghostwalk_TeleportSound Auto
|
|
Sound Property _00E_Crowd_MQ14CheerM Auto
|
|
Sound Property _00E_NPCOorbaya_IdleIntimidateM Auto
|
|
Sound Property _00E_NPCOorbaya_IdleScreamM Auto
|
|
Sound Property MAGPowerRacialPacifyFire Auto
|
|
Sound Property WPNBowFire Auto
|
|
Sound Property WPNImpactArrowVsFlesh Auto
|
|
|
|
Scene Property NQR01_SC01_ArenaBattle_01 Auto
|
|
Scene Property NQR01_SC01_ArenaBattle_02 Auto
|
|
Scene Property NQR01_SC01_ArenaBattle_03 Auto
|
|
Scene Property NQR01_SC01_ArenaBattle_04 Auto
|
|
Scene Property NQR01_SC01_ArenaBattle_05 Auto
|
|
Scene Property NQR01_SC04_Tharael Auto
|
|
Scene Property NQR01_SC05_Explanation Auto
|
|
|
|
Weapon Property _00E_FS_NQR_TharaelsBow Auto
|
|
Ammo Property _00E_FS_NQR_TharaelsArrows Auto
|
|
|
|
GlobalVariable Property _00E_FS_Theriantrophist_AllowTemporaryTransform Auto
|
|
|
|
; ==========================CINEMATIC=========================
|
|
|
|
Actor Property FS_NQR01_Cinematic_Fake_Tharael_01 Auto
|
|
Actor Property FS_NQR01_Cinematic_Fake_Tharael_02 Auto
|
|
Actor Property FS_NQR01_Cinematic_GiantREF Auto
|
|
|
|
float TargetAngleX
|
|
float TargetAngleY
|
|
float TargetAngleZ
|
|
|
|
float EndLocX
|
|
float EndLocY
|
|
float EndLocZ
|
|
|
|
bool bAnimationFired
|
|
bool bSecondAnimation
|
|
|
|
Idle Property pa_1HMKillMoveGiantA Auto
|
|
Idle Property GiantRecoilLarge Auto
|
|
Idle Property idleForceDefaultState Auto
|
|
|
|
ImpactDataSet Property PHYBodyDragon Auto
|
|
|
|
Faction Property PlayerAlliesFaction Auto
|
|
|
|
Weapon Property _00E_FS_NQR05_Tharael_Dagger Auto
|
|
|
|
Explosion Property _00E_FXDustExplosionBig Auto
|
|
|
|
EffectShader Property _00E_BloodyFXShader Auto
|
|
EffectShader Property _00E_FS_NQR05_TharaelMaterializeFXS Auto
|
|
EffectShader Property _00E_FS_Tharael_DematerializeFXS Auto
|
|
|
|
MusicType Property _00E_FS_NQR01_TharaelIntro Auto
|
|
|
|
ImageSpaceModifier Property _00E_FS_NQR05_TharaelTeleportShock Auto
|
|
ImageSpaceModifier Property _00E_FS_NQR05_TharaelTeleportShockSmallIMOD Auto
|
|
|
|
ObjectReference Property FS_NQR01_Tharael_Teleport_01 Auto
|
|
ObjectReference Property FS_NQR01_Tharael_Teleport_02 Auto
|
|
ObjectReference Property FS_NQR01_Tharael_Teleport_Withdraw Auto
|
|
ObjectReference Property FS_NQR01_Cinematic_GiantOriginMarker Auto
|
|
|
|
Sound Property _00E_NPCOorbaya_HitHeavyM Auto
|
|
Sound Property _00E_NPCOorbaya_IdleTauntM Auto
|
|
Sound Property _00E_NPCOorbaya_HitM Auto
|
|
Sound Property WPNImpactBladeVsFlesh Auto
|
|
Sound Property _00E_NPCOorbaya_DeathM Auto
|
|
Sound Property MAGIllusionReleaseAimedSDM Auto
|
|
Sound Property MAGIllusionFearExplosionSDM Auto
|
|
Sound Property _00E_FS_NQR01_CrowdGaspM Auto
|
|
|
|
; 0: no talk dones
|
|
; 1: GiveRewardBattle05 done
|
|
; 2: everything done, no more talking with Rasha
|
|
Int Property bAfterBattle05TalkStage = 0 Auto Conditional Hidden
|
|
|
|
SPELL Property _00E_FS_NQR05_SlowMotionSP Auto
|
|
|
|
Sound Property _00E_FS_NQR05_SlowMotion_IntroM Auto
|
|
|
|
Sound Property _00E_FS_NQR05_SlowMotion_OutroM Auto
|