Difference between revisions of "Globals"
Remove from glossary
imported>JOG m |
imported>Wrye (Remove from glossary) |
||
(15 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. | ||
Line 5: | Line 8: | ||
*'''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) | *'''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. | *'''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]] | |||
[[Category:Gameplay Menu]] | [[Category:Gameplay Menu]] | ||
[[Category:Scripting]] | [[Category:Scripting]] | ||
[[Category:Variables]] |