Difference between revisions of "Globals"

From the Oblivion ConstructionSet Wiki
Jump to navigation Jump to search
imported>Jduvall
imported>Wrye
(Remove from glossary)
 
(8 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==

Latest revision as of 21:10, 5 June 2008

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:[edit | edit source]

  • 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[edit | edit source]

List of global variables