2021-10-05 22:15:58 +00:00
|
|
|
Scriptname _00E_MQ14_Functions extends Quest Conditional
|
|
|
|
|
|
|
|
Import Utility
|
|
|
|
|
2024-02-29 22:28:19 +00:00
|
|
|
int function _GetScriptVersion() Global
|
|
|
|
return 1
|
|
|
|
endFunction
|
|
|
|
|
2021-10-05 22:15:58 +00:00
|
|
|
;=====================================================================================
|
|
|
|
; EVENTS
|
|
|
|
;=====================================================================================
|
|
|
|
|
|
|
|
Event OnUpdateGameTime()
|
|
|
|
|
|
|
|
SetToTen()
|
|
|
|
|
|
|
|
EndEvent
|
|
|
|
|
|
|
|
;=====================================================================================
|
|
|
|
; FUNCTIONS
|
|
|
|
;=====================================================================================
|
|
|
|
|
|
|
|
Function MoveCompanion()
|
|
|
|
|
|
|
|
if akCompanion.IsDisabled()
|
|
|
|
akCompanion.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
if akInjuredCompanion.IsDisabled()
|
|
|
|
akInjuredCompanion.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
akInjuredCompanion.MoveTo(MQ14_SC01_CompanionInjuredMarker)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function SetUp()
|
|
|
|
|
|
|
|
_00E_MC_JesparREF.BlockActivation(False)
|
|
|
|
_00E_MC_CaliaREF.BlockActivation(False)
|
|
|
|
|
|
|
|
SetObjectiveDisplayed(0)
|
|
|
|
SetObjectiveDisplayed(5)
|
|
|
|
SetObjectiveDisplayed(15)
|
|
|
|
|
|
|
|
_00E_MQ14_SC02_GuardREF.MoveTo(MQ14_SC02_SuntempleChronikerMarker)
|
|
|
|
_00E_MQ07a_ArcanistEnijaREF.MoveTo(MQ14_SC02_SuntempleChroniker02Marker)
|
|
|
|
|
|
|
|
MQ14_SC02_FlavorScene.ForceStart()
|
|
|
|
|
|
|
|
If MQ13c.akCompanionRomance
|
|
|
|
Companion.ForceRefTo(MQ13c.akCompanionRomance)
|
|
|
|
InjuredCompanion.ForceRefTo(MQ13c.akCompanionNoRomance)
|
|
|
|
Else
|
|
|
|
Companion.ForceRefTo(_00E_MC_CaliaREF)
|
|
|
|
InjuredCompanion.ForceRefTo(_00E_MC_JesparREF)
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
akCompanion = Companion.GetActorReference()
|
|
|
|
akInjuredCompanion = InjuredCompanion.GetActorReference()
|
|
|
|
akInjuredCompanion.BlockActivation(False)
|
|
|
|
Debug.SendAnimationEvent(akInjuredCompanion, "IdleForceDefaultState")
|
|
|
|
|
|
|
|
If akInjuredCompanion.GetActorBase() == _00E_MC_Calia
|
|
|
|
akInjuredCompanion.SetOutfit(_00E_MC_Calia_SimpleClothingBarefeet)
|
|
|
|
Else
|
|
|
|
akInjuredCompanion.SetOutfit(MinerClothesOutfit01NoBoots)
|
|
|
|
akCompanion.SetOutfit(_00E_MC_Calia_Outfit)
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
RegisterForSingleUpdateGameTime(48)
|
|
|
|
|
|
|
|
DaysPassedSinceSetUp = Utility.GetCurrentGameTime()
|
|
|
|
|
|
|
|
Utility.Wait(3)
|
|
|
|
|
|
|
|
SetObjectiveDisplayed(20)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
bool Function ReminderFailsave()
|
|
|
|
|
|
|
|
; Failsave to help out if the single-update event called in the
|
|
|
|
; SetUp() function gets lost somehow. This is an ugly fix for
|
|
|
|
; http://sureai.net:9898/projects/ERB/issues/ERB-92 .
|
|
|
|
|
|
|
|
if Utility.GetCurrentGameTime() > DaysPassedSinceSetUp + 2
|
|
|
|
if DaysPassedSinceSetUp >= 0
|
|
|
|
; ensure that DaysPassedSinceSetUp has ever been set!
|
|
|
|
SetToTen()
|
|
|
|
Return true
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
Return false
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function SetToTen()
|
|
|
|
|
|
|
|
; They're done deciphering the star map.
|
|
|
|
|
|
|
|
if PlayerREF.GetWorldspace() == SuntempleWorldspace
|
2024-01-10 14:08:24 +00:00
|
|
|
SetCurrentStageID(10)
|
2021-10-05 22:15:58 +00:00
|
|
|
endif
|
|
|
|
_00E_MQ14_Readyfor10.SetValue(1)
|
|
|
|
SetObjectiveDisplayed(10)
|
|
|
|
SetObjectiveCompleted(15)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function FailCompanionQuestsIfNotCompleted()
|
|
|
|
|
|
|
|
If CQJ06.IsRunning() && !CQJ06.IsCompleted()
|
2024-01-10 14:08:24 +00:00
|
|
|
CQJ06.SetCurrentStageID(30)
|
2021-10-05 22:15:58 +00:00
|
|
|
ElseIf CQC06.IsRunning() && !CQC06.IsCompleted()
|
2024-01-10 14:08:24 +00:00
|
|
|
CQC06.SetCurrentStageID(30)
|
2021-10-05 22:15:58 +00:00
|
|
|
EndIf
|
|
|
|
CQJ06.Stop()
|
|
|
|
CQC06.Stop()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function PrepareForFinalMission()
|
|
|
|
|
|
|
|
if akCompanion.IsDisabled()
|
|
|
|
akCompanion.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
if akCompanion == _00E_MC_CaliaREF
|
|
|
|
_00E_MC_CaliaREF.SetOutfit(_00E_MC_Calia_Outfit)
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
akCompanion.MoveTo(MQ14_SC03_CompanionREF)
|
|
|
|
SetObjectiveDisplayed(20)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function ShowPONRMessage()
|
|
|
|
|
|
|
|
_00E_MQ14_PointOfNoReturnMessage.Show()
|
|
|
|
; Failsave:
|
|
|
|
FailCompanionQuestsIfNotCompleted()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function SetUpFuneralScene()
|
|
|
|
|
|
|
|
_00E_MQ14_SC01_TalginTorrentalREF.MoveTo(MQ14_SC01_TorrentalRef)
|
|
|
|
MQ14_SC01_FuneralMarker.Enable()
|
|
|
|
|
|
|
|
MQ14_SC01_Funeral.ForceStart()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function DespawnFuneralScene()
|
|
|
|
|
|
|
|
MQ14_SC01_FuneralMarker.Disable()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function CompleteFuneralObjective()
|
|
|
|
|
|
|
|
SetObjectiveCompleted(5)
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_EPHandler.GiveEP(250)
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function GiveEPForCompanion()
|
|
|
|
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_EPHandler.GiveEP(250)
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function LockUpEverything()
|
|
|
|
|
|
|
|
FailCompanionQuestsIfNotCompleted()
|
|
|
|
|
|
|
|
If !IsObjectiveCompleted(5)
|
|
|
|
SetObjectiveFailed(5)
|
|
|
|
EndIf
|
|
|
|
|
2024-01-10 13:29:46 +00:00
|
|
|
If !FS_NQ01.IsCompleted()
|
2024-01-10 14:08:24 +00:00
|
|
|
FS_NQ01.SetCurrentStageID(200)
|
2021-10-05 22:15:58 +00:00
|
|
|
EndIf
|
|
|
|
|
|
|
|
SuntempleNakedNoviceREF.Disable()
|
|
|
|
MQ07a_SC14_SigilStone.Disable()
|
|
|
|
MQ07a_SC14_SigilstoneFX.Disable()
|
|
|
|
MQ07a_SC14_SigilStoneLight2.Disable()
|
|
|
|
SetObjectiveDisplayed(22)
|
|
|
|
_00E_MC_NataraREF.Disable()
|
|
|
|
_00E_MC_CaliaREF.SetOutfit(_00E_MC_Calia_Outfit)
|
|
|
|
Timescale.SetValue(0.01)
|
|
|
|
_00E_SilenceLongTransitionHighPriority.Add()
|
|
|
|
_00E_MQ11c_SilberhainRealWeather.SetActive(True)
|
|
|
|
MQ14_SC01_SuntempleDoorREF.BlockActivation(True)
|
|
|
|
_00E_TeleportGlobal.SetValueInt(1)
|
|
|
|
MQ14_SC03_ArcanistREF.Disable()
|
|
|
|
|
|
|
|
If _00E_MC_YuslanRef.IsDisabled()
|
|
|
|
_00E_MC_YuslanRef.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
_00E_MC_YuslanRef.MoveTo(MQ14_SC03_YuslanMarker)
|
|
|
|
_00E_MC_TealorREF.MoveTo(MQ14_SC03_YuslanMarker)
|
|
|
|
MQ14_SC03_Explanation.ForceStart()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function EnableBeacon()
|
|
|
|
|
|
|
|
SetObjectiveCompleted(22)
|
|
|
|
_00E_MC_LexREF.Disable()
|
|
|
|
MQ14_SC04_NoviceREF.Enable()
|
|
|
|
MQ14_SC04_NPCTrigger.Enable()
|
|
|
|
|
|
|
|
If LeuchtfeuerSwitcher.IsDisabled()
|
|
|
|
LeuchtfeuerSwitcher.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
MQ14_SC04_NoviceScene.ForceStart()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function StartPosession()
|
|
|
|
|
|
|
|
MQ14_SC04_NoviceREF.SetEyeTexture(_00E_MaleEyesPosessed)
|
|
|
|
MQ14_SC04_ArcanistREF.SetEyeTexture(_00E_MaleEyesPosessed)
|
|
|
|
MQ14_SC04_Keeper02REF.SetEyeTexture(_00E_MaleEyesPosessed)
|
|
|
|
MQ14_SC04_Keeper01REF.SetEyeTexture(_00E_MaleEyesPosessed)
|
|
|
|
MQ14_SC04_NoviceREF.GetActorBase().SetFaceMorph(3, 3)
|
|
|
|
MQ14_SC04_Keeper01REF.GetActorBase().SetFaceMorph(3, 1)
|
|
|
|
MQ14_SC04_Keeper02REF.GetActorBase().SetFaceMorph(3, 1)
|
|
|
|
MQ14_SC04_ArcanistREF.GetActorBase().SetFaceMorph(3, 1)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function SetGameTime()
|
|
|
|
|
|
|
|
FadeToBlackIMOD.Apply()
|
|
|
|
FadeToBlackHoldIMOD.ApplyCrossFade(afFadeDuration = 3.0)
|
|
|
|
Utility.Wait(3)
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_TimeControl.SkipTimeToHour(23)
|
2021-10-05 22:15:58 +00:00
|
|
|
FadeToBlackBackIMOD.ApplyCrossFade(2)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function AddCombatmusic()
|
|
|
|
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
|
2021-10-05 22:15:58 +00:00
|
|
|
_00E_SilenceLongTransitionHighPriority.Remove()
|
|
|
|
_00E_Music_Combat_ShieldbrothersNoCond.Add()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function NoviceExplode()
|
|
|
|
|
|
|
|
If _00E_MC_LexREF.IsDisabled()
|
|
|
|
_00E_MC_LexREF.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
MQ14_SC04_SmokeREF.Enable()
|
|
|
|
MQ14_SC04_HighOnesOrb01.Enable()
|
|
|
|
MQ14_SC04_HighOnesOrb02.Enable()
|
|
|
|
_00E_MC_LexREF.AddToFaction(PlayerAlliesFaction)
|
|
|
|
Game.ShakeCamera()
|
|
|
|
MQ14_SC04_BarrierREF.Enable()
|
|
|
|
_00E_Ability_StaggerSelfSpell.Cast(PlayerREF, PlayerREF)
|
|
|
|
MQ14_SC04_HighOnesOrb01.PlayAnimation("PlayAnim02")
|
|
|
|
MQ14_SC04_HighOnesOrb02.PlayAnimation("PlayAnim02")
|
|
|
|
MQ14_SC04_NoviceREF.PlaceAtMe(ExplosionIllusionMassiveDark01)
|
|
|
|
MQ14_SC04_NoviceREF.PlaceAtMe(ExplosionIllusionDark01)
|
|
|
|
ObjectReference KillMarkerNovice = MQ14_SC04_NoviceREF.PlaceAtMe(XMarker)
|
|
|
|
KillMarkerNovice.MoveTo(MQ14_SC04_NoviceREF, 0.0, 0.0, 200)
|
|
|
|
Actor NoviceSkeleton = KillMarkerNovice.PlaceActorAtMe(_00E_MQ12b_Skeleton)
|
|
|
|
NoviceSkeleton.Kill(NoviceSkeleton)
|
|
|
|
MQ14_SC04_NoviceREF.SetCriticalStage(MQ14_SC04_NoviceREF.CritStage_DisintegrateStart)
|
|
|
|
IllusionDarkMassiveImod.Apply()
|
|
|
|
MQ14_SC04_NoviceREF.AttachAshPile(DefaultAshPileGhostBlack)
|
|
|
|
MQ14_SC04_NoviceREF.SetAlpha (0.0,True)
|
|
|
|
wait(3)
|
|
|
|
_00E_MC_LexREF.MoveTo(MQ14_SC04_SpawnLexilMarker)
|
|
|
|
AtronachUnsummonDeathFXS.Stop(MQ14_SC04_NoviceREF)
|
|
|
|
MQ14_SC04_NoviceREF.SetCriticalStage(MQ14_SC04_NoviceREF.CritStage_DisintegrateEnd)
|
|
|
|
MQ14_SC04_NoviceREF.Delete()
|
|
|
|
StartCombatWithPlayer()
|
|
|
|
SetObjectiveDisplayed(27)
|
|
|
|
Game.RequestAutoSave()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function DisableBarrier()
|
|
|
|
|
|
|
|
SetObjectiveCompleted(27)
|
|
|
|
MQ14_PosessedKeeperREF.Enable()
|
|
|
|
_00E_SilenceLongTransitionHighPriority.Add()
|
|
|
|
_00E_Music_Combat_ShieldbrothersNoCond.Remove()
|
|
|
|
Game.RequestAutoSave()
|
|
|
|
MQ14_SC04_BarrierREF.PlayAnimation("TransitionAnim")
|
|
|
|
_00E_MC_LexREF.StopCombat()
|
|
|
|
_00E_MC_LexREF.StopCombatAlarm()
|
|
|
|
Utility.Wait(1.5)
|
2023-12-08 02:45:53 +00:00
|
|
|
_00E_MC_LexREF.RestoreActorValue("Health", 300)
|
2021-10-05 22:15:58 +00:00
|
|
|
_00E_MC_LexREF.ResetHealthAndLimbs()
|
|
|
|
MQ14_SC04_BarrierREF.Disable()
|
|
|
|
MQ14_SC04_HighOnesOrb01.PlayAnimation("playAnim01")
|
|
|
|
MQ14_SC04_HighOnesOrb02.PlayAnimation("playAnim01")
|
|
|
|
MQ14_SC04_HighOnesOrb02.Disable()
|
|
|
|
MQ14_SC04_HighOnesOrb01.Disable()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function StartCombatWithPlayer()
|
|
|
|
|
|
|
|
; The following three if-clauses are failsaves to ensure that the
|
|
|
|
; three enemies are inside the barrier. I have never seen this
|
|
|
|
; fail ingame, so this may be a moot issue.
|
|
|
|
if MQ14_SC04_Keeper02REF.GetDistance(MQ14_SC04_SuntempleBeaconREF) > 1200
|
|
|
|
MQ14_SC04_Keeper02REF.MoveTo(MQ14_SC04_SuntempleBeaconREF)
|
|
|
|
endif
|
|
|
|
if MQ14_SC04_Keeper01REF.GetDistance(MQ14_SC04_SuntempleBeaconREF) > 1200
|
|
|
|
MQ14_SC04_Keeper01REF.MoveTo(MQ14_SC04_SuntempleBeaconREF)
|
|
|
|
endif
|
|
|
|
if MQ14_SC04_ArcanistREF.GetDistance(MQ14_SC04_SuntempleBeaconREF) > 1200
|
|
|
|
MQ14_SC04_ArcanistREF.MoveTo(MQ14_SC04_SuntempleBeaconREF)
|
|
|
|
endif
|
|
|
|
MQ14_SC04_Keeper02REF.AddToFaction(PlayerEnemyFaction)
|
|
|
|
MQ14_SC04_Keeper01REF.AddToFaction(PlayerEnemyFaction)
|
|
|
|
MQ14_SC04_ArcanistREF.AddToFaction(PlayerEnemyFaction)
|
|
|
|
MQ14_SC04_Keeper01REF.SetActorValue("Aggression", 2)
|
|
|
|
MQ14_SC04_Keeper02REF.SetActorValue("Aggression", 2)
|
|
|
|
MQ14_SC04_ArcanistREF.SetActorValue("Aggression", 2)
|
|
|
|
MQ14_SC04_ArcanistREF.SetGhost(False)
|
|
|
|
MQ14_SC04_Keeper02REF.SetGhost(False)
|
|
|
|
MQ14_SC04_Keeper01REF.SetGhost(False)
|
|
|
|
MQ14_SC04_ArcanistREF.StartCombat(PlayerREF)
|
|
|
|
MQ14_SC04_Keeper02REF.StartCombat(PlayerREF)
|
|
|
|
MQ14_SC04_Keeper01REF.StartCombat(PlayerREF)
|
|
|
|
_00E_MC_LexREF.StartCombat(MQ14_SC04_Keeper01REF)
|
2021-10-05 22:59:59 +00:00
|
|
|
If PhasmalistControlQuest.IsApparitionSpawned()
|
|
|
|
PhasmalistControlQuest.TeleportApparitionToPlayer()
|
|
|
|
Actor akApparition = PhasmalistControlQuest.GetApparitionRef()
|
|
|
|
If akApparition
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_Func_WaitForRef.WaitForReferenceToLoad(akApparition)
|
2021-10-05 22:59:59 +00:00
|
|
|
akApparition.StartCombat(MQ14_SC04_Keeper01REF)
|
|
|
|
EndIf
|
|
|
|
EndIf
|
|
|
|
|
2021-10-05 22:15:58 +00:00
|
|
|
SetObjectiveCompleted(25)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function EnableWar()
|
|
|
|
|
|
|
|
MQ14_SC05_PropSwitcher.Enable()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function MoveTealor()
|
|
|
|
|
|
|
|
MQ14_SC04_NPCTrigger.Disable()
|
|
|
|
MQ14_SC04_CollisionBox.Disable()
|
|
|
|
ImageSpaceModifier.RemoveCrossFade()
|
|
|
|
|
|
|
|
if _00E_MC_TealorREF.IsDisabled()
|
|
|
|
_00E_MC_TealorREF.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
_00E_MC_TealorREF.MoveTo(MQ14_SC05_SpawnTealorMarker)
|
|
|
|
|
|
|
|
MQ14_SC05_Tealor.ForceStart()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function MoveTealorToLex()
|
|
|
|
|
|
|
|
_00E_MC_TealorREF.MoveTo(MQ14_SC05_SpawnTealorMarker)
|
|
|
|
Utility.Wait(1)
|
|
|
|
_00E_MC_TealorREF.MoveTo(MQ14_SC05_SpawnTealorMarker)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function StartSC06()
|
|
|
|
|
|
|
|
MQ14_SC06_Interrogation.ForceStart()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function MoveLeora()
|
|
|
|
|
|
|
|
if _00E_MC_LeoraREF.IsDisabled()
|
|
|
|
_00E_MC_LeoraREF.Enable()
|
|
|
|
EndIf
|
|
|
|
|
|
|
|
_00E_MC_LeoraREF.EquipItem(Torch01, true, false)
|
|
|
|
_00E_MC_LeoraREF.MoveTo(MQ14_SC05_SpawnTealorMarker)
|
|
|
|
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function FillTraitorScene()
|
|
|
|
|
|
|
|
MQ14_SC06_TraitorRef.Enable()
|
|
|
|
akCompanion.MoveTo(MQ14_SC06_CompanionMarker)
|
|
|
|
_00E_MC_YuslanREF.MoveTo(MQ14_SC06_CompanionMarker001)
|
2021-11-28 18:24:12 +00:00
|
|
|
|
|
|
|
; _00E_MQ14_SC04_RemoveNPCsFromBeaconSC makes a mess in SC08_SpectatorNPCArray, better clear it
|
|
|
|
int iIndex = SC08_SpectatorNPCArray.Length - 1
|
|
|
|
While iIndex >= 0
|
|
|
|
SC08_SpectatorNPCArray[iIndex].Clear()
|
|
|
|
iIndex -= 1
|
|
|
|
Endwhile
|
|
|
|
|
|
|
|
iIndex = MQ14_SC06_AvoidNPCFormlist.GetSize() - 1
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
While iIndex >= 0
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC06_AvoidNPCFormlist.GetAt(iIndex) as Actor
|
|
|
|
|
|
|
|
if Utility.RandomInt(0, 1) >= 0.5
|
|
|
|
MQ14_SC06_ArkanistFormlist.AddForm(akCurrentActor)
|
|
|
|
akCurrentActor.SetOutfit(_25E_HolyOrder_ArcanistOutfitNoHood)
|
|
|
|
EndIf
|
2021-11-28 18:24:12 +00:00
|
|
|
|
|
|
|
akCurrentActor.UnequipItem(Torch01, true, false)
|
|
|
|
akCurrentActor.RemoveItem(Torch01, 99)
|
2021-10-05 22:15:58 +00:00
|
|
|
akCurrentActor.MoveTo(MQ14_SC06_StandMarkerFormlist.GetAt(iIndex) as ObjectReference)
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_Func_WaitForRef.WaitForReferenceToLoad(akCurrentActor as ObjectReference)
|
2021-11-28 18:24:12 +00:00
|
|
|
Debug.SendAnimationEvent(akCurrentActor, "IdleStop_Loose")
|
|
|
|
SC06_AvoidNPCArray[iIndex].ForceRefTo(akCurrentActor)
|
|
|
|
akCurrentActor.SetLookAt(MQ14_SC06_TraitorRef)
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
iIndex -= 1
|
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
; SE: Moved teleporting MQ14_SC06_FlammentrunkREF to the beginning of his scene package, he goes home if teleported at this point
|
|
|
|
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_Func_WaitForRef.WaitForReferenceToLoad(MQ14_SC06_TraitorRef as ObjectReference)
|
2021-11-28 18:24:12 +00:00
|
|
|
_00E_BloodyFXShader.Play(MQ14_SC06_TraitorRef)
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function PlayBloodShader()
|
|
|
|
|
|
|
|
_00E_BloodyFXShader.Play(MQ14_SC06_TraitorRef)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function FadeToBlackTraitor()
|
|
|
|
|
|
|
|
FadeToBlackHoldIMOD.ApplyCrossFade(afFadeDuration = 3.0)
|
|
|
|
Utility.Wait(3)
|
|
|
|
MQ14_SC06_TraitorRef.MoveTo(MQ06_SC2_CaliaPortToMarkerSceneDUPLICATE003)
|
|
|
|
MQ14_SC07_KurariumGuard.Enable()
|
|
|
|
MQ14_SC06_FlammentrunkREF.MoveToMyEditorLocation()
|
|
|
|
_00E_MC_LexREF.MoveTo(MQ14_SC06_SpectatorMarker009)
|
2021-11-28 18:24:12 +00:00
|
|
|
|
|
|
|
int iIndex = MQ14_SC06_AvoidNPCFormlist.GetSize() - 1
|
|
|
|
While iIndex >= 0
|
|
|
|
(MQ14_SC06_AvoidNPCFormlist.GetAt(iIndex) as Actor).SetLookAt(_00E_MC_TealorREF)
|
|
|
|
iIndex -= 1
|
|
|
|
Endwhile
|
|
|
|
|
2021-10-05 22:15:58 +00:00
|
|
|
FadeToBlackBackIMOD.ApplyCrossFade(afFadeDuration = 3.0)
|
2021-11-28 18:24:12 +00:00
|
|
|
|
2021-10-05 22:15:58 +00:00
|
|
|
Utility.Wait(1)
|
|
|
|
MQ14_SC07_Planning.ForceStart()
|
2021-11-28 18:24:12 +00:00
|
|
|
|
2021-10-05 22:15:58 +00:00
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function AddMusic()
|
|
|
|
|
|
|
|
_00E_Music_Special_MQ06_Consecration.Add()
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function StartSC08()
|
|
|
|
|
|
|
|
SetObjectiveDisplayed(35)
|
|
|
|
|
|
|
|
MQ14_SC08_LastSpeech.ForceStart()
|
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
int iIndex = 0
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
While iIndex < MQ14_SC06_AvoidNPCFormlist.GetSize()
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC06_AvoidNPCFormlist.GetAt(iIndex) as Actor
|
|
|
|
akCurrentActor.UnequipItem(Torch01, true, false)
|
|
|
|
akCurrentActor.RemoveItem(Torch01)
|
|
|
|
|
|
|
|
SC06_AvoidNPCArray[iIndex].ForceRefTo(akCurrentActor)
|
|
|
|
|
|
|
|
Debug.SendAnimationEvent(akCurrentActor, "returnToDefault")
|
|
|
|
akCurrentActor.SetLookAt(_00E_MC_TealorREF)
|
|
|
|
akCurrentActor.EvaluatePackage()
|
|
|
|
iIndex += 1
|
|
|
|
|
|
|
|
Endwhile
|
2021-11-28 18:24:12 +00:00
|
|
|
|
|
|
|
iIndex = MQ14_SC08_SpectatorFormlist.GetSize() - 1
|
|
|
|
|
|
|
|
While iIndex >= 0
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC08_SpectatorFormlist.GetAt(iIndex) as Actor
|
|
|
|
akCurrentActor.UnequipItem(Torch01, true, false)
|
|
|
|
akCurrentActor.RemoveItem(Torch01)
|
|
|
|
SC08_SpectatorNPCArray[iIndex].ForceRefTo(akCurrentActor)
|
|
|
|
|
|
|
|
; SE: Spectators never reach the speech location through doors in time, so we teleport them to doors, and they go by foot from there
|
|
|
|
if akCurrentActor.GetWorldspace() != SuntempleWorldspace
|
|
|
|
if Utility.RandomInt(0, 1) >= 0.5
|
|
|
|
akCurrentActor.MoveTo(SunTempleEmporiumFrontDoorREF)
|
|
|
|
else
|
|
|
|
akCurrentActor.MoveTo(SunTempleQuartersDoorREF)
|
|
|
|
EndIf
|
|
|
|
Utility.wait(2.0)
|
|
|
|
akCurrentActor.ResetAI()
|
|
|
|
endif
|
|
|
|
|
|
|
|
akCurrentActor.SetLookAt(_00E_MC_TealorREF)
|
|
|
|
|
|
|
|
iIndex -= 1
|
|
|
|
|
|
|
|
Endwhile
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function FillSpectator(Actor akActor)
|
|
|
|
|
2021-10-05 22:59:59 +00:00
|
|
|
int iForceIndex
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
bool bFilled
|
|
|
|
|
|
|
|
while !bFilled && iForceIndex < 12
|
|
|
|
if !SC08_SpectatorNPCArray[iForceIndex].ForceRefIfEmpty(akActor)
|
|
|
|
iForceIndex += 1
|
|
|
|
else
|
|
|
|
bFilled = True
|
|
|
|
endif
|
|
|
|
endwhile
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function MoveTealorFailsave()
|
|
|
|
|
|
|
|
_00E_MC_TealorREF.MoveTo(MQ14_SC08_TealorIdle)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function MoveTealorToEmporium()
|
|
|
|
|
|
|
|
_00E_MC_TealorREF.MoveTo(MQ14_SC07_TealorMoveToREF)
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function PlayApplauseAndCheer()
|
|
|
|
|
|
|
|
_00E_Crowd_MQ14CheerM.Play(MQ14_SC08_SpectatorMarker004)
|
|
|
|
|
|
|
|
int iIndex = 0
|
|
|
|
|
|
|
|
While iIndex < MQ14_SC06_AvoidNPCFormlist.GetSize()
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC06_AvoidNPCFormlist.GetAt(iIndex) as Actor
|
|
|
|
akCurrentActor.PlayIdle(IdleCheerArray[Utility.RandomInt(0,5)])
|
|
|
|
iIndex += 1
|
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
|
|
|
iIndex = 0
|
|
|
|
|
|
|
|
While iIndex < MQ14_SC08_SpectatorFormlist.GetSize()
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC08_SpectatorFormlist.GetAt(iIndex) as Actor
|
|
|
|
akCurrentActor.PlayIdle(IdleCheerArray[Utility.RandomInt(0,5)])
|
|
|
|
iIndex += 1
|
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
|
|
|
Utility.Wait(4)
|
|
|
|
|
|
|
|
While iIndex < MQ14_SC06_AvoidNPCFormlist.GetSize()
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC06_AvoidNPCFormlist.GetAt(iIndex) as Actor
|
|
|
|
akCurrentActor.PlayIdle(IdleCheerArray[Utility.RandomInt(0,5)])
|
|
|
|
iIndex += 1
|
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
|
|
|
iIndex = 0
|
|
|
|
|
|
|
|
While iIndex < MQ14_SC08_SpectatorFormlist.GetSize()
|
|
|
|
|
|
|
|
Actor akCurrentActor = MQ14_SC08_SpectatorFormlist.GetAt(iIndex) as Actor
|
|
|
|
akCurrentActor.PlayIdle(IdleCheerArray[Utility.RandomInt(0,5)])
|
|
|
|
iIndex += 1
|
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
|
|
|
Utility.Wait(5)
|
|
|
|
|
|
|
|
SetObjectiveCompleted(35)
|
|
|
|
SetObjectiveDisplayed(40)
|
2024-01-10 14:08:24 +00:00
|
|
|
SetCurrentStageID(67)
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
MQ14_SC09_Tealor.ForceStart()
|
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
iIndex = SC06_AvoidNPCArray.Length - 1
|
2021-10-05 22:15:58 +00:00
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
While iIndex >= 0
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
SC06_AvoidNPCArray[iIndex].Clear()
|
2021-11-28 18:24:12 +00:00
|
|
|
iIndex -= 1
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
iIndex = SC08_SpectatorNPCArray.Length - 1
|
2021-10-05 22:15:58 +00:00
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
While iIndex >= 0
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
SC08_SpectatorNPCArray[iIndex].Clear()
|
2021-11-28 18:24:12 +00:00
|
|
|
iIndex -= 1
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
Endwhile
|
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
Function FinishQuest()
|
|
|
|
|
|
|
|
CompleteAllObjectives()
|
|
|
|
_00E_Music_Special_MQ06_Consecration.Remove()
|
|
|
|
MQ07b_NuminosREF.Disable()
|
2024-01-09 22:00:18 +00:00
|
|
|
_00E_EPHandler.GiveEP(__Config_iRewardEXP)
|
|
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveSilence()
|
2024-02-05 02:17:04 +00:00
|
|
|
_00E_PlayerFunctions.GetSoundControl().RemoveCombatSoundtracks()
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
if akCompanion == _00E_MC_CaliaREF
|
|
|
|
_00E_MC_CaliaREF.SetOutfit(_00E_MC_Calia_Outfit)
|
|
|
|
Else
|
|
|
|
_00E_MC_JesparREF.SetOutfit(_00E_MC_JesparOutfit)
|
|
|
|
EndIf
|
|
|
|
|
2024-01-10 14:08:24 +00:00
|
|
|
MQ15.SetCurrentStageID(5)
|
2021-10-05 22:15:58 +00:00
|
|
|
|
|
|
|
EndFunction
|
|
|
|
|
|
|
|
;=====================================================================================
|
|
|
|
; PROPERTIES
|
|
|
|
;=====================================================================================
|
|
|
|
|
|
|
|
; MUSIC WIEDER REMOVEN!
|
|
|
|
|
|
|
|
int Property __Config_iRewardEXP = 1000 Auto
|
|
|
|
|
|
|
|
bool Property bSaidGoodbyeToCompanion Auto Conditional Hidden
|
|
|
|
|
|
|
|
float DaysPassedSinceSetUp = -5.000
|
|
|
|
|
|
|
|
_00E_MQ13c_Functions Property MQ13c Auto
|
|
|
|
_FS_Phasmalist_ControlQuest Property PhasmalistControlQuest auto
|
|
|
|
|
|
|
|
Activator Property DefaultAshPileGhostBlack Auto
|
|
|
|
|
|
|
|
ReferenceAlias Property Companion Auto
|
|
|
|
ReferenceAlias Property InjuredCompanion Auto
|
|
|
|
|
|
|
|
ReferenceAlias[] Property SC06_AvoidNPCArray Auto
|
|
|
|
ReferenceAlias[] Property SC08_SpectatorNPCArray Auto
|
|
|
|
|
|
|
|
ImageSpaceModifier Property IllusionDarkMassiveImod Auto
|
|
|
|
ImageSpaceModifier Property FadeToBlackIMOD Auto
|
|
|
|
ImageSpaceModifier Property FadeToBlackBackIMOD Auto
|
|
|
|
ImageSpaceModifier Property FadeToBlackHoldIMOD Auto
|
|
|
|
|
|
|
|
Message Property _00E_MQ14_PointOfNoReturnMessage Auto
|
|
|
|
|
|
|
|
Faction Property PlayerAlliesFaction Auto
|
|
|
|
Faction Property PlayerEnemyFaction Auto
|
|
|
|
|
|
|
|
Sound Property _00E_Crowd_MQ14CheerM Auto
|
|
|
|
|
|
|
|
Actor Property _00E_MQ14_SC01_TalginTorrentalREF Auto
|
|
|
|
Actor Property _00E_MQ07a_ArcanistEnijaREF Auto
|
|
|
|
Actor Property _00E_MQ14_SC02_GuardREF Auto
|
|
|
|
Actor Property PlayerREF Auto
|
|
|
|
Actor Property MQ14_SC04_NoviceREF Auto
|
|
|
|
Actor Property MQ14_SC04_ArcanistREF Auto
|
|
|
|
Actor Property MQ14_SC04_Keeper01REF Auto
|
|
|
|
Actor Property MQ14_SC04_Keeper02REF Auto
|
|
|
|
Actor Property _00E_MC_LexREF Auto
|
|
|
|
Actor Property _00E_MC_TealorREF Auto
|
|
|
|
Actor Property _00E_MC_YuslanREF Auto
|
|
|
|
Actor Property _00E_MC_LeoraREF Auto
|
|
|
|
Actor Property MQ14_SC06_TraitorRef Auto
|
|
|
|
Actor Property _00E_MC_NataraREF Auto
|
|
|
|
Actor Property akCompanion Auto Hidden
|
|
|
|
Actor Property akInjuredCompanion Auto Hidden
|
|
|
|
Actor Property _00E_MC_JesparREF Auto
|
|
|
|
Actor Property _00E_MC_CaliaREF Auto
|
|
|
|
Actor Property MQ14_SC03_ArcanistREF Auto
|
|
|
|
Actor Property MQ14_SC06_FlammentrunkREF Auto
|
|
|
|
Actor Property MQ14_SC07_KurariumGuard Auto
|
|
|
|
|
|
|
|
Explosion Property ExplosionIllusionDark01 Auto
|
|
|
|
Explosion Property ExplosionIllusionMassiveDark01 Auto
|
|
|
|
|
|
|
|
TextureSet Property _00E_MaleEyesPosessed Auto
|
|
|
|
|
|
|
|
ActorBase Property _00E_MQ12b_Skeleton Auto
|
|
|
|
ActorBase Property _00E_MC_Calia Auto
|
|
|
|
|
|
|
|
Light Property Torch01 Auto
|
|
|
|
|
|
|
|
MusicType Property _00E_SilenceLongTransitionHighPriority Auto
|
|
|
|
MusicType Property _00E_Music_Combat_ShieldbrothersNoCond Auto
|
|
|
|
MusicType Property _00E_Music_Special_MQ06_Consecration Auto
|
|
|
|
|
|
|
|
EffectShader Property AtronachUnsummonDeathFXS Auto
|
|
|
|
EffectShader Property _00E_BloodyFXShader Auto
|
|
|
|
|
|
|
|
GlobalVariable Property _00E_TeleportGlobal Auto
|
|
|
|
GlobalVariable Property Timescale Auto
|
|
|
|
GlobalVariable Property _00E_MQ14_Readyfor10 Auto
|
|
|
|
|
|
|
|
Outfit Property _00E_MC_Calia_SimpleClothingBarefeet Auto
|
|
|
|
Outfit Property MinerClothesOutfit01NoBoots Auto
|
|
|
|
Outfit Property _25E_HolyOrder_ArcanistOutfitNoHood Auto
|
|
|
|
Outfit Property _00E_MC_Calia_Outfit Auto
|
|
|
|
Outfit Property _00E_MC_JesparOutfit Auto
|
|
|
|
|
|
|
|
Spell Property _00E_Ability_StaggerSelfSpell Auto
|
|
|
|
|
|
|
|
Quest Property MQ15 Auto
|
|
|
|
Quest Property CQJ06 Auto
|
|
|
|
Quest Property CQC06 Auto
|
|
|
|
Quest Property FS_NQ01 Auto
|
|
|
|
|
|
|
|
Static Property XMarker Auto
|
|
|
|
|
|
|
|
Weather Property _00E_MQ11c_SilberhainRealWeather Auto
|
|
|
|
|
|
|
|
Formlist Property MQ14_SC06_AvoidNPCFormlist Auto
|
|
|
|
Formlist Property MQ14_SC06_ArkanistFormlist Auto
|
|
|
|
Formlist Property MQ14_SC06_StandMarkerFormlist Auto
|
|
|
|
Formlist Property MQ14_SC08_SpectatorFormlist Auto
|
|
|
|
|
|
|
|
Idle[] Property IdleCheerArray Auto
|
|
|
|
|
|
|
|
ObjectReference Property MQ14_SC01_FuneralMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC02_SuntempleChronikerMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC02_SuntempleChroniker02Marker Auto
|
|
|
|
ObjectReference Property MQ14_SC03_CompanionREF Auto
|
|
|
|
ObjectReference Property MQ14_SC01_SuntempleDoorREF Auto
|
|
|
|
ObjectReference Property LeuchtfeuerSwitcher Auto
|
|
|
|
ObjectReference Property MQ14_SC04_SpawnLexilMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC04_SuntempleBeaconREF Auto
|
|
|
|
ObjectReference Property MQ14_SC04_BarrierREF Auto
|
|
|
|
ObjectReference Property MQ14_SC04_NPCTrigger Auto
|
|
|
|
ObjectReference Property MQ14_SC05_PropSwitcher Auto
|
|
|
|
ObjectReference Property MQ14_SC05_SpawnTealorMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC06_TraitorMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC06_CompanionMarker Auto
|
|
|
|
ObjectReference Property MQ06_SC2_CaliaPortToMarkerSceneDUPLICATE003 Auto
|
|
|
|
ObjectReference Property MQ14_SC08_SpectatorMarker004 Auto
|
|
|
|
ObjectReference Property MQ14_SC01_CompanionInjuredMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC01_TorrentalRef Auto
|
|
|
|
ObjectReference Property MQ14_SC03_YuslanMarker Auto
|
|
|
|
ObjectReference Property MQ14_SC06_CompanionMarker001 Auto
|
|
|
|
ObjectReference Property MQ14_SC06_SpectatorMarker009 Auto
|
|
|
|
ObjectReference Property MQ14_SC04_HighOnesOrb02 Auto
|
|
|
|
ObjectReference Property MQ14_SC04_HighOnesOrb01 Auto
|
|
|
|
ObjectReference Property MQ14_SC04_SmokeREF Auto
|
|
|
|
ObjectReference Property MQ14_SC07_TealorMoveToREF Auto
|
|
|
|
ObjectReference Property MQ14_SC04_CollisionBox Auto
|
|
|
|
ObjectReference Property MQ07a_SC14_SigilStone Auto
|
|
|
|
ObjectReference Property MQ07a_SC14_SigilstoneFX Auto
|
|
|
|
ObjectReference Property MQ07a_SC14_SigilStoneLight2 Auto
|
|
|
|
ObjectReference Property MQ14_SC08_TealorIdle Auto
|
|
|
|
ObjectReference Property MQ07b_NuminosREF Auto
|
|
|
|
ObjectReference Property SuntempleNakedNoviceREF Auto
|
|
|
|
ObjectReference Property MQ14_PosessedKeeperREF Auto
|
|
|
|
|
|
|
|
Scene Property MQ14_SC01_Funeral Auto
|
|
|
|
Scene Property MQ14_SC02_FlavorScene Auto
|
|
|
|
Scene Property MQ14_SC03_Explanation Auto
|
|
|
|
Scene Property MQ14_SC04_NoviceScene Auto
|
|
|
|
Scene Property MQ14_SC05_Tealor Auto
|
|
|
|
Scene Property MQ14_SC06_Interrogation Auto
|
|
|
|
Scene Property MQ14_SC07_Planning Auto
|
|
|
|
Scene Property MQ14_SC08_LastSpeech Auto
|
|
|
|
Scene Property MQ14_SC09_Tealor Auto
|
|
|
|
|
2021-11-28 18:24:12 +00:00
|
|
|
Worldspace Property SuntempleWorldspace Auto
|
|
|
|
ObjectReference Property SunTempleEmporiumFrontDoorREF Auto
|
|
|
|
|
|
|
|
ObjectReference Property SunTempleQuartersDoorREF Auto
|