Added quick start

This commit is contained in:
Eddoursul 2024-01-11 21:24:54 +01:00
parent eff44b1e23
commit af3a933e2b
13 changed files with 143 additions and 107 deletions

BIN
QuickStart.esp Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -7,8 +7,8 @@ float fPatchVersion
Event OnInit() Event OnInit()
; MQP01 ; MQP01
if (Game.GetForm(0x46F1A) as Quest).IsStageDone(10) Quest startQuest = Game.GetForm(0x46F1A) as Quest
if startQuest.IsStageDone(10) || startQuest.IsCompleted()
While Utility.IsInMenuMode() While Utility.IsInMenuMode()
Utility.WaitMenuMode(0.1) Utility.WaitMenuMode(0.1)
EndWhile EndWhile

View File

@ -21,12 +21,6 @@ Function SetUpScene()
MQP01_DreamDoorREF.BlockActivation(True) MQP01_DreamDoorREF.BlockActivation(True)
Wait(5.0) Wait(5.0)
if EnderalFunctions.GetNewGameCount() > 1
Game.EnablePlayerControls()
Game.QuitToMainMenu()
Debug.MessageBox("Due to an engine bug, new game should not be started after quitting to the main menu. Please, restart Enderal first.")
endif
EndFunction EndFunction
Function UnlockDoor() Function UnlockDoor()

View File

@ -2,23 +2,48 @@ Scriptname _00E_MQP01_StartSC extends ObjectReference
Event OnTriggerEnter (ObjectReference akActionREF) Event OnTriggerEnter (ObjectReference akActionREF)
if akActionRef == PlayerREF && !bDone if akActionRef == PlayerREF && !bDone
bDone = true ; deletion may take some time
Delete()
If !MQ10a.IsRunning() If !MQ10a.IsRunning()
If !MQ12c.IsRunning() If !MQ12c.IsRunning()
if EnderalFunctions.GetNewGameCount() > 1
Game.QuitToMainMenu()
Debug.MessageBox("Due to an engine bug, new game should not be started after quitting to the main menu. Please, restart Enderal first.")
return
endif
if _00E_QuickStartPrompt.Show() > 0
MQP01.CompleteAllObjectives()
MQP01.CompleteQuest()
MQP02.CompleteAllObjectives()
MQP02.CompleteQuest()
Utility.wait(0.5)
PlayerREF.MoveTo(_00E_ClassMenuOrigin)
Debug.SendAnimationEvent(PlayerRef, "IdleForceDefaultState")
Game.ShowRaceMenu()
Game.DisablePlayerControls(false, true, true, false, true, false, false, true)
MQP03.SetCurrentStageID(15)
(MQP02 as _00E_MQP02_Functions).AddRacialAbilites()
else
MQP01.SetCurrentStageID(10) MQP01.SetCurrentStageID(10)
Self.Delete() endif
EndIf
EndIf EndIf
EndIf EndIf
EndIf
EndEvent EndEvent
bool bDone bool bDone
Quest Property MQP01 Auto Quest Property MQP01 Auto
Quest Property MQP02 Auto
Quest Property MQP03 Auto
Quest Property MQ12c Auto Quest Property MQ12c Auto
Quest Property MQ10a Auto Quest Property MQ10a Auto
Actor Property PlayerREF Auto Actor Property PlayerREF Auto
Message Property _00E_QuickStartPrompt Auto
ObjectReference Property _00E_ClassMenuOrigin Auto

View File

@ -398,7 +398,7 @@ Function RocioKillPlayer()
Wait(3) Wait(3)
Game.RequestAutoSave() Game.RequestAutoSave()
Self.SetCurrentStageID(115) Self.SetCurrentStageID(115)
MQP03.Start() MQP03.SetCurrentStageID(5)
EndFunction EndFunction

View File

@ -39,7 +39,7 @@ Function MovePlayerToStart()
DisablePlayerControls(false, true, true, false, true, false, false, true) DisablePlayerControls(false, true, true, false, true, false, false, true)
PlayerREF.SetAlpha(0.0) PlayerREF.SetAlpha(0.0)
PlayerREF.MoveTo(_00E_ClassMenuOrigin) PlayerREF.MoveTo(_00E_ClassMenuOrigin)
Self.SetCurrentStageID(10) SetCurrentStageID(10)
EndFunction EndFunction
@ -52,17 +52,22 @@ Function ShowVisionBinkMovie()
FadeToBlackHoldIMOD.PopTo(_00E_MQP03_WakeUpIMOD) FadeToBlackHoldIMOD.PopTo(_00E_MQP03_WakeUpIMOD)
Wait(4) Wait(4)
_00E_SilenceAbruptHighPriority.Remove() _00E_SilenceAbruptHighPriority.Remove()
Message.ResetHelpMessage("Empty")
_00E_MQP03_Thoughts01.ShowAsHelpMessage("Empty", 5, 1, 1)
SetCurrentStageID(15)
EndFunction
function SetupPlayer()
Game.SetInCharGen(false, true, false)
PlayerREF.AddShout(_00E_Class_Meditate) PlayerREF.AddShout(_00E_Class_Meditate)
Game.UnlockWord(_00E_Class_ClassMenuWord) Game.UnlockWord(_00E_Class_ClassMenuWord)
Game.TeachWord(_00E_Class_ClassMenuWord) Game.TeachWord(_00E_Class_ClassMenuWord)
_00E_MQP03_sMemoryPointGained.Show(1) _00E_MQP03_sMemoryPointGained.Show(1)
TalentPoints.SetValueInt(1) TalentPoints.SetValueInt(1)
PlayerREF.SetActorValue("dragonsouls", TalentPoints.GetValueInt()) PlayerREF.SetActorValue("dragonsouls", TalentPoints.GetValueInt())
Message.ResetHelpMessage("Empty")
_00E_MQP03_Thoughts01.ShowAsHelpMessage("Empty", 5, 1, 1)
RegisterForSingleUpdate(20) RegisterForSingleUpdate(20)
endfunction
EndFunction
Function StrandingCutscene() Function StrandingCutscene()

