144 lines
3.7 KiB
Plaintext
144 lines
3.7 KiB
Plaintext
Scriptname _00E_HeroldScript extends actor
|
|
|
|
;=====================================================================================
|
|
; EVENTS
|
|
;=====================================================================================
|
|
|
|
Event OnUpdateGameTime()
|
|
|
|
CheckForHerold()
|
|
|
|
EndEvent
|
|
|
|
Event OnPackageStart(Package akNewPackage)
|
|
|
|
if akNewPackage == CapitalCityHeroldSpeak8x12
|
|
CheckForHerold()
|
|
endif
|
|
|
|
EndEvent
|
|
|
|
Event OnPackageEnd(Package akNewPackage)
|
|
|
|
if akNewPackage != CapitalCityHeroldSpeak8x12
|
|
bCurrentlySpeaking = False
|
|
scCurrentHeroldScene.Stop()
|
|
endif
|
|
|
|
EndEvent
|
|
|
|
Event OnUpdate()
|
|
|
|
If bCurrentlySpeaking
|
|
if !scCurrentHeroldScene.IsPlaying()
|
|
PickHeroldSceneAtRandom().ForceStart()
|
|
RegisterForSingleUpdate(5)
|
|
Else
|
|
UnregisterForUpdate()
|
|
EndIf
|
|
EndIf
|
|
|
|
EndEvent
|
|
|
|
;=====================================================================================
|
|
; FUNCTIONS
|
|
;=====================================================================================
|
|
|
|
Function EndHeroldScene()
|
|
|
|
bCurrentlySpeaking = False
|
|
|
|
if Self.GetCurrentPackage() == CapitalCityHeroldSpeak8x12 && (PlayerREF.GetWorldSpace() == CapitalCityMarketArea)
|
|
RegisterForSingleUpdateGameTime(0.5)
|
|
EndIf
|
|
|
|
EndFunction
|
|
|
|
Function CheckForHerold()
|
|
|
|
if Self.GetCurrentPackage() == CapitalCityHeroldSpeak8x12 && (PlayerREF.GetWorldSpace() == CapitalCityMarketArea)
|
|
|
|
if !bCurrentlySpeaking
|
|
|
|
bCurrentlySpeaking = True
|
|
|
|
if !DoOnce && ArkGenericDialogue.GetStage() < 5
|
|
ArkGenericDialogue.SetStage(5)
|
|
DoOnce = true
|
|
endif
|
|
|
|
PickHeroldSceneAtRandom().ForceStart()
|
|
|
|
EndIf
|
|
endif
|
|
|
|
EndFunction
|
|
|
|
Scene Function PickHeroldSceneAtRandom()
|
|
|
|
int iSceneIndex = 0
|
|
|
|
if !bSiegeScenePlayed && MQ12b.GetStage() >= 10
|
|
bSiegeScenePlayed = True
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC6
|
|
Return ArkGenericDialogue_Herold_SC6
|
|
elseif !bWarScenePlayed && MQ09.GetStage() >= 10
|
|
bWarScenePlayed = True
|
|
Return ArkGenericDialogue_Herold_SC5
|
|
elseif MQ12b.GetStage() >= 10
|
|
iSceneIndex = Utility.RandomInt(5,8)
|
|
elseif MQ09.GetStage() >= 10
|
|
iSceneIndex = Utility.RandomInt(0,6)
|
|
else
|
|
iSceneIndex = Utility.RandomInt(0,4)
|
|
endif
|
|
|
|
if iSceneIndex <= 1
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC1
|
|
elseif iSceneIndex == 2
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC2
|
|
elseif iSceneIndex == 3
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC3
|
|
elseif iSceneIndex == 4
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC3
|
|
elseif iSceneIndex == 5 || iSceneIndex == 6
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC5
|
|
elseif iSceneIndex == 7 || iSceneIndex == 8
|
|
scCurrentHeroldScene = ArkGenericDialogue_Herold_SC6
|
|
endif
|
|
|
|
bCurrentlySpeaking = true
|
|
|
|
Return scCurrentHeroldScene as Scene
|
|
|
|
EndFunction
|
|
|
|
;=====================================================================================
|
|
; PROPERTIES
|
|
;=====================================================================================
|
|
|
|
Actor Property PlayerREF Auto
|
|
|
|
Scene scCurrentHeroldScene
|
|
|
|
bool Property bCurrentlySpeaking Auto Hidden
|
|
bool DoOnce
|
|
bool bSiegeScenePlayed
|
|
bool bWarScenePlayed
|
|
|
|
WorldSpace Property CapitalCityMarketArea Auto
|
|
|
|
Location Property CapitalCityLocation Auto
|
|
|
|
Package Property CapitalCityHeroldSpeak8x12 Auto
|
|
Package Property CapitalCityHeroldSandbox20x4 Auto
|
|
Scene Property ArkGenericDialogue_Herold_SC1 Auto
|
|
Scene Property ArkGenericDialogue_Herold_SC2 Auto
|
|
Scene Property ArkGenericDialogue_Herold_SC3 Auto
|
|
Scene Property ArkGenericDialogue_Herold_SC4 Auto
|
|
Scene Property ArkGenericDialogue_Herold_SC5 Auto
|
|
Scene Property ArkGenericDialogue_Herold_SC6 Auto
|
|
|
|
Quest Property MQ09 Auto
|
|
Quest Property MQ12b Auto
|
|
Quest Property ArkGenericDialogue Auto |