Oblivion:If

Aus Skript-Wiki
Wechseln zu: Navigation, Suche

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.



Ü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