View File

@ -1,5 +1,5 @@
;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment ;BEGIN FRAGMENT CODE - Do not edit anything between this and the end comment
;NEXT FRAGMENT INDEX 22 ;NEXT FRAGMENT INDEX 28
Scriptname QF_MQP03_0007B1E5 Extends Quest Hidden Scriptname QF_MQP03_0007B1E5 Extends Quest Hidden
;BEGIN ALIAS PROPERTY PlayerAlias ;BEGIN ALIAS PROPERTY PlayerAlias
@ -7,6 +7,19 @@ Scriptname QF_MQP03_0007B1E5 Extends Quest Hidden
ReferenceAlias Property Alias_PlayerAlias Auto ReferenceAlias Property Alias_PlayerAlias Auto
;END ALIAS PROPERTY ;END ALIAS PROPERTY
;BEGIN FRAGMENT Fragment_1
Function Fragment_1()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowVisionBinkMovie()
Game.SetHudCartMode(False)
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_16 ;BEGIN FRAGMENT Fragment_16
Function Fragment_16() Function Fragment_16()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
@ -19,10 +32,14 @@ kmyQuest.PrepareSoundAndWeather()
EndFunction EndFunction
;END FRAGMENT ;END FRAGMENT
;BEGIN FRAGMENT Fragment_6 ;BEGIN FRAGMENT Fragment_27
Function Fragment_6() Function Fragment_27()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE ;BEGIN CODE
Self.SetObjectiveDisplayed(5) kmyQuest.SetupPlayer()
;END CODE ;END CODE
EndFunction EndFunction
;END FRAGMENT ;END FRAGMENT
@ -40,67 +57,6 @@ SetCurrentStageID(75)
EndFunction EndFunction
;END FRAGMENT ;END FRAGMENT
;BEGIN FRAGMENT Fragment_9
Function Fragment_9()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowSkillbookTutorial()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_1
Function Fragment_1()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowVisionBinkMovie()
Game.SetHudCartMode(False)
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_11
Function Fragment_11()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowSleepTutorial()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_3
Function Fragment_3()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.StrandingCutscene()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_12
Function Fragment_12()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowThoughtBox05()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_0 ;BEGIN FRAGMENT Fragment_0
Function Fragment_0() Function Fragment_0()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
@ -113,26 +69,6 @@ kmyQuest.MovePlayerToStart()
EndFunction EndFunction
;END FRAGMENT ;END FRAGMENT
;BEGIN FRAGMENT Fragment_17
Function Fragment_17()
;BEGIN CODE
_00E_EPHandler.GiveEP(150)
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_8
Function Fragment_8()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowThoughtBox()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_13 ;BEGIN FRAGMENT Fragment_13
Function Fragment_13() Function Fragment_13()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions ;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
@ -145,4 +81,80 @@ kmyQuest.ShowThoughtBox06()
EndFunction EndFunction
;END FRAGMENT ;END FRAGMENT
;BEGIN FRAGMENT Fragment_8
Function Fragment_8()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowThoughtBox()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_9
Function Fragment_9()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowSkillbookTutorial()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_17
Function Fragment_17()
;BEGIN CODE
_00E_EPHandler.GiveEP(150)
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_12
Function Fragment_12()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowThoughtBox05()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_3
Function Fragment_3()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.StrandingCutscene()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_11
Function Fragment_11()
;BEGIN AUTOCAST TYPE _00E_MQP03_Functions
Quest __temp = self as Quest
_00E_MQP03_Functions kmyQuest = __temp as _00E_MQP03_Functions
;END AUTOCAST
;BEGIN CODE
kmyQuest.ShowSleepTutorial()
;END CODE
EndFunction
;END FRAGMENT
;BEGIN FRAGMENT Fragment_6
Function Fragment_6()
;BEGIN CODE
Self.SetObjectiveDisplayed(5)
;END CODE
EndFunction
;END FRAGMENT
;END FRAGMENT CODE - Do not edit anything between this and the begin comment ;END FRAGMENT CODE - Do not edit anything between this and the begin comment