Skyrim:Variable Reference: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K
K (Textersetzung - „tesscript>“ durch „papyrusscript>“)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 19: Zeile 19:
  
 
=== Beispiele ===
 
=== Beispiele ===
<tesscript>
+
<papyrusscript>
 
; Definiert eine "foo"  genannte Variable, die ein integer ist
 
; Definiert eine "foo"  genannte Variable, die ein integer ist
 
int foo
 
int foo
</tesscript>
+
</papyrusscript>
 
<br>
 
<br>
<tesscript>
+
<papyrusscript>
 
; Definiert eine "bar" genannte Variable, die mit einem Wert von 10.5 mal x beginnt  
 
; Definiert eine "bar" genannte Variable, die mit einem Wert von 10.5 mal x beginnt  
 
; (muss in einer Funktion sein)
 
; (muss in einer Funktion sein)
 
float bar = 10.5 * x
 
float bar = 10.5 * x
</tesscript>
+
</papyrusscript>
 
<br>
 
<br>
<tesscript>
+
<papyrusscript>
 
; Definiert zwei Variablen, beide „foo“ genannt die , die verschieden voneinander sind
 
; Definiert zwei Variablen, beide „foo“ genannt die , die verschieden voneinander sind
 
if x
 
if x
Zeile 39: Zeile 39:
 
; auf foo kann außerhalb nicht zugegriffen werden!
 
; auf foo kann außerhalb nicht zugegriffen werden!
 
foo = 10 ; Fehler beim Übersetzen
 
foo = 10 ; Fehler beim Übersetzen
</tesscript>
+
</papyrusscript>
  
 
== Value Variablen ==
 
== Value Variablen ==
Zeile 45: Zeile 45:
  
 
=== Beispiele ===
 
=== Beispiele ===
<tesscript>
+
<papyrusscript>
 
x = 5
 
x = 5
 
y = x ; Kopiert den Wert von x und gibt ihn an y  
 
y = x ; Kopiert den Wert von x und gibt ihn an y  
 
y = 6 ; Ändert den Wert von y zu 6, was aber keinen Einfluss auf x hat,
 
y = 6 ; Ändert den Wert von y zu 6, was aber keinen Einfluss auf x hat,
 
       ; die immer noch 5 ist  
 
       ; die immer noch 5 ist  
</tesscript>
+
</papyrusscript>
  
 
== Object Variaben ==
 
== Object Variaben ==
Zeile 56: Zeile 56:
  
 
=== Beispiele ===
 
=== Beispiele ===
<tesscript>
+
<papyrusscript>
 
x = MyObject
 
x = MyObject
 
x.SetCoolValue(5) ; Setzt den „cool value“ des Objektes, auf das x zeigt, auf 5
 
x.SetCoolValue(5) ; Setzt den „cool value“ des Objektes, auf das x zeigt, auf 5
Zeile 64: Zeile 64:
 
a = x.GetCoolValue() ; gibt  10 zurück!
 
a = x.GetCoolValue() ; gibt  10 zurück!
 
b = y.GetCoolValue() ; gibt  ebenfalls 10 zurück!
 
b = y.GetCoolValue() ; gibt  ebenfalls 10 zurück!
</tesscript>
+
</papyrusscript>
  
  
Zeile 70: Zeile 70:
 
{{Übersetzung|ckwiki|Variable Reference}}
 
{{Übersetzung|ckwiki|Variable Reference}}
  
[[Category:Papyrus| Variable Reference]]
+
[[Category:Papyrus|Variable Reference]]
[[Category:Scripting Wissen| Variable Reference]]
+
[[Category:Scripting Wissen|Variable Reference]]
[[Category:Papyrus Sprachreferenzen| Variable Reference]]
+
[[Category:Papyrus Sprachreferenzen|Variable Reference]]

Aktuelle Version vom 13. August 2012, 13:00 Uhr

