268 lines
8.9 KiB
Plaintext
268 lines
8.9 KiB
Plaintext
Scriptname Quest extends Form Hidden
|
|
|
|
; non-native functions
|
|
|
|
; thread-safe way to modify a global value
|
|
; optional parameters:
|
|
; aiObjectiveID = objective ID to redisplay
|
|
; afTargetValue = value you're counting up (or down) towards -- if included, function will return TRUE when the global reaches the target value
|
|
; abCountingUp = by default, function assumes you're counting up towards the target value; make this false to count DOWN towards target value
|
|
; abCompleteObjective = by default, function assumes you're completing the objective once you reach the target value; make this false to FAIL the objective
|
|
; abRedisplayObjective = by default, function asssume you want to redisplay the objective every time the global is incremeneted; make this FALSE to only display the objectives on complete or failure
|
|
bool Function ModObjectiveGlobal(float afModValue, GlobalVariable aModGlobal, int aiObjectiveID = -1, float afTargetValue = -1.0, bool abCountingUp = true, bool abCompleteObjective = true, bool abRedisplayObjective = true)
|
|
aModGlobal.Mod(afModValue)
|
|
UpdateCurrentInstanceGlobal(aModGlobal)
|
|
if aiObjectiveID >= 0
|
|
; display/complete objectives automatically
|
|
if afTargetValue > -1
|
|
if (abCountingUp && aModGlobal.value >= afTargetValue) || (!abCountingUp && aModGlobal.value <= afTargetValue)
|
|
if (abCompleteObjective)
|
|
; complete objective
|
|
SetObjectiveCompleted(aiObjectiveID)
|
|
return true
|
|
Else
|
|
; fail objective
|
|
SetObjectiveFailed(aiObjectiveID)
|
|
return true
|
|
Endif
|
|
elseIf (abRedisplayObjective)
|
|
; redisplay objective
|
|
SetObjectiveDisplayed(aiObjectiveID, true, true)
|
|
Else
|
|
SetObjectiveDisplayed(aiObjectiveID, true, false)
|
|
endif
|
|
elseIf (abRedisplayObjective)
|
|
; no target value, always redisplay objective
|
|
SetObjectiveDisplayed(aiObjectiveID, true, true)
|
|
Else
|
|
SetObjectiveDisplayed(aiObjectiveID, true, false)
|
|
endif
|
|
endif
|
|
return false
|
|
endFunction
|
|
|
|
|
|
; native functions
|
|
|
|
; Flags all objectives as complete
|
|
Function CompleteAllObjectives() native
|
|
|
|
; Flags this quest as completed
|
|
Function CompleteQuest() native
|
|
|
|
; Flags all objectives as failed
|
|
Function FailAllObjectives() native
|
|
|
|
; Obtains the specified alias on the quest
|
|
Alias Function GetAlias(int aiAliasID) native
|
|
|
|
; Obtains the id of the highest completed stage on this quest
|
|
int Function GetCurrentStageID() native
|
|
|
|
; Alias for GetCurrentStage - obtains the highest completed stage on this quest
|
|
int Function GetStage()
|
|
return GetCurrentStageID()
|
|
EndFunction
|
|
|
|
; Alias for IsStageDone - checks to see whether the given stage is done or not
|
|
bool Function GetStageDone(int aiStage)
|
|
return IsStageDone(aiStage)
|
|
EndFunction
|
|
|
|
; Is this quest "active" (tracked by the player)?
|
|
bool Function IsActive() native
|
|
|
|
; Checks to see if the quest is completed
|
|
bool Function IsCompleted() native
|
|
|
|
; Checks to see if the specified objective is completed
|
|
bool Function IsObjectiveCompleted(int aiObjective) native
|
|
|
|
; Checks to see if the specified objective is displayed
|
|
bool Function IsObjectiveDisplayed(int aiObjective) native
|
|
|
|
; Checks to see if the specified objective is failed
|
|
bool Function IsObjectiveFailed(int aiObjective) native
|
|
|
|
; Checks to see if the quest is running
|
|
bool Function IsRunning() native
|
|
|
|
; Obtains whether the specified stage is done or not
|
|
bool Function IsStageDone(int aiStage) native
|
|
|
|
; Checks to see if the quest is enabled but not running yet
|
|
bool Function IsStarting() native
|
|
|
|
; Checks to see if the quest is not enabled anymore but still shutting down
|
|
bool Function IsStopping() native
|
|
|
|
; Checks to see if the quest is no longer enabled or running
|
|
bool Function IsStopped() native
|
|
|
|
; Resets the quest
|
|
Function Reset() native
|
|
|
|
; Flags this quest as "active" (tracked by the player)
|
|
Function SetActive(bool abActive = true) native
|
|
|
|
; Set the quest to the requested stage ID - returns true if stage exists and was set.
|
|
; This function is latent and will wait for the quest to start up before returning (if it needed to be started)
|
|
bool Function SetCurrentStageID(int aiStageID) native
|
|
|
|
; Sets the specified objective to completed or not
|
|
Function SetObjectiveCompleted(int aiObjective, bool abCompleted = true) native
|
|
|
|
; Sets the specified objective to displayed or hidden - if abForce is true, will display the objective even if it has already been displayed
|
|
Function SetObjectiveDisplayed(int aiObjective, bool abDisplayed = true, bool abForce = false) native
|
|
|
|
; Sets the specified objective to failed or not
|
|
Function SetObjectiveFailed(int aiObjective, bool abFailed = true) native
|
|
|
|
; Alias of SetCurrentStage - Set the quest to the requested stage
|
|
; This function is latent and will wait for the quest to start up before returning (if it needed to be started)
|
|
bool Function SetStage(int aiStage)
|
|
return SetCurrentStageID(aiStage)
|
|
EndFunction
|
|
|
|
; Starts the quest - returns whether the quest was able to be started or not
|
|
; This function is latent and will wait for the quest to start up before returning
|
|
bool Function Start() native
|
|
|
|
; Stops the quest
|
|
Function Stop() native
|
|
|
|
; Updates current instance's value for the given global
|
|
bool Function UpdateCurrentInstanceGlobal( GlobalVariable aUpdateGlobal ) native
|
|
|
|
; Story manager events - fired in parallel with the quest startup stage
|
|
|
|
Event OnStoryAddToPlayer(ObjectReference akOwner, ObjectReference akContainer, \
|
|
Location akLocation, Form akItemBase, int aiAcquireType)
|
|
EndEvent
|
|
|
|
Event OnStoryArrest(ObjectReference akArrestingGuard, ObjectReference akCriminal, \
|
|
Location akLocation, int aiCrime)
|
|
EndEvent
|
|
|
|
Event OnStoryAssaultActor(ObjectReference akVictim, ObjectReference akAttacker, \
|
|
Location akLocation, int aiCrime)
|
|
EndEvent
|
|
|
|
Event OnStoryBribeNPC(ObjectReference akActor)
|
|
EndEvent
|
|
|
|
Event OnStoryCastMagic(ObjectReference akCastingActor, ObjectReference akSpellTarget, \
|
|
Location akLocation, Form akSpell)
|
|
EndEvent
|
|
|
|
Event OnStoryChangeLocation(ObjectReference akActor, Location akOldLocation, \
|
|
Location akNewLocation)
|
|
EndEvent
|
|
|
|
Event OnStoryCrimeGold(ObjectReference akVictim, ObjectReference akCriminal, \
|
|
Form akFaction, int aiGoldAmount, int aiCrime)
|
|
EndEvent
|
|
|
|
Event OnStoryCure(Form akInfection)
|
|
EndEvent
|
|
|
|
Event OnStoryDialogue(Location akLocation, ObjectReference akActor1, ObjectReference akActor2)
|
|
EndEvent
|
|
|
|
Event OnStoryDiscoverDeadBody(ObjectReference akActor, ObjectReference akDeadActor, \
|
|
Location akLocation)
|
|
EndEvent
|
|
|
|
Event OnStoryEscapeJail(Location akLocation, Form akCrimeGroup)
|
|
EndEvent
|
|
|
|
Event OnStoryActivateActor(Location akLocation, ObjectReference akActor)
|
|
EndEvent
|
|
|
|
Event OnStoryFlatterNPC(ObjectReference akActor)
|
|
EndEvent
|
|
|
|
Event OnStoryHello(Location akLocation, ObjectReference akActor1, ObjectReference akActor2)
|
|
EndEvent
|
|
|
|
Event OnStoryIncreaseLevel(int aiNewLevel)
|
|
EndEvent
|
|
|
|
Event OnStoryIncreaseSkill(string asSkill)
|
|
EndEvent
|
|
|
|
Event OnStoryInfection(ObjectReference akTransmittingActor, Form akInfection)
|
|
EndEvent
|
|
|
|
Event OnStoryIntimidateNPC(ObjectReference akActor)
|
|
EndEvent
|
|
|
|
Event OnStoryJail(ObjectReference akGuard, Form akCrimeGroup, Location akLocation, \
|
|
int aiCrimeGold)
|
|
EndEvent
|
|
|
|
Event OnStoryKillActor(ObjectReference akVictim, ObjectReference akKiller, \
|
|
Location akLocation, int aiCrimeStatus, int aiRelationshipRank)
|
|
EndEvent
|
|
|
|
Event OnStoryCraftItem(ObjectReference akBench, Location akLocation, Form akCreatedItem)
|
|
EndEvent
|
|
|
|
Event OnStoryNewVoicePower(ObjectReference akActor, Form akVoicePower)
|
|
EndEvent
|
|
|
|
Event OnStoryPickLock(ObjectReference akActor, ObjectReference akLock)
|
|
EndEvent
|
|
|
|
Event OnStoryPayFine(ObjectReference akCriminal, ObjectReference akGuard, \
|
|
Form akCrimeGroup, int aiCrimeGold)
|
|
EndEvent
|
|
|
|
Event OnStoryPlayerGetsFavor(ObjectReference akActor)
|
|
EndEvent
|
|
|
|
Event OnStoryRelationshipChange(ObjectReference akActor1, ObjectReference akActor2, \
|
|
int aiOldRelationship, int aiNewRelationship)
|
|
EndEvent
|
|
|
|
Event OnStoryRemoveFromPlayer(ObjectReference akOwner, ObjectReference akItem, \
|
|
Location akLocation, Form akItemBase, int aiRemoveType)
|
|
EndEvent
|
|
|
|
Event OnStoryScript(Keyword akKeyword, Location akLocation, ObjectReference akRef1, \
|
|
ObjectReference akRef2, int aiValue1, int aiValue2)
|
|
EndEvent
|
|
|
|
Event OnStoryServedTime(Location akLocation, Form akCrimeGroup, int aiCrimeGold, \
|
|
int aiDaysJail)
|
|
EndEvent
|
|
|
|
Event OnStoryTrespass(ObjectReference akVictim, ObjectReference akTrespasser, \
|
|
Location akLocation, int aiCrime)
|
|
EndEvent
|
|
|
|
; SKSE 64 additions built 2020-07-29 17:24:48.495000 UTC
|
|
|
|
; returns the quest with the specified editor id
|
|
Quest Function GetQuest(string editorId) global native
|
|
|
|
; returns the editor ID of the quest
|
|
string Function GetID() native
|
|
|
|
; returns the priority of the quest
|
|
int Function GetPriority() native
|
|
|
|
; returns the number of aliases associated with the quest
|
|
int Function GetNumAliases() native
|
|
|
|
; returns the specified alias associated with the queest
|
|
Alias Function GetNthAlias(int index) native
|
|
|
|
; returns the alias associated with the quest by name
|
|
Alias Function GetAliasByName(string name) native
|
|
|
|
; returns the alias by AlisID
|
|
Alias Function GetAliasById(int aliasId) native
|
|
|
|
; Returns all the aliases of this quest
|
|
Alias[] Function GetAliases() native |