Difference between revisions of "Globals"
Jump to navigation
Jump to search
imported>CptJoker m (spelling, 2nd giCionToss -> giCoinToss) |
imported>Dominoid (→Notes:) |
||
Line 18: | Line 18: | ||
set giCoinToss to GetRandomPercent / 50 ;giCoinToss is a global short | set giCoinToss to GetRandomPercent / 50 ;giCoinToss is a global short | ||
if( | if( giCoinToss == 1 ) | ||
;do result for heads | ;do result for heads | ||
else | else |
Revision as of 09:11, 18 November 2006
A global variable is available for any script or condition to reference without being linked to a particular quest or object.
Global variables are declared in the main menu under Gameplay -> Globals
- EditorID: The name of the variable. No spaces or special characters are allowed.
- Variable Type: Short and Long are actually the same thing. Both are integer formats. Float is a real number format. Internally all types of global variables are stored as 32-bit floats. The technical implementation of this variable-format causes inaccuracies at very high or low values. (e.g all numbers from 2000000000 to 2000000064 are stored as 2000000000)
- Value: The default value for the global variable. This affects the variable only when the plugin was just installed. After that the value is stored in the savegame.
Notes:
- In almost all cases, using a global variable is unnecessary. Variables defined in quest scripts are generally used instead, and accessed via questID.varName, or getQuestVariable questID varName.
- It seems that, when used in scripts, global variables always act as floats regardless of what you declare them as. This could cause issues in situations such as:
set giCoinToss to GetRandomPercent / 50 ;giCoinToss is a global short if( giCoinToss == 1 ) ;do result for heads else ;do result for tails endif
In the above situation, the only time the heads result code will run is when GetRandomPercent returns exactly 50.
Variables declared in quest scripts will behave as declared and thus are safe to use in situations like the above.