Hier gehts nun mit dem 2.Teil weiter,
also wenn alles Glatt gelaufen ist müsstet ihr irgendwo in LV(eher südlich) Spawnen...
Am besten ihr minimiert das Spiel und wendet euch wieder Pawno zu.
Da wir ja ein RL machen ist ein Login Register unverzichtbar, daher wenden wir uns dem nun!
Zurerst brauchen wir ein paar Daten für die Account´s, die wir ja später speichern wollen, diese schreiben wir ganz oben hin
(unter #include
enum spieler_info{ Passwort, Level, Geld, bool:Logged }
Nun braucht das Ganze noch ein Array, welche wir unter das "enum" schreiben(Erklärung unten):
new Spieler[MAX_PLAYERS][spieler_info];
Was haben wir eigentlich gerade gemacht?
Ganz einfach, ihr müsst euch Array´s wie Tabellen vorstellen, die Tabelle ist so Breit wie die maximal gleichzeitig verbundenen
Spieler und so Hoch wie die Anzahl der Daten die wir im Enum angegeben haben,
d.h. Jeder Spieler hat unabhängig von den anderen Spielern Zahlen, denen wir oben Bezeichnungen hinzugefügt haben, diese Zahlen sind beim Serverstart 0. Diese werden erst beim Login oder während des Spiels geändert(z.B. wenn jemand sich ein neues Level kauft).
Wir könnten nun jede dieser Nullen auf einen beliebigen Wert ändern,
zB.: das Level von Spieler 3 könnten wir so auf 8 ändern:
Spieler[3][Level] = 8;
Gut, damit haben wir die Grundlagen gelegt!
Nun kommt ein schwerer Teil, wer das bisher nich verstanden hat wird es sehr schwer haben!
Was wenn ein Spieler nun einmal unseren Server besucht?
Er wird nur ein kleines Menü zur Skinwahl vorfinden, wenn er Spawn drückt landet er in LV und das jedes mal...
Das muss sich ändern!
Sucht nun einmal "public OnPlayerConnect(playerid)", die die in Englisch aufgepasst haben werden nun recht schnell merken was das heißen soll,
für die anderen: "Wenn Spieler verbindet".
Was müsste man nun als Mensch an einem Schreibtisch nachsehen?
Natürlich, ob man den Spieler bereits kennt, und das geht so:
Das muss über das return 1; und unter die geschwungene Klammer({).
new string[68];
Hier erstellen wir eine neue Variable(string = Textvariable), diese Variable können wir nun beschreiben,
bevor wir sie beschreiben können muss aber noch eine andere Information her, der Spielername!
Dazu müssen wir eine weitere Textvariable erstellen, diese nennen wir "pname".
new pname[MAX_PLAYER_NAME];
Warum eigentlich jetzt MAX_PLAYER_NAME und nicht 64?
Weil diese Zahl gibt die Länge des Strings an, da uns hier Kye(er hat SAMP entwickelt) geholfen hat indem er die maximale Länge des Spielernamens gegeben hat,
brauchen wir das nichtmehr anzugeben!
Nun müssen wir die Textvariable(pname) noch beschreiben, das heißt wir brauchen eine zusätzliche Funktion(GetPlayerName).
GetPlayerName(playerid,pname, sizeof pname);
Hier steht 1. die SpielerID die grade eben verbunden hat, 2. die zu beschreibende Variable und 3. die Größe der Variable.