Oblivion:Set: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K (Die Seite wurde neu angelegt: Setzt eine Lokale oder Globale Variable auf den angegebenen Wert. Dieser Wert kann eine Nummer oder eine Expression (Ausdruck) sein. Arithmetische Op...)
 
K
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 17: Zeile 17:
 
|/||Division
 
|/||Division
 
|-
 
|-
|%||Modul (Dividiert Integers und gibt den Restwert zurück)
+
|%||Modul (Dividiert Integer-Variablen und gibt den Restwert zurück)
 
|}
 
|}
 
</div>
 
</div>
Zeile 34: Zeile 34:
 
* Wenn du nur Zahlen in deiner Division benutzt, benötigst du mindestens einen Dezimalpunkt um dem Spiel zu sagen, das du eine Gleitkomma Division machen willst. Ohne einen Dezimalpunkt werden die Zahlen hinter dem Komma einfach weggelassen:
 
* Wenn du nur Zahlen in deiner Division benutzt, benötigst du mindestens einen Dezimalpunkt um dem Spiel zu sagen, das du eine Gleitkomma Division machen willst. Ohne einen Dezimalpunkt werden die Zahlen hinter dem Komma einfach weggelassen:
  
<code>float a
+
<tesscript>float a
 
set a to 9/5    ; Setzt "a" auf 1.000 - Die Zahl hinter dem Komma wird weggelassen.  
 
set a to 9/5    ; Setzt "a" auf 1.000 - Die Zahl hinter dem Komma wird weggelassen.  
set a to 9.0/5  ; Setzt "a" auf 1.800</code>
+
set a to 9.0/5  ; Setzt "a" auf 1.800</tesscript>
  
 
* Wenn du das korrekt aufgerundete Ergebnis einer Division in einer Integer-[[ob:Variablen|Variable]] speichern willst, solltest du sicherstellen, das die Berechnung Gleitkommas benutzt (So das der Dezimal-Bruch nicht abgeschnitten wird) und addierst 0.5:
 
* Wenn du das korrekt aufgerundete Ergebnis einer Division in einer Integer-[[ob:Variablen|Variable]] speichern willst, solltest du sicherstellen, das die Berechnung Gleitkommas benutzt (So das der Dezimal-Bruch nicht abgeschnitten wird) und addierst 0.5:
  
<code>short a
+
<tesscript>short a
 
set a to 9/5          ; Setzt "a" auf 1
 
set a to 9/5          ; Setzt "a" auf 1
 
set a to 9/5  + 0.5  ; Setzt "a" auf 1
 
set a to 9/5  + 0.5  ; Setzt "a" auf 1
 
set a to 9.0/5        ; Setzt "a" auf 1
 
set a to 9.0/5        ; Setzt "a" auf 1
 
set a to 9.0/5 + 0.5  ; Setzt "a" auf 2
 
set a to 9.0/5 + 0.5  ; Setzt "a" auf 2
set a to 7.0/5 + 0.5  ; Setzt "a" auf 1</code>
+
set a to 7.0/5 + 0.5  ; Setzt "a" auf 1</tesscript>
  
<code>short a
+
<tesscript>short a
 
set a to 9
 
set a to 9
set a to a/5.0 + 0.5  ; Setzt "a" auf 2</code>
+
set a to a/5.0 + 0.5  ; Setzt "a" auf 2</tesscript>
  
<code>short a
+
<tesscript>short a
 
float b
 
float b
 
set b to 9
 
set b to 9
set a to b/5  + 0.5  ; Setzt "a" auf 2
+
set a to b/5  + 0.5  ; Setzt "a" auf 2</tesscript>
</code>
 
  
* Du kannst auch einen comparsion (Vergleichswert?) als "Wert" benutzen. Die Variable wird dann entweder auf 1 oder 0 gesetzt, abhängig davon, ob die Bedingung wahr ist oder nicht.
 
  
<code>set goodluck to player.Getav luck > 60</code>
+
* Du kannst auch einen Vergleichswert als "Wert" benutzen. Die Variable wird dann entweder auf 1 oder 0 gesetzt, abhängig davon, ob die Bedingung wahr ist oder nicht.
  
 +
<tesscript>set goodluck to player.Getav luck > 60</tesscript>
 
* Macht das selbe wie:
 
* Macht das selbe wie:
  
