Oblivion:If
Mit dem IF-Befehl kannst du Bedingungen festlegen, um bestimmte Blöcke (und dessen Script-Kommandos) auszuführen. Der IF-Befehl in Oblivion ist sehr stark und vergleichbar mit dem in "echten" Programmiersprachen.
Inhaltsverzeichnis
Überblick
Ein IF-Befehl benutzt die folgenden Anweisungen:
if expressionA [comparison] expressionB
- testet ob "expressionA [comparison] expressionB" passiert ist
elseif expressionB [comparison] expressionC
- testet ob "expressionB [comparison] expressionC" passiert ist
else
- Keines der obigen Tests wurden erfüllt
endif
Die ELSE- und ELSEIF-Befehle sind optional. IF = Wenn
ELSEIF = Ansonsten Wenn
ELSE = Andernfalls
Vergleichs Operatoren
Ein IF-Befehl kann einen oder mehrere Vergleichsoperatoren beinhalten. Unten ist eine Tabelle von erlaubten Vergleichs-Operatoren:
Operator | Beschreibung |
---|---|
== | Exakt der selbe Wert wie |
=! | Nicht der selbe Wert wie |
> | Größer als |
>= | Größer oder gleich wie |
< | Kleiner als |
<= | Kleiner oder gleich wie |
Es ist wichtig zu wissen, dass es in der Oblivion Scriptsprache keinen Bit-weisen Vergleich gibt!
Kombinierter Vergleich
Vergleiche können auch mit den folgenden logischen Operatoren miteinander verlinkt werden:
Operator | Beschreibung | Beispiel |
---|---|---|
&& | Logisches UND (AND) | if x == 1 && y == 1 ; Gibt Wahr aus, wenn x und y genau 1 betragen |
II | Logisches ODER (OR) | if x == 1 II y == 1 ; Gibt Wahr aus, es sei denn x oder y hat den Wert 0 |
Beachte, dass "||" vor "&&" ausgewertet wird, genauso wie "*" vor "+" in der normalen Algebra ausgewertet wird. Wenn du willst, dass && als erstes ausgewertet wird, musst du diese in Klammern setzen. Als Beispiel:
if myVar1 == 1 && myVar2 == 1 || myVar2 == 5
Diese Bedingung ist WAHR, wenn MyVar1 =1 UND myVar2 entweder 1 oder 5 ist.
if (myVar1 == 1 && myVar2 == 1) || myVar2 == 5
Dieses ist WAHR, wenn entweder myVar2 5 ist ODER die beiden myVar1 und myVar2 1 ist.
Vergleiche und Expression
Der Vergleichs-Operator kann mit einer Expression ("Ausdruck") benutzt werden, um eine Zahl auswerten zu können. Vorausgesetzt dass "a=17", "b=20" und "c=a-b" ist, werden die folgenden Expressionen wie erwartet arbeiten. Klammern werden nur gebraucht, wenn es aus mathematischen Gründen erforderlich wird.
IF c == -3 && b == 20
IF c == -3 && b == 20 && a == 17
IF c - 1 == -4 && b == 20 && a == 17
IF a - 20 == 17 - b
IF a - 20 == 17 - b && c + 3 == 0
IF a + 3 == b
IF a - b == c
IF a *4 - b * 4 == c * 4
IF a * ( 5 + c ) - 14 == b
IF 2*(a*(5+c)-14)==b - -b
Wenn eine Variable oder das Ergebnis einer Funktion 1 (oder einen Wert größer 1!) wiedergibt, brauchst du es nicht noch einmal mit "==1" zu testen.
IF Done
IF Getisid MyNPC
IF IsActor && Flag
IF Flag
Macht dasselbe wie:
IF Done == 1
IF Getisid MyNPC == 1
IF IsActor == 1 && Flag == 1
IF Flag >= 1