Oblivion:Variablen: Unterschied zwischen den Versionen
Keris (Diskussion | Beiträge) K |
Keris (Diskussion | Beiträge) K |
||
Zeile 27: | Zeile 27: | ||
− | === Der Typ | + | === 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 [[ob:Construction Set|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. | 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 [[ob:Construction Set|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. [[wikipedia:de:Ganzzahl%C3%BCberlauf|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. | Da sie unsigned also vorzeichenlos sind, hat das einen auf den ersten Blick überraschenden Effekt, den sog. [[wikipedia:de:Ganzzahl%C3%BCberlauf|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== | == Gültigkeitsbereiche und Lebensdauer von Variablen== | ||
− | Variablen sind nur in ihrem [[wikipedia:de:Variable_%28Programmierung%29#G.C3.BCltigkeitsbereich_von_Variablen_.28Scope.29|Gültigkeitsbereich]] bekannt und damit nutzbar. Das Bekanntmachen wird [[wikipedia:de:Deklaration_%28Programmierung%29 |Deklaration]] genannt. | + | Variablen sind nur in ihrem [[wikipedia:de:Variable_%28Programmierung%29#G.C3.BCltigkeitsbereich_von_Variablen_.28Scope.29|Gültigkeitsbereich]] bekannt und damit nutzbar. Das Bekanntmachen wird [[wikipedia:de:Deklaration_%28Programmierung%29 |Deklaration]] genannt. |
+ | |||
+ | === Scriptvariablen === | ||
+ | Die [[wikipedia:de:Deklaration_%28Programmierung%29 |Deklaration]] geschieht durch die Angabe des Variablentyps gefolgt von dem Variablennamen. | ||
<tesscript> | <tesscript> | ||
short a | short a | ||
Zeile 41: | Zeile 45: | ||
ref d | ref d | ||
</tesscript> | </tesscript> | ||
+ | |||
+ | Da ein Script nicht aus sich heraus existiert, sondern an ein Oblivion-Element (Object, Zauber oder quest) gebunden ist, existieren die Variablen solange das Oblivion-Element existiert. | ||
+ | |||
− | |||
− | |||
=== 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 [[ob:Construction Set|TESIVCS]] 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. | ||
Zeile 54: | Zeile 59: | ||
* Value - Der Standard-Wert für die Globale Variable | * Value - Der Standard-Wert für die Globale Variable | ||
+ | Globale Variablen werden intern im Float-Format abgelegt, aber ansonsten dem angegebenen Typ entsprechend behandelt. | ||
− | + | Da globale Variablen an [[[Oblivion:Oblivion]] bzw. an eine Mod gebunden sind, existieren sie, solange die "immer" bzw. so lnage, wie die Mod aktiviert ist. | |
− | + | ||
− | |||
− | === | + | == Besonderheiten == |
− | |||
+ | === Der Typ Float === | ||
+ | Die [[wikipedia:de:Gleitkommazahl#Eigenschaften_einer_Gleitkommaarithmetik|Gleitkommaarithmetik]] von Float-Zahlen (oder vereinfacht ausgedrückt, das Rechnen mit Float-Zahlen) ist ein wenig gewöhnungsbedürftig, da mit diesem für Computer entwickelten Datentyp reale Zahlen nicht exakt abgebildet werden können. | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
=== Der Typ Ref === | === Der Typ Ref === | ||
+ | == Weitere Hinweise == | ||
+ | * [[wikipedia:de:Numerik|Numerik]] | ||
+ | * [[wikipedia:de:Rundungsfehler|Rundungsfehler]] | ||
[[Kategorie: Grundlegendes Wissen|Variablen]] | [[Kategorie: Grundlegendes Wissen|Variablen]] | ||
[[Kategorie: Scripts|Variablen]] | [[Kategorie: Scripts|Variablen]] |
Version vom 11. August 2008, 15:55 Uhr
Inhaltsverzeichnis
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.
Scriptvariablen
Die Deklaration geschieht durch die Angabe des Variablentyps gefolgt von dem Variablennamen. <tesscript> short a long b float c ref d </tesscript>
Da ein Script nicht aus sich heraus existiert, sondern an ein Oblivion-Element (Object, Zauber oder quest) gebunden ist, existieren die Variablen solange das Oblivion-Element existiert.
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
Globale Variablen werden intern im Float-Format abgelegt, aber ansonsten dem angegebenen Typ entsprechend behandelt.
Da globale Variablen an [[[Oblivion:Oblivion]] bzw. an eine Mod gebunden sind, existieren sie, solange die "immer" bzw. so lnage, wie die Mod aktiviert ist.
Besonderheiten
Der Typ Float
Die Gleitkommaarithmetik von Float-Zahlen (oder vereinfacht ausgedrückt, das Rechnen mit Float-Zahlen) ist ein wenig gewöhnungsbedürftig, da mit diesem für Computer entwickelten Datentyp reale Zahlen nicht exakt abgebildet werden können.