TESCS2 : Globals

De Wiwiki
Sauter à la navigation Sauter à la recherche

Une variable globale peut être utilisée dans tous les scripts ou conditions, sans être rattachée à une quelconque quête ou à un objet particulier. Les variables globales sont déclarées dans le menu sous Gameplay -> Globals

Les variables globles du jeu sont décrites dans l'article Liste des variables globales.


  • EditorID: Le nom de la variable. Les espaces et les caractères spéciaux ne sont pas autorisés.
  • Variable Type: Short et Long sont actuellement la même chose. Les deux types sont en réalité des formats Integer (nombres entiers) stockés en 32 bits. Float est le format des nombres réels (avec partie décimale en virgule flottante). De façon interne, tous ces formats sont stockés sur 32 bits. Cette technique engendre quelques incohérences en ce qui concerne les comparaisons entre différents formats, pour les valeurs très grandes ou très petites. (par exemple, les nombres compris entre 2000000000 et 2000000064 sont stockés comme la valeur 2000000000 (parce qu'il faut 8 bits pour mémoriser l'exposant en virgule flottante).
  • Value: La valeur par défaut de la variable globale. C'est la valeur de la variable lors de l'installation du plugin que crée cette variable. Ensuite, la valeur est stockée dans chaque sauvegarde de la partie.


Notes:

  • Dans la plupart des cas, il n'est pas nécessaire d'utiliser une variable globale. Les variables définies dans un script de quête peuvent être utilisées à la place dans vos MODS, et accédées en donnant leur référence sous la forme complète :
    • maQueteID.maVariable
    • ou getQuestVariable maQueteID, maVariable
  • Il semble que, lorsqu'elles sont utilisées dans un script, les variables globales se comportent toujours comme des réels en virgule flottante (FLOAT), même si elles sont déclarées en Short ou Long, c'est à dire comme des entiers (Integer). Cela explique la perte de précision de 2 chiffres vue plus haut, et également les comportements de ce type :
set toto to GetRandomPercent / 50 ;toto est déclarée comme une variable globale short (donc entière)

if( toto == 1 )
    xxx   ; action1
else
    yyy    ;action2
endif

Dans la situation précédente, l'action xxx n'est exécutée que lorsque la fonction GetRandomPercent a pour résultat exactement 50. La variable globale conserve donc sa partie fractionnaire lors du calcul, et n'est donc pas convertie en un entier.

Par contre, les variables déclarées dans des scripts de quête fonctionnent bien telles qu'elles sont déclarées, et sont donc plus fiables à utiliser dans les situations analogues.

Voir également

TESCS2 : Liste des variables globales