Oblivion:Variablen: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K
K
Zeile 9: Zeile 9:
  
 
=== Der Typ Short ===
 
=== Der Typ Short ===
Der Typ Short speichert [[wikipedia:de:Integer_%28Datentyp%29|ganzzahlige ]]([[wikipedia:de:Integer_%28Datentyp%29|integer]]) Werte. Im [[ob:ConstructionSet|TESCS]] ist ein [[wikipedia:de:Integer_%28Datentyp%29|integer]]-Format, das 16 [[wikipedia:de:Bit Bit]] also 2 [[wikipedia:de:Byte|Byte]] belegt).
+
Der Typ Short speichert [[wikipedia:de:Integer_%28Datentyp%29|ganzzahlige ]]([[wikipedia:de:Integer_%28Datentyp%29|integer]]) Werte. Im [[ob:Construction Set|TESCS]] ist ein [[wikipedia:de:Integer_%28Datentyp%29|integer]]-Format, das 16 [[wikipedia:de:Bit| Bit]] also 2 [[wikipedia:de:Byte|Byte]] belegt).
 
Da ein [[wikipedia:de:Bit|Bit]] für die Darstellung des Vorzeichen benötigt wird, können die Variablen von -2<sup>15</sup> (-32768) bis 2<sup>15-1</sup> (+32767) reichen.  
 
Da ein [[wikipedia:de:Bit|Bit]] für die Darstellung des Vorzeichen benötigt wird, können die Variablen von -2<sup>15</sup> (-32768) bis 2<sup>15-1</sup> (+32767) reichen.  
  
  
 
=== Der Typ Long ===
 
=== Der Typ Long ===
Der Typ Long speichert ganzzahlige oder auch ([[wikipedia:de:Integer_%28Datentyp%29|integer]]) Werte. Im TESCS ist ein [[wikipedia:de:Integer_%28Datentyp%29|integer]]-Format, das 326 [[wikipedia:de:Bit|Bit]] also 4 [[wikipedia:de:Byte|Byte]] belegt).
+
Der Typ Long speichert [[wikipedia:de:Integer_%28Datentyp%29|ganzzahlige ]]([[wikipedia:de:Integer_%28Datentyp%29|integer]]) Werte. Im [[ob:Construction Set|TESCS]] ist ein [[wikipedia:de:Integer_%28Datentyp%29|integer]]-Format, das 326 [[wikipedia:de:Bit|Bit]] also 4 [[wikipedia:de:Byte|Byte]] belegt).
 
Da ein [[wikipedia:de:Bit|Bit]] für die Darstellung des Vorzeichen benötigt wird, können die Variablen von -2<sup>31</sup> (-2147483647) bis 2<sup>31-1</sup> (+2147483647) reichen.  
 
Da ein [[wikipedia:de:Bit|Bit]] für die Darstellung des Vorzeichen benötigt wird, können die Variablen von -2<sup>31</sup> (-2147483647) bis 2<sup>31-1</sup> (+2147483647) reichen.  
  
 
=== Der Typ Float ===
 
=== Der Typ Float ===
Der Typ float dient zur Speicherung von [[wikipedia:de:Gleitkommazahl|Gleitkommazahlenl]], im englischen floating point numbers genannt
+
Der Typ float dient zur Speicherung von [[wikipedia:de:Gleitkommazahl|Gleitkommazahlenl]], im englischen floating point numbers (kurz floats] genannt
  