<code>if player.Getav luck > 60
+
<tesscript>if player.Getav luck > 60
 
   set goodluck to 1
 
   set goodluck to 1
 
else
 
else
 
   set goodluck to 0
 
   set goodluck to 0
endif</code>
+
endif</tesscript>
  
 
* Andere Beispiele:
 
* Andere Beispiele:
  
<code>set a to 2
+
<tesscript>set a to 2
 
set b to a*a
 
set b to a*a
 
set c to (b - a)*b - a
 
set c to (b - a)*b - a
Zeile 79: Zeile 78:
 
set stage to getstage quest1 + 10
 
set stage to getstage quest1 + 10
  
set weapondrawn to player.isweaponout</code>
+
set weapondrawn to player.isweaponout</tesscript>
  
  
 
[[Kategorie: Befehle|Set]]
 
[[Kategorie: Befehle|Set]]
[[Kategorie: Scripts|Set]]
 

Aktuelle Version vom 28. August 2008, 21:52 Uhr

Setzt eine Lokale oder Globale Variable auf den angegebenen Wert. Dieser Wert kann eine Nummer oder eine Expression (Ausdruck) sein.


Arithmetische Operatoren:

Operator Beschreibung
"+" Addition
"-" Subtraktion
* Multiplikation
/ Division
% Modul (Dividiert Integer-Variablen und gibt den Restwert zurück)

Hinweise:


Der Modul-Operator "%" wird nach Multiplikation/Division ausgewertet, aber noch vor Addition/Subtraktion

4 * 3 % 2 = 0 4 * (3%2) = 4 1 + 2 % 3 = 3 (1+2) % 3 = 0

  • Ein Minuszeichen vor einer Zahl oder Variable gilt als "Negativ"-Zeichen. Wenn du eine Subtraktion durchführen willst, benötigst du ein Leerzeichen vor und hinter dem Minuszeichen. Das ist der einzige Platz, wo du wirklich ein Leerzeichen zweischen Arithmetischen Operanten brauchst (Zur Veranschaulichung: "a-b" wird nicht compiliert, du musst "a - b" schreiben).
  • Wenn du nur Zahlen in deiner Division benutzt, benötigst du mindestens einen Dezimalpunkt um dem Spiel zu sagen, das du eine Gleitkomma Division machen willst. Ohne einen Dezimalpunkt werden die Zahlen hinter dem Komma einfach weggelassen:

<tesscript>float a set a to 9/5  ; Setzt "a" auf 1.000 - Die Zahl hinter dem Komma wird weggelassen. set a to 9.0/5  ; Setzt "a" auf 1.800</tesscript>

  • Wenn du das korrekt aufgerundete Ergebnis einer Division in einer Integer-Variable speichern willst, solltest du sicherstellen, das die Berechnung Gleitkommas benutzt (So das der Dezimal-Bruch nicht abgeschnitten wird) und addierst 0.5:

<tesscript>short a set a to 9/5  ; Setzt "a" auf 1 set a to 9/5 + 0.5  ; Setzt "a" auf 1 set a to 9.0/5  ; Setzt "a" auf 1 set a to 9.0/5 + 0.5  ; Setzt "a" auf 2 set a to 7.0/5 + 0.5  ; Setzt "a" auf 1</tesscript>

<tesscript>short a set a to 9 set a to a/5.0 + 0.5  ; Setzt "a" auf 2</tesscript>

<tesscript>short a float b set b to 9 set a to b/5 + 0.5  ; Setzt "a" auf 2</tesscript>


  • Du kannst auch einen Vergleichswert als "Wert" benutzen. Die Variable wird dann entweder auf 1 oder 0 gesetzt, abhängig davon, ob die Bedingung wahr ist oder nicht.

<tesscript>set goodluck to player.Getav luck > 60</tesscript>

  • Macht das selbe wie:

<tesscript>if player.Getav luck > 60

 set goodluck to 1

else

 set goodluck to 0

endif</tesscript>

  • Andere Beispiele:

<tesscript>set a to 2 set b to a*a set c to (b - a)*b - a set d to ((3* -b+a) - c)/ -2 message "a=%.0f, b=%.0f, c=%.0f, d=%.0f" a b c d  ; ("a=2, b=4, c=6, d=8")

set stage to getstage quest1 + 10

set weapondrawn to player.isweaponout</tesscript>