128 lines
3.5 KiB
Plaintext
128 lines
3.5 KiB
Plaintext
|
Scriptname _00E_Ark_GenericDialogueFunctions extends Quest Conditional
|
||
|
|
||
|
;=====================================================================================
|
||
|
; EVENTS
|
||
|
;=====================================================================================
|
||
|
|
||
|
Event OnUpdateGameTime()
|
||
|
If PlayerREF.GetWorldSpace() == CapitalCityUpperCity
|
||
|
RegisterForSingleUpdateGameTime(1.0)
|
||
|
Return
|
||
|
EndIf
|
||
|
|
||
|
; Failsafes
|
||
|
bPlayerWithinHearingDistance = False
|
||
|
|
||
|
Int Index = 0
|
||
|
While Index < arrayPoemScenes.Length
|
||
|
If arrayPoemScenes[Index].IsPlaying()
|
||
|
arrayPoemScenes[Index].Stop()
|
||
|
EndIf
|
||
|
Index += 1
|
||
|
EndWhile
|
||
|
|
||
|
bPoemCurrentlyPlaying = False
|
||
|
EndEvent
|
||
|
|
||
|
Event OnUpdate()
|
||
|
StartRandomPoemScene()
|
||
|
EndEvent
|
||
|
|
||
|
;=====================================================================================
|
||
|
; FUNCTIONS
|
||
|
;=====================================================================================
|
||
|
|
||
|
bool Function NoPoemPlaying()
|
||
|
Int Index = 0
|
||
|
While Index < arrayPoemScenes.Length
|
||
|
If arrayPoemScenes[Index].IsPlaying()
|
||
|
Return False
|
||
|
EndIf
|
||
|
Index += 1
|
||
|
EndWhile
|
||
|
|
||
|
Return True
|
||
|
EndFunction
|
||
|
|
||
|
Function StartRandomPoemScene()
|
||
|
|
||
|
If _00E_UpperCity_PrinceMithREF.GetCurrentPackage() != _00E_CapitalCity_UpperCity_Mith_ReadPoems
|
||
|
Return
|
||
|
EndIf
|
||
|
|
||
|
If PlayerREF.GetWorldSpace() != CapitalCityUpperCity
|
||
|
bPlayerWithinHearingDistance = False
|
||
|
EndIf
|
||
|
|
||
|
If bPlayerWithinHearingDistance == False
|
||
|
Return
|
||
|
EndIf
|
||
|
|
||
|
If NoPoemPlaying() == False
|
||
|
Return
|
||
|
EndIf
|
||
|
|
||
|
; If the prince is away from his marker or in dialogue with the player, try again later
|
||
|
If _00E_UpperCity_PrinceMithREF.GetDistance(PrinceMithReadPoemsMarker) > 64.0 || _00E_UpperCity_PrinceMithREF.IsInDialogueWithPlayer()
|
||
|
RegisterForSingleUpdate(2.0)
|
||
|
Return
|
||
|
EndIf
|
||
|
|
||
|
If !bPoemCurrentlyPlaying
|
||
|
bPoemCurrentlyPlaying = True
|
||
|
UnregisterForUpdate()
|
||
|
; Pick a poem, but not the same as the last time
|
||
|
Int poemIndex = Utility.RandomInt(0, arrayPoemScenes.Length - 1)
|
||
|
While poemIndex == lastPoemPlayed
|
||
|
poemIndex = Utility.RandomInt(0, arrayPoemScenes.Length - 1)
|
||
|
EndWhile
|
||
|
arrayPoemScenes[poemIndex].ForceStart()
|
||
|
lastPoemPlayed = poemIndex
|
||
|
RegisterForSingleUpdateGameTime(1.0)
|
||
|
EndIf
|
||
|
|
||
|
EndFunction
|
||
|
|
||
|
Function OnPoemSceneEnd()
|
||
|
bPoemCurrentlyPlaying = False
|
||
|
RegisterForSingleUpdate(1.0)
|
||
|
EndFunction
|
||
|
|
||
|
Function RemoveAmulets()
|
||
|
|
||
|
PlayerREF.RemoveItem(_00E_MQ01_FinnCarbosAmulet, 2)
|
||
|
bPlayerHasGivenAmulets = True
|
||
|
PlayerREF.AddItem(Gold001, 150)
|
||
|
PlayerREF.AddItem(_00E_Eispranke, 1)
|
||
|
Levelsystem.GiveEP(150)
|
||
|
|
||
|
EndFunction
|
||
|
|
||
|
;=====================================================================================
|
||
|
; PROPERTIES
|
||
|
;=====================================================================================
|
||
|
|
||
|
_00E_QuestFunctions Property Levelsystem Auto
|
||
|
|
||
|
bool Property bPlayerHasHadMithConversation Auto Conditional Hidden
|
||
|
bool Property bPlayerHasHadToriusConversation Auto Conditional Hidden
|
||
|
bool Property bPlayerHasGivenAmulets Auto Conditional Hidden
|
||
|
|
||
|
bool Property bPlayerWithinHearingDistance Auto Hidden
|
||
|
bool Property bPoemCurrentlyPlaying Auto Hidden
|
||
|
|
||
|
Actor Property _00E_UpperCity_PrinceMithREF Auto
|
||
|
Actor Property PlayerREF Auto
|
||
|
|
||
|
Worldspace Property CapitalCityUpperCity Auto
|
||
|
|
||
|
MiscObject Property Gold001 Auto
|
||
|
|
||
|
Armor Property _00E_MQ01_FinnCarbosAmulet Auto
|
||
|
Potion Property _00E_Eispranke Auto
|
||
|
|
||
|
Package Property _00E_CapitalCity_UpperCity_Mith_ReadPoems Auto
|
||
|
ObjectReference Property PrinceMithReadPoemsMarker Auto
|
||
|
|
||
|
Scene[] Property arrayPoemScenes Auto
|
||
|
Int Property lastPoemPlayed = -1 Auto Hidden
|