Hallo,
ich erkläre euch auch hiermal in meinen eigenen Worten die Basics von PAWN.
1. Kommentare und ausklammern
// Dies ist ein Kommentar
Kommentare kann man einfach mit zwei // und einem Text dahinter erstellen. Diese Kommentare umfassen nur den Text in einer Zeile, also alles was dahinter steht.
Kommentare kann man einfach mit zwei // und einem Text dahinter erstellen. Diese Kommentare umfassen nur den Text in einer Zeile, also alles was dahinter steht.
Möchte man jedoch ein Kommentar über mehrere Zeilen hinweg erstellen oder bestimmte Scriptingbereiche ausgrenzen, so geht das wie folgt:
/* Dies ist
ein Kommentar,
das mehrere Zeilen umfasst */
Alles was zwischen einem /* und einem */ steht wird als Kommentar gewertet und vom Script nicht berücksichtigt. Ausklammern ist nützlich, wenn man beispielsweise einen Teil im Script derzeit noch nicht braucht oder er zu verbuggt ist.
/* Dies ist
ein Kommentar,
das mehrere Zeilen umfasst */
Alles was zwischen einem /* und einem */ steht wird als Kommentar gewertet und vom Script nicht berücksichtigt. Ausklammern ist nützlich, wenn man beispielsweise einen Teil im Script derzeit noch nicht braucht oder er zu verbuggt ist.
2. Callbacks
Im Script gibt es verschiedene Bereiche, Callbacks genannt. Mit diesen Callbacks gibt man an, was passieren soll, wenn beispielsweise ein Spieler in ein Fahrzeug einsteigt.
Dies ist ein simpler Callback:
public OnPlayerConnect(playerid)
{
return 1;
}
public gibt an, dass dies ein Callback ist, und das OnPlayerConnect ist einfach der Name des Callbacks. Was das playerid dahinter bedeutet erkläre ich erstmal nicht.
Dieser Callback gibt an, was passieren soll wenn ein Spieler den Server betritt.
Wenn dann etwas passieren soll, so gibt man dies zwischen dem { und dem return 1 an.
Dies ist ein simpler Callback:
public OnPlayerConnect(playerid)
{
return 1;
}
public gibt an, dass dies ein Callback ist, und das OnPlayerConnect ist einfach der Name des Callbacks. Was das playerid dahinter bedeutet erkläre ich erstmal nicht.
Dieser Callback gibt an, was passieren soll wenn ein Spieler den Server betritt.
Wenn dann etwas passieren soll, so gibt man dies zwischen dem { und dem return 1 an.
3. Definitionen und Includes
Wenn du ein neues Script startest, siehst du in den ersten Zeilen immer etwas wie dies:
//#define FILTERSCRIPT
#include <a_samp>
Jetzt zur Erklärung, ein #define definiert etwas, wie der Name schon sagt. In diesem Falle definiert es unser Script so, dass der Server es als sog. Filterscript ansieht. Da dies allerdings durch das // als Kommentar genutzt wird, kann man es löschen ohne das Script zu ändern. Möchte man also einen Gamemode erstellen ist es ratsam diese Zeile zu löschen, da sie ja eigentlich nichts bringt.
Man kann ein #define auch für andere Dinge anwenden, wie zum Beispiel für Farben.
#define COLOR_BLUE 0x0099FFAA
Dies definiert die Farbe Blau (Mit dem Namen COLOR_BLUE) und der HEX-Farbe wie angegeben. Eine Liste mit Farben kann man per Google und evtl. hier im Forum finden.
//#define FILTERSCRIPT
#include <a_samp>
Jetzt zur Erklärung, ein #define definiert etwas, wie der Name schon sagt. In diesem Falle definiert es unser Script so, dass der Server es als sog. Filterscript ansieht. Da dies allerdings durch das // als Kommentar genutzt wird, kann man es löschen ohne das Script zu ändern. Möchte man also einen Gamemode erstellen ist es ratsam diese Zeile zu löschen, da sie ja eigentlich nichts bringt.
Man kann ein #define auch für andere Dinge anwenden, wie zum Beispiel für Farben.
#define COLOR_BLUE 0x0099FFAA
Dies definiert die Farbe Blau (Mit dem Namen COLOR_BLUE) und der HEX-Farbe wie angegeben. Eine Liste mit Farben kann man per Google und evtl. hier im Forum finden.
Nun zum #include, dies fügt ein Include zum Script hinzu. Beispielsweise wenn man sich ein Register/Login System erstellen möchte nutzt man dafür oft das sog. dini (oder dutils) welche auch Includes sind.
4. Der Start
Wenn wir nun mit dem Scripten anfangen wollen, so müssen wir uns erstmal mit ein paar simplen Dingen beschäftigen. Das nervt zwar, allerdings ist es immer notwendig um später das Komplexe in Anspruch zu nehmen. Man kommt in einer Scriptsprache nicht sehr weit, wenn man die Anfänge nicht kann, aber gleich mit schweren Dingen anfangen möchte.
Wir starten mit simplen Variablen (Platzhaltern) die wir in der Konsole des Servers wiedergeben.
Dazu öffnen wir uns ein Script und löschen alles zwischen main() { und dem nächsten }.
Nun geben wir diesen Text ein:
new variable = 15;
printf("%d",variable);
Jetzt zur Erklärung, das new sagt dem Script, dass wir nun eine neue Variable erstellen. Dass diese zufällig variable heißt ist irrelevant. wir könnten statt variable auch var1 oder sonstiges schreiben. Danach kommt ein = 15; was den Wert der Variable, hier also 15, definiert. Das ; ist nötig um dem Script zu sagen dass wir in dieser Zeile nichts mehr definieren oder ausführen.
printf gibt eine Nachricht in die Konsole (Das schwarze Fenster in dem der Server läuft) an. Das, was nach den Klammern in Anführungszeichen steht, ist der Text (oder die Zahl) die wiedergegeben wird. Ein %d gibt an, dass man eine Zahl zurückgibt. Doch das %d alleine reicht ja nicht, das Script möchte ja wissen welche Zahl zurückgegeben werden soll. Also geben wir noch ein ,variable ein um dem Script zu sagen dass eben diese Variable zurückgegeben werden soll. Danach schließen wir die Klammern und setzen noch ein ; hintendran um diese Zeile zu beenden.
Wir starten mit simplen Variablen (Platzhaltern) die wir in der Konsole des Servers wiedergeben.
Dazu öffnen wir uns ein Script und löschen alles zwischen main() { und dem nächsten }.
Nun geben wir diesen Text ein:
new variable = 15;
printf("%d",variable);
Jetzt zur Erklärung, das new sagt dem Script, dass wir nun eine neue Variable erstellen. Dass diese zufällig variable heißt ist irrelevant. wir könnten statt variable auch var1 oder sonstiges schreiben. Danach kommt ein = 15; was den Wert der Variable, hier also 15, definiert. Das ; ist nötig um dem Script zu sagen dass wir in dieser Zeile nichts mehr definieren oder ausführen.
printf gibt eine Nachricht in die Konsole (Das schwarze Fenster in dem der Server läuft) an. Das, was nach den Klammern in Anführungszeichen steht, ist der Text (oder die Zahl) die wiedergegeben wird. Ein %d gibt an, dass man eine Zahl zurückgibt. Doch das %d alleine reicht ja nicht, das Script möchte ja wissen welche Zahl zurückgegeben werden soll. Also geben wir noch ein ,variable ein um dem Script zu sagen dass eben diese Variable zurückgegeben werden soll. Danach schließen wir die Klammern und setzen noch ein ; hintendran um diese Zeile zu beenden.