ModObjectiveGlobal - Quest

Member of: Quest Script

Mods a global variable in a threadsafe way. Optional parameters allow automatic redisplay and completion (or failure) of a quest objective using this global variable.

SyntaxEdit

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
		if afTargetValue > -1
			if (abCountingUp && aModGlobal.GetValue() >= afTargetValue) || (!abCountingUp && aModGlobal.GetValue() <= afTargetValue)
				if (abCompleteObjective)
					SetObjectiveCompleted(aiObjectiveID)
					return true
				Else
					SetObjectiveFailed(aiObjectiveID)
					return true
				Endif
			elseIf (abRedisplayObjective)
				SetObjectiveDisplayed(aiObjectiveID, true, true)
			Else
				SetObjectiveDisplayed(aiObjectiveID, true, false)
			endif
		elseIf (abRedisplayObjective)
			SetObjectiveDisplayed(aiObjectiveID, true, true)
		Else
			SetObjectiveDisplayed(aiObjectiveID, true, false)
		endif
	endif
	return false
endFunction

ParametersEdit

  • afModValue: The value to add to aModGlobal
  • aModGlobal: The global variable we are modifying
  • aiObjectiveID: ObjectiveID to redisplay whenever this function is called.
    • Default: -1 (no objective)
  • afTargetValue: Value you're counting up (or down) towards -- if you pass in a non-negative number, function will return TRUE when the global reaches the target value
    • Default: -1.0 (no target value)
  • abCountingUp: True to count up to target value, false to count down
    • Default: true
  • abCompleteObjective: True to complete the objective when target value is reached, false to fail the objective.
    • Default: true
  • abRedisplayObjective: True to re-display the objective every time the function is called, false to only show on success/failure.
    • Default: true

Return ValueEdit

True, if there is a target value and the global value reaches the target value.

ExamplesEdit

; Adds 1 to MyGlobal
MyQuest.ModObjectiveGlobal(1, MyGlobal)


; Adds 1 to MyGlobal, updates objective 10
MyQuest.ModObjectiveGlobal(1, MyGlobal, 10)


; adds 1 to ExteriorDefenderDeadCount, updates objective 30, sets stage 60 when it reaches ExteriorDefenderTotal
if MyQuest.ModObjectiveGlobal(1, ExteriorDefenderDeadCount, 30, ExteriorDefenderTotal.value)
  SetStage(60)
endif

See AlsoEdit