Difference between revisions of "Globals"
Remove from glossary
imported>Kkuhlmann |
imported>Wrye (Remove from glossary) |
||
(17 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
A global variable is available for any script or condition to reference without being linked to a particular quest or object. | 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. | *'''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 [[ | *'''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 [[Variable_types:_floating_point|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. | |||
==See also== | |||
[[List of global variables]] | |||