228 lines
5.9 KiB
Plaintext
228 lines
5.9 KiB
Plaintext
Scriptname _00E_MyradSystem02 extends Quest
|
|
|
|
import UIExtensions
|
|
import Utility
|
|
|
|
Actor akCurrentMyrad
|
|
|
|
Function CallMyradFlight(Actor akMyrad = None)
|
|
akCurrentMyrad = akMyrad
|
|
|
|
; If we call Message.Show() in a Goodbye script, dialogue menu will stay on screen
|
|
; Registering for an update, we allow it to close before the location menu
|
|
RegisterForSingleUpdate(0.1)
|
|
EndFunction
|
|
|
|
event OnUpdate()
|
|
if SKSE.GetVersion()
|
|
CallLocationList()
|
|
else
|
|
CallLocationListVanilla()
|
|
endif
|
|
endevent
|
|
|
|
Function CallLocationList()
|
|
|
|
UIListMenu listmenu = GetMenu("UIListMenu") as UIListMenu
|
|
|
|
string[] MyradTravelList = new string[13]
|
|
MyradTravelList[0] = "$Myradtravel00"
|
|
MyradTravelList[1] = "$Myradtravel01"
|
|
MyradTravelList[2] = "$Myradtravel02"
|
|
MyradTravelList[3] = "$Myradtravel03"
|
|
MyradTravelList[4] = "$Myradtravel04"
|
|
MyradTravelList[5] = "$Myradtravel05"
|
|
MyradTravelList[6] = "$Myradtravel06"
|
|
MyradTravelList[7] = "$Myradtravel07"
|
|
MyradTravelList[8] = "$Myradtravel08"
|
|
MyradTravelList[9] = "$Myradtravel09"
|
|
MyradTravelList[10] = "$Myradtravel10"
|
|
MyradTravelList[11] = "$Myradtravel11"
|
|
MyradTravelList[12] = "$Back"
|
|
|
|
Int iLength = 0
|
|
|
|
While iLength < MyradTravelList.length
|
|
listmenu.AddEntryItem(MyradTravelList[iLength], -1, -1, false)
|
|
iLength += 1
|
|
EndWhile
|
|
|
|
int iListMenu = listmenu.OpenMenu()
|
|
int iListButton = listmenu.GetResultInt()
|
|
|
|
If iListButton == 0
|
|
PortPlayer(ArkDestination)
|
|
ElseIf iListButton == 1
|
|
PortPlayer(ArkDestinationOutside)
|
|
ElseIf iListButton == 2
|
|
PortPlayer(RiverhomeDestination)
|
|
Elseif iListButton == 3
|
|
PortPlayer(HeartlandBorderregionDestination)
|
|
Elseif iListButton == 4
|
|
PortPlayer(HeartlandWatchtowerDestination)
|
|
Elseif iListButton == 5
|
|
PortPlayer(HeartlandNordicDestination)
|
|
Elseif iListButton == 6
|
|
PortPlayer(FarmerscoastDestination)
|
|
ElseIf iListButton == 7
|
|
PortPlayer(FrostcliffDestination)
|
|
ElseIf iListButton == 8
|
|
PortPlayer(DunehomeDestination)
|
|
Elseif iListButton == 09
|
|
PortPlayer(QuellwachtDestination)
|
|
Elseif iListButton == 10
|
|
PortPlayer(MisthomeDestination)
|
|
Elseif iListButton == 11
|
|
PortPlayer(DuestertalDesitnation)
|
|
Elseif iListButton == 12
|
|
return
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
Function CallLocationListVanilla()
|
|
|
|
int iListButton = _00E_MyradFlightPage1.Show()
|
|
|
|
If iListButton == 0
|
|
PortPlayer(ArkDestination)
|
|
ElseIf iListButton == 1
|
|
PortPlayer(ArkDestinationOutside)
|
|
ElseIf iListButton == 2
|
|
PortPlayer(RiverhomeDestination)
|
|
Elseif iListButton == 3
|
|
PortPlayer(HeartlandBorderregionDestination)
|
|
Elseif iListButton == 4
|
|
PortPlayer(HeartlandWatchtowerDestination)
|
|
Elseif iListButton == 5
|
|
PortPlayer(HeartlandNordicDestination)
|
|
Elseif iListButton == 6
|
|
PortPlayer(FarmerscoastDestination)
|
|
elseif iListButton == 8 ; Exit
|
|
return
|
|
else ; More
|
|
|
|
int iListButton2 = _00E_MyradFlightPage2.Show()
|
|
|
|
If iListButton2 == 0
|
|
PortPlayer(FrostcliffDestination)
|
|
ElseIf iListButton2 == 1
|
|
PortPlayer(DunehomeDestination)
|
|
Elseif iListButton2 == 2
|
|
PortPlayer(QuellwachtDestination)
|
|
Elseif iListButton2 == 3
|
|
PortPlayer(MisthomeDestination)
|
|
Elseif iListButton2 == 4
|
|
PortPlayer(DuestertalDesitnation)
|
|
Elseif iListButton2 == 6 ; Exit
|
|
return
|
|
else ; Return
|
|
CallLocationListVanilla()
|
|
endif
|
|
|
|
endif
|
|
|
|
endfunction
|
|
|
|
Function CallFlightAnimation(Actor akMyrad)
|
|
|
|
FadeToBlackAndBackQuick.Apply()
|
|
|
|
_00E_EquipControl.SheatheWeapon(PlayerREF as Actor)
|
|
Wait(0.75)
|
|
|
|
ObjectReference objTakeOffMarker = akMyrad.GetLinkedRef(_00E_FS_MyradTakeOffMarker)
|
|
akMyrad.MoveTo(objTakeOffMarker)
|
|
akMyrad.SetScale(1)
|
|
_FS_TheriantrophistControlQuest.TransformBackIfTransformed()
|
|
akMyrad.PlayIdleWithTarget(groundMountDragon, PlayerREF)
|
|
Wait(4.0)
|
|
akMyrad.PlayImpactEffect(FXDragonTakeoffImpactSet, "NPC Tail8", 0, 0, -1, 512, true, false)
|
|
Wait(8.0)
|
|
|
|
EndFunction
|
|
|
|
Function ResetMyradAndPlayer(Actor akMyrad)
|
|
|
|
Debug.SendAnimationEvent(PlayerREF, "IdleCartExitInstant")
|
|
akMyrad.Disable()
|
|
akMyrad.Enable()
|
|
akMyrad.MoveTo(akMyrad.GetLinkedRef())
|
|
akMyrad.EvaluatePackage()
|
|
|
|
EndFunction
|
|
|
|
Function PortPlayer(ObjectReference Destination)
|
|
|
|
PlayerRef.RemoveItem(Gold001, MyradTripPrice.GetValue() as int)
|
|
|
|
if akCurrentMyrad != None
|
|
CallFlightAnimation(akCurrentMyrad)
|
|
endif
|
|
|
|
FadeToBlackImod.Apply()
|
|
Game.SetHudCartMode(true)
|
|
Wait(1)
|
|
FadeToBlackHoldImod.ApplyCrossFade()
|
|
Wait(0.5)
|
|
PlayerRef.MoveTo(Destination)
|
|
Wait(0.5)
|
|
|
|
if akCurrentMyrad != None
|
|
ResetMyradAndPlayer(akCurrentMyrad)
|
|
endif
|
|
|
|
FadeToBlackBackImod.ApplyCrossFade()
|
|
Game.SetHudCartMode(false)
|
|
|
|
If MQ04.GetCurrentStageID() >= 10 && !bDone
|
|
bDone = True
|
|
MQ04.SetObjectiveCompleted(20)
|
|
_00E_EPHandler.GiveEP(150)
|
|
EndIf
|
|
|
|
MyradFligthCounter += 1
|
|
|
|
If MyradFligthCounter == 20
|
|
Steam.UnlockAchievement("END_MYRAD_01")
|
|
EndIf
|
|
|
|
_FS_Phasmalist_ControlQuest.MoveApparitionToPlayer()
|
|
|
|
Game.RequestAutoSave()
|
|
|
|
EndFunction
|
|
|
|
bool bDone
|
|
int MyradFligthCounter = 0
|
|
|
|
Quest Property MQ04 Auto
|
|
|
|
Keyword Property _00E_FS_MyradTakeOffMarker Auto
|
|
|
|
Message Property _00E_MyradFlightPage1 Auto
|
|
Message Property _00E_MyradFlightPage2 Auto
|
|
ObjectReference Property PlayerRef Auto
|
|
MiscObject Property Gold001 Auto
|
|
GlobalVariable Property MyradTripPrice Auto
|
|
|
|
Idle Property groundMountDragon Auto
|
|
ImpactDataSet Property FXDragonTakeoffImpactSet Auto
|
|
|
|
ObjectReference Property ArkDestination Auto
|
|
ObjectReference Property ArkDestinationOutside Auto
|
|
ObjectReference Property RiverhomeDestination Auto
|
|
ObjectReference Property HeartlandBorderregionDestination Auto
|
|
ObjectReference Property HeartlandWatchtowerDestination Auto
|
|
ObjectReference Property HeartlandNordicDestination Auto
|
|
ObjectReference Property FarmerscoastDestination Auto
|
|
ObjectReference Property FrostcliffDestination Auto
|
|
ObjectReference Property DunehomeDestination Auto
|
|
ObjectReference Property QuellwachtDestination Auto
|
|
ObjectReference Property MisthomeDestination Auto
|
|
ObjectReference Property DuestertalDesitnation Auto
|
|
|
|
ImageSpaceModifier Property FadeToBlackImod Auto
|
|
ImageSpaceModifier Property FadeToBlackHoldImod Auto
|
|
ImageSpaceModifier Property FadeToBlackBackImod Auto
|
|
ImageSpaceModifier Property FadeToBlackAndBackQuick Auto |