Scripting Basics DE

From SA-MP Wiki

Jump to: navigation, search

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; // Definiert eine neue leere Floatvariable namens 'Float'.
new Float:float = 2.0; // Definiert eine neue Floatvariable namens 'Float' und setzt ihren Wert auf '2.0'.

Moegliche Verwendung

SetPlayerPos(playerid, float, 2.0, 1400.0);

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"; // 7 ist die Laenge des Strings plus 1 fuehr den String Identifier, der festlegt, dass das Array ein String ist. Das Ganze Script ueber koennte ein solches Array 'String' also maximal 6 Zeichen beinhalten.
new string[7];
string[0] = 'S';
string[1] = 't';
string[2] = 'r';
string[3] = 'i';
string[4] = 'n';
string[5] = 'g';
string[6] = 0; // 0 ist der String Identifier.

Gewoehnliche Verwendung

new string[256];

Moegliche Verwendung

SendClientMessage(playerid, 0xFFFFFFAA, string);

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

new bool:boolname;

Moegliche Verwendung

if(boolname == true) { /* Weitere Anweisungen */ }

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.

new onedimensionalarray[FELDER];

Beispiel

new onedimensionarray[5] = {4, 6, 7, 9, 2}; // Die '5' zwischen [ und ] legt fest, wie viele Felder das Array hat.

Moegliche Verwendung

new randomnumber = random(sizeof(onedimensionalarray)); // Zufaellige Nummer eines Feldes.
printf("Zufallszahl: %d", onedimensionalarray[random]); // Die zzufaellige Nummer wird als Index fuer ein Feld verwendet.
<pawn>
 
== Zweidimensionales Array ==
Zweidimensionale Arrays sind wie Tabellen und haben Zeilen und Spalten.
<pawn>
new twodimensionalarray[ZEILEN][SPALTEN];
<pawn>
 
=== Beispiel ===
<pawn>
new Float:twodimensionarray[4][3] = {
{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

SetPlayerPos(playerid, twodimensionalarray[2][2], twodimensionalarray[3][1], twodimensionalarray[2][0]);

Dreidimensionales Array / Zweidimensionales String-Array

new treedimensionalarray[ZEILEN][SPALTEN][Z];

Zweidimensionales String-Array

new twodimensionalarraystring[ROWS][COLLUMNS][256]; //fuer einen 255 Bytes langen String

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

if(lvalue > rvalue) { /* Weitere Anweisungen */ }

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.

In other languages