Difference between revisions of "IsStageDone - Quest"
Jump to navigation
Jump to search
(Elaborate on notes. Add that GetStageDone is an alias. Indicate what happens when called from the current stage's quest fragment script. Indicate what happens if you call SetStage on a lower stage.) |
|||
Line 39: | Line 39: | ||
* <code>IsStageDone</code> returns <code>true</code> for the current quest stage, even while the quest fragment scripts for the current stage have not yet completed. | * <code>IsStageDone</code> returns <code>true</code> for the current quest stage, even while the quest fragment scripts for the current stage have not yet completed. | ||
* A stage is not considered "done" if it has not been explicitly visited, even if its stage number is lower than the current stage number. | |||
* Assume you have a quest with stages 0, 10, 20, 30, 40, 50, and 60. You call <code>SetStage</code> for stages 0, 40, 20, and 60, in that order. See the following table for the result that <code>IsStageDone</code> will return after the final <code>SetStage</code> (to stage 60) has been completed: | * Assume you have a quest with stages 0, 10, 20, 30, 40, 50, and 60. You call <code>SetStage</code> for stages 0, 40, 20, and 60, in that order. See the following table for the result that <code>IsStageDone</code> will return after the final <code>SetStage</code> (to stage 60) has been completed: | ||
{| class="wikitable | {| class="wikitable |
Latest revision as of 17:28, 8 September 2023
Member of: Quest Script
Obtains whether the specified quest stage is done or not.
A stage is "done" if it has ever been visited with the SetCurrentStageID or SetStage functions.
GetStageDone
is an alias for IsStageDone
.
Syntax[edit | edit source]
bool Function IsStageDone(int aiStage) native
bool Function GetStageDone(int aiStage)
return IsStageDone(aiStage)
EndFunction
Parameters[edit | edit source]
- aiStage: The stage to check.
Return Value[edit | edit source]
Whether the passed-in stage is done or not.
Examples[edit | edit source]
; is stage 20 done in the main quest?
bool mainQuestStage20Done = MainQuestProperty.IsStageDone(20)
; Prints a debug message if the side quest has completed stage 10
if (SideQuestProperty.GetStageDone(10))
Debug.Trace("The side quest has finished stage 10!")
endIf
Notes[edit | edit source]
IsStageDone
returnstrue
for the current quest stage, even while the quest fragment scripts for the current stage have not yet completed.- A stage is not considered "done" if it has not been explicitly visited, even if its stage number is lower than the current stage number.
- Assume you have a quest with stages 0, 10, 20, 30, 40, 50, and 60. You call
SetStage
for stages 0, 40, 20, and 60, in that order. See the following table for the result thatIsStageDone
will return after the finalSetStage
(to stage 60) has been completed:
IsStageDone | Result |
---|---|
0 | true |
10 | false |
20 | true |
30 | false |
40 | true |
50 | false |
60 | true |
Even though GetCurrentStageID()
will return 60, IsStageDone
will return false for stages 10, 30, and 50, because these stages have not yet been visited. If you subsequently call SetStage(30)
, the result of GetCurrentStageID
will still be 60, but IsStageDone(30)
will now return true.