enderalse/source/scripts/_00e_mq10b_questfunctions.psc

366 lines
10 KiB
Plaintext

Scriptname _00E_MQ10b_Questfunctions extends Quest
Import _00E_QuestFunctions
;=====================================================================================
; FUNCTIONS
;=====================================================================================
function SetUp()
MQ07b_Suntemple_Beacon_InConstruction.Disable()
Game.SetHudCartMode()
Game.DisablePlayerControls(1, 1, 1, 1, 1, 1, 1)
_00E_MC_JesparRef.MoveTo(MQ10b_SC01_JesparMarkerREF)
MQ10b_FisherwomanREF.Enable()
MQ10b_FisherwomanREF.MoveTo(MQ10b_FisherwomanMarkerREF)
PlayerREF.MoveTo(Mq10bPlayerMarkerRef)
Levelsystem.RemoveSilence()
_00E_Music_Special_Dreams.Remove()
MQ07b_NuminosREF.Enable()
LeuchtfeuerSwitcher.Enable()
_00E_SilenceLongTransitionHighPriority.Remove()
EndFunction
Function RemoveSilences()
Levelsystem.RemoveSilence()
EndFunction
Function StartScene()
MQ10b_SC1_Ship.ForceStart()
EndFunction
Function WakeUp()
FadeToBlackBack.ApplyCrossFade()
PlayerREF.PlayIdle(TG05_GetUp)
Game.ShowFirstPersonGeometry(false)
Utility.Wait(1)
FadeToBlackHoldImod.Remove()
Utility.Wait(6.75)
Game.SetHudCartMode(false)
Game.EnablePlayerControls()
Game.ShowFirstPersonGeometry(true)
Game.SetPlayerAIDriven(false)
EndFunction
Function StartCQJ03()
If CQJ02.IsCompleted()
CQJ03.SetStage(5)
EndIf
Game.RequestAutoSave()
EndFunction
Function PortToDunehome()
FadeToBlackImod.Apply()
Utility.Wait(2)
FadeToBlackHoldImod.ApplyCrossFade()
Self.SetStage(30)
PlayerREF.MoveTo(MQ10b_SC02_PlayerMarker)
_00E_SilenceLongTransitionHighPriority.Remove()
Levelsystem.RemoveSilence()
Fischerin.MoveTo(MQ10b_SC02_FisherWomanMarker)
_00E_MC_JesparRef.MoveTO(MQ10b_SC02_JesparMarker)
Done = True
Utility.Wait(1)
FadeToBlackBackLongImod.ApplyCrossFade()
Timescale.SetValue(10)
Game.RequestAutoSave()
_00E_TeleportGlobal.SetValue(0)
EndFunction
Function PortJespar()
Levelsystem.RemoveSilence()
_00E_SilenceAbruptHighPriority.remove()
Actor JesparActor = _00E_MC_JesparRef as actor
Levelsystem.TeleportNPC(JesparActor, MQ10bJesparPortMarker)
If !CQC02.IsCompleted() && CQC02.IsRunning()
CQC02.SetStage(35)
Elseif CQC02.IsCompleted()
CQC03.SetStage(5)
EndIf
_00E_QuestFunctions.EnableReferenceFormList(_00E_MQ09b_NehrimeseSoldiersFRM)
EndFunction
Function SetUpTempleScene()
_00E_MC_LishariREF.EquipItem(_03E_27Wegesschwert, true,true)
_00E_MC_LeoraREF.Disable()
_00E_MC_TealorREF.MoveTo(MQ10b_SC02_TealorStartMarkerREF)
_00E_MC_JorrekRef.MoveTo(MQ10b_SC02_JorekStartMarkerREF001)
_00E_MC_LishariREF.MoveTo(_00E_MQ08aPrologue_LishariMarker)
_00E_MC_LishariREF.Enable()
_00E_MC_NataraREF.MoveTo(_00E_MQ08Prologue_NataraChair)
_00E_MC_NataraREF.Enable()
_00E_MC_YuslanRef.MoveTo(_00E_MQ08aPrologue_YuslanChair)
_00E_MC_JorrekRef.Enable()
MQ10b_SC2_Temple.ForceStart()
EndFunction
Function ShipShakeCamera()
While !Done
Game.ShakeCamera(PlayerREF, Utility.RandomFloat(0.01, 0.04), 3)
Utility.Wait(3)
EndWhile
EndFunction
Function AddSilence()
_00E_SilenceLongTransitionHighPriority.Add()
EndFunction
Function FadeOutScene()
SetObjectiveCompleted(20)
_00E_MC_LeoraREF.Disable()
MQ07b_Suntemple_Beacon_InConstruction.Disable()
FadeToBlackImod.Apply()
Utility.Wait(1)
FadeToBlackHoldImod.Apply()
FadeToBlackImod.Remove()
Utility.Wait(1)
_00E_MC_JesparRef.MoveTo(MQ10bJesparPortMarker)
Game.DisablePlayerControls(1, 1, 1, 1, 1, 1, 1)
PlayerREF.MoveTo(MQ01b_S2_PlayerMarker)
PlayerREF.MoveTo(CaliaStool)
Utility.Wait(1) ; Give some time to the PC and Jespar to finish any "exit furniture" animations
If !((PlayerREF.GetSitState() == 3 ) || (PlayerREF.GetSitState() == 2 ))
CaliaStool.Activate(PlayerREF, True)
EndIf
SuntempleEmporium_ClearWeatherLinker.Disable()
SetStage(50)
Levelsystem.SkipTimeToHour(20)
EndFunction
Function SitJespar()
_00E_MC_JesparRef.Disable()
_00E_MC_JesparRef.MoveTo(JesparStool)
_00E_MC_JesparRef.Enable()
EndFunction
Function TealorPortToBeacon()
Levelsystem.RemoveSilence()
_00E_MC_TealorREF.MoveTo(MQ05Prologue_SC2_TealorTalkMarker)
EndFunction
Function FadeBack()
Game.EnablePlayerControls()
FadeToBlackBack.Apply()
FadeToBlackHoldImod.Remove()
EndFunction
Function KillLishari()
Levelsystem.SetAllowIdleChatter(True)
MQ10bLishariDead.Enable()
MQ10bLishariDead.SetOutfit(_00E_LisharisArmor_Outfit)
MQ10bLishariDead.AddItem(_50E_NP_LishariArmor, 1)
MQ10bLishariDead.AddItem(_50E_NP_LishariBoots, 1)
MQ10bLishariDead.EquipItem(_50E_NP_LishariArmor, True)
MQ10bLishariDead.EquipItem(_50E_NP_LishariArmor, True)
MQ10bLishari.Disable()
MQ10bTavernDoor.Lock(False)
_00E_MC_LishariREF.disable()
LeuchtfeuerSwitcher.Enable()
MQ07b_Suntemple_Beacon_InConstruction.Disable()
EndFunction
Function KillLishari2()
Game.EnablePlayerControls()
MQ10bBottle.Enable()
EndFunction
Function StopMusic()
_00E_SilenceLongTransitionHighPriority.Remove()
EndFunction
Function PortTealor()
_00E_MC_TealorRef.MoveTo(MQ10bTealorPortMarker)
_00E_MC_TealorRef.EvaluatePackage()
EndFunction
Function StartLexilScene()
MQ10b_SC4_Tealor.ForceStart()
Actor lexilRef = Alias_Lexil.GetActorReference()
lexilRef.Disable()
lexilRef.MoveTo(MQ10bTealorPortMarker)
lexilRef.Enable()
EndFunction
Function DayTimer()
RegisterForUpdateGameTime(24)
GameDay = GameDaysPassed.GetValue() as Int
ENdFunction
Event OnUpdateGameTime() ; because of how we registered, this event occurs every 30 minutes of game time
if GameDaysPassed.GetValue() + 1 >= GameDay
SetStage(125)
UnregisterForUpdateGameTime()
endif
endEvent
Function LockDoors()
_00E_MC_LishariREF.EvaluatePackage()
_00E_MC_YuslanRef.EvaluatePackage()
EndFunction
Function UnblockDoors()
_00E_TeleportGlobal.SetValueInt(0)
MQ10b_SC02_SecondExitDoorREF.SetOpen(True)
MQ10b_SC02_SecondExitDoorREF.Lock(False)
MQ10b_SC02_SecondExitDoorREF.BlockActivation(False)
EndFunction
Function FinishQuest()
If !CQJ03.IsCompleted()
CQJ03.SetStage(15)
EndIf
MQ12a.SetStage(5)
MQ10bLexilContainer.RemoveAllItems(PlayerREF, true, true)
MQ10bLishariDead.disable()
Levelsystem.GiveEP(1000)
Levelsystem.RemoveSilence()
FS_NQ03.SetStage(10)
EndFunction
Function PortLishari()
_00E_MC_LishariREF.MoveTo(MQ10b_SC02_LishariLeanMarker)
_00E_MC_LishariREF.EvaluatePackage()
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
bool done = false
int GameDay
Quest Property CQC02 Auto
Quest Property CQC03 Auto
Quest Property CQJ03 Auto
Quest Property CQJ02 Auto
Quest Property MQ12a Auto
Quest Property FS_NQ03 Auto
_00E_QuestFunctions Property Levelsystem Auto
Actor Property _00E_MC_LishariREF Auto
Actor Property _00E_MC_NataraREF Auto
Actor Property _00E_MC_TealorREF Auto
Actor Property _00E_MC_YuslanRef Auto
Actor Property _00E_MC_JorrekRef Auto
Actor Property _00E_MC_LeoraREF Auto
Actor Property MQ10bLishariDead Auto
Actor Property PlayerREF Auto
ReferenceAlias Property Alias_Lexil Auto
Armor Property _50E_NP_LishariArmor Auto
Armor Property _50E_NP_LishariBoots Auto
GlobalVariable Property GameDaysPassed Auto
GlobalVariable Property Timescale Auto
GlobalVariable Property _00E_TeleportGlobal Auto
ObjectReference Property MQ01b_S2_PlayerMarker Auto
ObjectReference Property MQ10bLishari Auto
ObjectReference Property _00E_MC_JesparRef Auto
ObjectReference Property Fischerin Auto
ObjectReference Property Mq10bPlayerMarkerRef Auto
ObjectReference Property MQ10bJesparPortMarker Auto
ObjectReference Property MQ10bTavernDoor Auto
ObjectReference Property MQ10bBottle Auto
ObjectReference Property MQ10bTealorPortMarker Auto
ObjectReference Property MQ07b_Suntemple_Beacon_InConstruction Auto
ObjectReference Property MQ10b_SC01_JesparMarkerREF Auto
ObjectReference Property MQ10b_SC02_FisherWomanMarker Auto
ObjectReference Property MQ10b_SC02_PlayerMarker Auto
ObjectReference Property MQ10b_SC02_JesparMarker Auto
ObjectReference Property MQ10b_SC02_TealorStartMarkerREF Auto
ObjectReference Property MQ10b_SC02_JorekStartMarkerREF001 Auto
ObjectReference Property _00E_MQ08aPrologue_LishariMarker Auto
ObjectReference Property _00E_MQ08Prologue_NataraChair Auto
ObjectReference Property _00E_MQ08aPrologue_YuslanChair Auto
ObjectReference Property LeuchtfeuerSwitcher Auto
ObjectReference Property MQ10bLexilContainer Auto
ObjectReference Property MQ10b_FisherwomanMarkerREF Auto
ObjectReference Property JesparStool Auto
ObjectReference Property MQ10b_SC02_SecondExitDoorREF Auto
ObjectReference Property MQ10b_FisherwomanREF Auto
ObjectReference Property CaliaStool Auto
ObjectReference Property SuntempleEmporium_ClearWeatherLinker Auto
ObjectReference Property MQ05Prologue_SC2_TealorTalkMarker Auto
ObjectReference Property MQ10b_SC02_LishariLeanMarker Auto
ObjectReference Property MQ07b_NuminosREF Auto
Weapon Property _03E_27Wegesschwert Auto
ImageSpaceModifier Property FadeToBlackImod Auto
ImageSpaceModifier Property FadeToBlackBackLongImod Auto
ImageSpaceModifier Property FadeToBlackBack Auto
ImageSpaceModifier Property FadeToBlackHoldImod Auto
Scene Property MQ10b_SC1_Ship Auto
Scene Property MQ10b_SC2_Temple Auto
Scene Property MQ10b_SC4_Tealor Auto
Idle Property TG05_GetUp Auto
Outfit Property _00E_LisharisArmor_Outfit Auto
Formlist Property _00E_MQ09b_NehrimeseSoldiersFRM Auto
MusicType Property _00E_Music_Special_Dreams Auto
MusicType Property _00E_SilenceAbruptHighPriority Auto
MusicType Property _00E_SilenceLongTransitionHighPriority Auto