Scripting Basics DE
From SA-MP Wiki
←Older revision | Newer revision→
Contents |
Variablentypen
In Variablen koennen Werte gespeichert werden. Variablen in PAWN sind Case-Sensitive (= zwischen GroÃer- und Kleinschreibung wird unterschieden), d.h. eine Variable mit dem Namen 'lolhax' ist z.B. nicht dieselbe wie 'LOLHAX' oder 'LoLhAx'Â oder. Variablennamen muessen mit einem Buchstaben beginnen (a-z, A-Z).
Integer
Integer ist der Standardvariablentyp. Ein Integer ist eine Ganzzahl. Es duerfen keine Dezimalpunkte in Integern vorkommen, auch wenn alle Ziffern hinter dem Dezimalpunkt '0'Â sind. 5.00 z.B. ist technisch gesehen kein Integer.
Beispiel
new integer = 1337; // Definiert eine neue Integervariable namens 'integer' und setzt ihren Wert auf '1337'.
new integer; // Definiert eine neue Integervariable namens 'integer' und setzt ihren Wert auf '0' da kein spezieller Wert angegeben wird.
Moegliche Verwendung
if(integer == 1337) { /* Weitere Anweisungen */ }
Float
Floatvariablen koennen Kommazahlen abspeichern. Das Komma ist dabei nicht wie im Deutschen ',' sondern muss durch '.' ersetzt werden.
Beispiel
new Float:float = 2.0; // Definiert eine neue Floatvariable namens 'Float' und setzt ihren Wert auf '2.0'.
Moegliche Verwendung
String
Strings koennen einzelne Zeichen oder Zeichenketten abspeichern. Strings sind Ueblicherweise Arrays. Ein Array ist eine spezielle Variable, die mehrere Werte beinhalten kann. Jeder Wert eines Arrays hat einen Index, der bei 0 anfaengt und sich dann pro Wert um 1 erhoeht. Da jedes Zeichen auch als Integer dargestellt werden kann, kann man in einen Integer auch ein Zeichen abspeichern. Einzelne Zeichen werden in '' zugewiesen (Bsp.: 'a'), Strings in "" (Bsp.: "Hallo").
Beispiel
new string[7];
string[0] = 'S';
string[1] = 't';
string[2] = 'r';
string[3] = 'i';
string[4] = 'n';
string[5] = 'g';
Gewoehnliche Verwendung
Moegliche Verwendung
Boolean
Ein Boolean kann zwei Werte abspeichern. Entweder true oder false. True entspricht dem Integerwert 1, false dem Integerwert 0. In PAWN wird alles, was nicht 0 ist, als true angesehen. Beim Definieren ist der Standardwert eines Booleans 0, also false.
Beispiel
Moegliche Verwendung
Array
Arrays koennen groÃee Datenmengen abspeichern. Sie sind vergleichbar mit Tabellen. Es gibt ein- und mehrdimensionale Arrays. Float- oder Boolean-Arrays werden genauso definiert wie Float- oder Boolean-Variablen (mit den Praefixen Float: und bool:).
Eindimensionales Array
Ein eindimensionales Array ist eine Reihe von Werten, die alle einen Index zugewiesen bekommen.
Beispiel
Moegliche Verwendung
printf("Zufallszahl: %d", onedimensionalarray[random]); // Die zzufaellige Nummer wird als Index fuer ein Feld verwendet.
Zweidimensionales Array
Zweidimensionale Arrays sind wie Tabellen und haben Zeilen und Spalten.
Beispiel
{3.0, 4.5, 5.76}, // Zeile 0
{10.85, 76.34, 23.54}, // Zeile 1
{2.32, 10.23, 80.2}, // Zeile 2
{6.6666, 45.3, 32.64} // Zeile 3
Moegliche Verwendung
Dreidimensionales Array / Zweidimensionales String-Array
Zweidimensionales String-Array
Bedingungen
Bedingungen ermoeglichen es, Daten zu pruefen oder zu vergleichen und dann bestimmte Scripts auszufuehren, je nach dem, ob die Bedingung wahr oder falsch ist. Die gebraeuchlichste Bedingung ist wohl if/else, aber es gibt auch einige andere: case, for- und while-Schleifen.
If/Else
Die if/else-Bedingung vergleicht zwei Werte miteinander und fuehrt dann je nach Ergebnis ein Script aus oder nicht. Optional kann man auch ein Script angeben, was aausgefuehrt wird, wenn die Bedingung falsch ist.
Vergleichsoperatoren
| Operator | Bedeutung | Benutzung |
|---|---|---|
| == | Links gleicht Rechts | if(Links == Rechts) |
| != | Links gleicht Rechts nicht | if(Links != Rechts) |
| > | Links ist groeÃer als Rechts | if(Links > Rechts) |
| >= | Links ist groeÃer oder gleich Rechts | if(Links >= Rechts) |
| < | Links ist kleiner als Rechts | if(Links < Rechts) |
| <= | Links ist kleiner oder gleich Rechts | if(Links <= Rechts) |
| Operator | Bedeutung | Benutzung |
|---|---|---|
| && | AND (Und) | if(Links && Rechts) |
| || | OR | if(Links || Rechts) |
| ! | NO | if(!Variable) |
| NOR | if(!(Links || Rechts)) | |
| NAND | if(!(Links && Rechts)) | |
| XOR | if((Links && !Rechts)||(!Links && Rechts)) | |
| NXOR | if(!((Links && !Rechts)||(!Links && Rechts))) |
Beispiel
Im Beispiel werden die weiteren Anweisungen ausgefuehrt, wenn die Bedingung zwischen lvalue und rvaluewahr ist. Die Bedingung lautet: Wenn lvalue groeÃer als rvalue ist, dann fuehre die Weiteren Anweisungen aus.
