Oblivion:If: Unterschied zwischen den Versionen

Aus Skript-Wiki
Wechseln zu: Navigation, Suche
K (Die Seite wurde neu angelegt: [http://www.ei-der-zeit.com/LexikonCSIV/tesiv-cs/befehle/If.html If] If)
 
K
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[http://www.ei-der-zeit.com/LexikonCSIV/tesiv-cs/befehle/If.html  If]
+
Mit dem IF-Befehl kannst du Bedingungen festlegen, um bestimmte [[:Kategorie:Blocktypen|Blöcke]] (und dessen Script-Kommandos) auszuführen. Der IF-Befehl in Oblivion ist sehr stark und vergleichbar mit dem in "echten" Programmiersprachen.
[[Kategorie:Befehle|If]]
+
 
 +
 
 +
----
 +
 
 +
='''Überblick'''=
 +
 
 +
 
 +
 
 +
Ein IF-Befehl benutzt die folgenden Anweisungen:
 +
 
 +
<code>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</code>
 +
 
 +
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:
 +
 
 +
<div class=edztable>
 +
{|
 +
|-
 +
!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
 +
|}
 +
</div>
 +
 
 +
 
 +
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:
 +
 
 +
<div class=edztable>
 +
{|
 +
|-
 +
!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
 +
|}
 +
</div>
 +
 
 +
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:
 +
 
 +
<code>if myVar1 == 1 && myVar2 == 1 || myVar2 == 5</code>
 +
 
 +
Diese Bedingung ist WAHR, wenn MyVar1 =1 UND myVar2 entweder 1 oder 5 ist.
 +
 
 +
 
 +
<code>if (myVar1 == 1 && myVar2 == 1) || myVar2 == 5</code>
 +
 
 +
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.
 +
 
 +
<code>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</code>
 +
 
 +
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.
 +
 
 +
<code>IF Done
 +
IF Getisid MyNPC
 +
IF IsActor && Flag
 +
IF Flag</code>
 +
 
 +
Macht dasselbe wie:
 +
 
 +
<code>IF Done == 1
 +
IF Getisid MyNPC == 1
 +
IF IsActor == 1 && Flag == 1
 +
IF Flag >= 1</code>
 +
 
 +
 
 +
 
 +
[[Kategorie: Befehle|If]]

Aktuelle Version vom 28. August 2008, 20:49 Uhr

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