Damit unser GameMode lauffähig ist benötigen wir noch einige weitere publics.
Wie wär's zum Beispiel mit folgendem public:
public OnPlayerConnect(playerid)
Was sofort auffällt ist, dass zwischen den Klammern playerid steht.
Playerid ist schlicht jeder einzelne Spieler, der auf dem Server spielt.
Man kann es auch mit dem localhost (127.0.0.1) vergleichen.
Aber warum wird hier überhaupt playerid verwendet?
OnPlayerConnect ist eigentlich die 2. Stufe vom Laden des GameModes.
Da OnGameModeInit kein playerid unterstützt verwendet man OnPlayerConnect.
Wir erweitern unseren GameMode mit OnPlayerConnect:
public OnGameModeInit()
{
SetGameModeText("Mein GameMode!");
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_WHITE, "Willkommen auf meinem Server!");
return 1;
}
Hier haben wir einige Neuerungen, die wir uns anschauen:
SendClientMessage(playerid, COLOR_WHITE, "Willkommen auf meinem Server!");
Nun betrachten wir jeden einzelnen Abschnitt:
SendClientMessage(WEM, FARBE, TEXT);
Hier wird jemandem eine Nachricht geschickt, die oben links im Chat für den jeweiligen Spieler angezeigt wird.
Wem wird meistens durch playerid ersetzt.
Farbe ist eine Farbe, z.B. 0xFFFFFFAA (= weiss).
Damit man sich diese Hexadezimalcodes nicht merken muss, kann man oben im Script einfach folgendes einfügen:
#define COLOR_WHITE 0xFFFFFFAA
Jetzt ist COLOR_WHITE definiert.
Text wird gesendet, ein normaler Satz wird so geschrieben "Hallo Leute!", Zahlen ebenfalls wie Texte "1 2 3" und Variablen ohne Anführungs- und Schlusszeichen.
Kommt nun ein Spieler auf den Server wird er durch die neue Funktion begrüsst.
Unser nächstes Thema werden Variablen sein.
Hier ein kurzes Beispiel einer Variablen:
new Erdbeertorte;
Das sollte selbsterklärend sein...
Dies wäre nun eine globale Variable, d.h. man kann sie im ganzen Script verwenden.
public OnPlayerConnect(playerid)
{
new Schokotorte;
return 1;
}
Das wäre eine lokale Variable, da man sie nur innerhalb von OnPlayerConnect verwenden kann.
Versucht man eine globale Variable neu zu erstellen, kommt folgender Fehler:
Beispiel:
new Erdbeertorte;
public OnPlayerConnect(playerid)
{
new Erdbeertorte;
return 1;
}
Ein guter Einstieg ist es, ein einfaches Death Match Script zu schreiben.
Also richten wir unseren GameMode auf Death Match aus.
Zuerst müssen wir uns einige Dinge überlegen:
- Wo spielt das Script (LS, SF, LV, ...)
- Was soll darin vorkommen
...
Während du dieses Script schreibst werden dir noch viele weitere Ideen in den Sinn kommen
Wir haben nun OnGameModeInit und OnPlayerConnect.
Nun sollten wir einmal eine Map erstellen.
In einem Script dürfen aber nur 150 Objekte, die man im Map Editor hinzufügt, vorhanden sein, sonst crasht er Server.
Dieses Problem kann mit mit Object Streamern umgehen, diese Erstellen Objekte erst, wenn der Spieler in der Nähe ist.
Im ersten Post vom Tutorial ist auch der Downloadlink für MTA + Object Streamer.
under construction...
LEIDER KANN ICH DIE NÄCHSTEN 4320MIN (72H / 3 TAGE) IN DIESEM THREAD NICHTS MEHR POSTEN.
DER TEIL MIT DEM DEATHMATCH GEHÖRT EIGENTLICH IN DEN NÄCHSTEN POST...