Das [[wikipedia:de:IEEE_754|IEEE-Format]] interpretiert eine bestimmte Anzahl von [[wikipedia:de:Bit| Bits]] als Dezimalzahl. Es gibt hier eine kleinere Variante mit 32 Bit und eine größere Variante mit 64 Bit. Im 32 Bit Short-Format, was für das TESCS als Float genutzt wird, werden die [[wikipedia:de:Bit| Bits]] 0 bis 22 als Mantisse interpretiert, die [[wikipedia:de:Bit| Bits]] 23 bis 30 als Exponent und das [[wikipedia:de:Bit Bit]] 31 als Vorzeichen.
+
Das [[wikipedia:de:IEEE_754|IEEE-Format]] interpretiert eine bestimmte Anzahl von [[wikipedia:de:Bit| Bits]] als Dezimalzahl. Es gibt hier eine kleinere Variante mit 32 [[wikipedia:de:Bit| Bit]] und eine größere Variante mit 64 [[wikipedia:de:Bit| Bit]]. Im [[wikipedia:de:IEEE_754#Zahlenformate_und_andere_Festlegungen_des_IEEE_754-Standards|32 Bit Short-Format], was für das [[ob:Construction Set|TESIVCS]] als Float genutzt wird, werden die [[wikipedia:de:Bit| Bits]] 0 bis 22 als [[wikipedia:de:Mantisse|Mantisse]] interpretiert, die [[wikipedia:de:Bit| Bits]] 23 bis 30 als [[wikipedia:de:Exponent_%28Mathematik%29|Exponent]] und das [[wikipedia:de:Bit Bit]] 31 als Vorzeichen.
  
  
Zeile 43: Zeile 43:
  
 
   
 
   
Im TESCS gibt es drei unterschiedliche Gültigkeitsbereiche.
+
Im [[ob:Construction Set|TESIVCS]] gibt es drei unterschiedliche Gültigkeitsbereiche.
  
 
=== Globale Variablen ===
 
=== Globale Variablen ===
Eine Globale Variable ist für jedes Script oder Bedingung einer Referenz benutzbar, ohne das es einen Bezug an eine einzelne Quest oder Objekt braucht. Um alle Globalen Variablen zu sehen, mit denen man im TESCS arbeiten kann, wähle im Haupt-Menü "GamePlay -> Globals" und eine Liste wird dir angezeigt.
+
Eine Globale Variable ist für jedes Script oder Bedingung einer Referenz benutzbar, ohne das es einen Bezug an eine einzelne Quest oder Objekt braucht. Um alle Globalen Variablen zu sehen, mit denen man im [[ob:Construction Set|TESIVCS]] arbeiten kann, wähle im Haupt-Menü "GamePlay -> Globals" und eine Liste wird dir angezeigt.
  
 
Du kannst dir auch eigene Globale Variablen erstellen. Einfach in die eben erwähnte Liste rechtsklicken und "new" wählen.
 
Du kannst dir auch eigene Globale Variablen erstellen. Einfach in die eben erwähnte Liste rechtsklicken und "new" wählen.

Version vom 9. August 2008, 10:25 Uhr

Allgemeines zu Variablen im CS

Die Scriptsprache des TESIVCS enthält Variablen wie andere Programmiersprachen auch.


Variablentypen

Es gibt unterschiedliche Datentypen


Der Typ Short

Der Typ Short speichert ganzzahlige (integer) Werte. Im TESCS ist ein integer-Format, das 16 Bit also 2 Byte belegt). Da ein Bit für die Darstellung des Vorzeichen benötigt wird, können die Variablen von -215 (-32768) bis 215-1 (+32767) reichen.


Der Typ Long

Der Typ Long speichert ganzzahlige (integer) Werte. Im TESCS ist ein integer-Format, das 326 Bit also 4 Byte belegt). Da ein Bit für die Darstellung des Vorzeichen benötigt wird, können die Variablen von -231 (-2147483647) bis 231-1 (+2147483647) reichen.

Der Typ Float

Der Typ float dient zur Speicherung von Gleitkommazahlenl, im englischen floating point numbers (kurz floats] genannt

Das IEEE-Format interpretiert eine bestimmte Anzahl von Bits als Dezimalzahl. Es gibt hier eine kleinere Variante mit 32 Bit und eine größere Variante mit 64 Bit. Im [[wikipedia:de:IEEE_754#Zahlenformate_und_andere_Festlegungen_des_IEEE_754-Standards|32 Bit Short-Format], was für das TESIVCS als Float genutzt wird, werden die Bits 0 bis 22 als Mantisse interpretiert, die Bits 23 bis 30 als Exponent und das wikipedia:de:Bit Bit 31 als Vorzeichen.


Der Typ Ref

refs in HEX,


Der Typ "unsigned Integer"

Neben diesen Variablentypen, die in der Scriptsprache deklariert und als Variablen im Programm genutzt werden können, gibt es noch zwei weitere Datentypen, die im TESIVCS in Gebrauch sind. Dies sind Unsigned Integer mit 8 bzw. 16 bit Länge. Sie werden hauptsächlich genutzt, um Attributs- und Fähigkeitswerte zu speichern. Da sie unsigned also vorzeichenlos sind, hat das einen auf den ersten Blick überraschenden Effekt, den sog. Ganzzahlüberlauf, der dazu führt, dass zum Beispiel. ein x-wert von 255 durch Addition von 2 zu 1 statt zu 257 wird. Die häufig anzutreffende Bemerkung, dass "-1" unendlich viel sei, bedeutet also nur, dass "-1" den größtmöglichen Wert repräsentiert.

Gültigkeitsbereiche und Lebensdauer von Variablen

Variablen sind nur in ihrem Gültigkeitsbereich bekannt und damit nutzbar. Das Bekanntmachen wird Deklaration genannt. Innerhalb von Scripts geschieht dies durch die Angabe des Variablentyps gefolgt von dem Variablennamen.

<tesscript> short a long b float c ref d </tesscript>


Im TESIVCS gibt es drei unterschiedliche Gültigkeitsbereiche.

Globale Variablen

Eine Globale Variable ist für jedes Script oder Bedingung einer Referenz benutzbar, ohne das es einen Bezug an eine einzelne Quest oder Objekt braucht. Um alle Globalen Variablen zu sehen, mit denen man im TESIVCS arbeiten kann, wähle im Haupt-Menü "GamePlay -> Globals" und eine Liste wird dir angezeigt.

Du kannst dir auch eigene Globale Variablen erstellen. Einfach in die eben erwähnte Liste rechtsklicken und "new" wählen.

   * EditorID - Der Name der Variable. Freizeichen oder Sonderzeichen sind nicht erlaubt
   * Variable Type – Es sind die Typen Short, Long und Float möglich
   * Value - Der Standard-Wert für die Globale Variable


Questvariablen

Questvariablen sind Questvariablen solange die Quest nicht abgeschlossen ist.

Scriptvariablen

Scriptvariablen immer, solange das zugehörige Objekt oder der zugehörige Zauber existiert.


Besonderheiten

Der Typ Float

Die Gleitkommaarithmetik von Float-Zahlen (oder vereinfacht ausgedrückt, das Rechnen mit Float-Zahlen) ist ein wenig gewöhnungsbedürftig.

Numerik Rundungsfehler

Der Typ Ref