Eine Variable ist Speicher für einen einzelnen Wert in Papyrus. Abhängig vom Typ kann es ein Wert oder eine Referenz auf einen Wert sein. Variablen können im Script definiert sein oder innerhalb einer bestimmten Funktion oder einem Block.

Definieren von Variablen

Im Script:

<variable definition> ::= <type> <identifier> ['=' <constant>] (<flags>)*

In einer Funktion:

<variable definition> ::= <type> <identifier> ['=' <expression>]

Variablen werden einfach definiert, indem der Typ geschrieben wird, gefolgt vom Identifier , mit dem die Variable genutzt wird.

Man kann optional ein Gleichheitszeichen folgen lassen, dem ein Ausdruck folgt (in einer Funktion) oder ein Wert (in einem Script), um die variable mit diesem Wert in der selben Zeile zu initialisieren. Wenn man keinen Wert bei der Initialisierung angibt, hat die Variable ihren definierten Anfangswert. Wenn eine Variable außerhalb einer Funktion oder eines Events deklariert wird, kann sie nur als Literal initialisiert werden. Innerhalb einer Funktion oder eines Events können Ausdrücke in der Initialisierung der Variablen genutzt werden.

Variablen in Scripts müssen vor Gebrauch nicht definiert werden, Variablen innerhalb von Funktionen jedoch schon. Variablen, die in Scripts definiert sind, können Flags haben.

Der Identifier muss innerhalb des Blocks, in den er definiert ist, eindeutig sein. D.h. wenn man im Script eine Variable mit Namen "foo" hat, darf keine der Funktionen eine lokale Variable mit Namen "foo" definiert haben. Wenn jedoch eine Funktion eine Variable mit Namen "foo" hat, darf eine andere Funktion im selben Script ebenfalls eine Variable mit Namen "foo" haben. Variablen, die innerhalb eines Blocks (wie ein "if" oder "while") definiert sind, sind für diesen Block lokale Variablen.


Beispiele

<papyrusscript>

Definiert eine "foo" genannte Variable, die ein integer ist

int foo </papyrusscript>
<papyrusscript>

Definiert eine "bar" genannte Variable, die mit einem Wert von 10.5 mal x beginnt
(muss in einer Funktion sein)

float bar = 10.5 * x </papyrusscript>
<papyrusscript>

Definiert zwei Variablen, beide „foo“ genannt die , die verschieden voneinander sind

if x

 int foo = 10

else

 float foo = 10.5

endIf

auf foo kann außerhalb nicht zugegriffen werden!

foo = 10 ; Fehler beim Übersetzen </papyrusscript>

Value Variablen

Variablen, die vom Typ int, float, bool, oder string sind, werden „Value Variablen“ genannt. Diese Variablen speichern einfach einen Wert und wenn man auf sie an andere zuweist oder sie einer Funktion übergibt, kopieren sie ihren Wert

Beispiele

<papyrusscript> x = 5 y = x ; Kopiert den Wert von x und gibt ihn an y y = 6 ; Ändert den Wert von y zu 6, was aber keinen Einfluss auf x hat,

     ; die immer noch 5 ist 

</papyrusscript>

Object Variaben

Variablen, die Objekte oder Arrays sind, werden „Object Variablen“ genannt. Diese Variablen zeigen auf einen Wert anstatt ihn zu speichern. Wenn man auf sie an eine andere zuweist, zeigen beide auf den selben Wert und Änderungen, die an einer gemacht werden, spiegeln sich in der anderen wider

Beispiele

<papyrusscript> x = MyObject x.SetCoolValue(5) ; Setzt den „cool value“ des Objektes, auf das x zeigt, auf 5 y = x ; Y zeigt nun auch auf MyObject y.SetCoolValue(10) ; Setzt den „cool value“ des Objektes,

                  ; auf das sowohl x als auch y zeigen, auf 10

a = x.GetCoolValue() ; gibt 10 zurück! b = y.GetCoolValue() ; gibt ebenfalls 10 zurück! </papyrusscript>


Links