Difference between revisions of "Globals"

528 bytes added ,  22:10, 5 June 2008
Remove from glossary
imported>Jduvall
imported>Wrye
(Remove from glossary)
 
(7 intermediate revisions by 7 users not shown)
Line 8: 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.


==Note==
 
The value of a Global is stored in the save game. So you can not change the default value (by using the Globals form in the editor) of a an already existing Global in a plugin and expect it to change in a player's saved game unless you also script this with a "set myGlobal to whatever" line in a script. --[[User:Jduvall|Jduvall]] 13:39, 15 June 2006 (EDT)
==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==
==See also==
Anonymous user