Guten Morgen,
heute zeige ich euch wie ihr eure Position Speichern könnt und beim nächsten Login auch wieder dorthin gesetzt werdet.
Als erstes geht ihr in euer enum, und fügt 4 Sachen hinzu:
Float:PosX,Float:PosY,Float:PosZ,Float:PosA;
PosX für die X Achse des Spielers, PosY für die Y Achse des Spielers, PosZ für die Z Achse des Spielers und PosA für die Blickrichtung des Spielers.
Soweit so gut, begeben wir uns langsam ans Speichern der Position.
Als erstes wollen wir heraus finden wo der Spieler steckt und in welche Blickrichtung er schaut und das geht so:
GetPlayerPos(playerid, SpielerInfo[playerid][PosX],SpielerInfo[playerid][PosY],SpielerInfo[playerid][PosZ]);
GetPlayerFacingAngle(playerid,SpielerInfo[playerid][PosA]);
dini_FloatSet(/* Pfad der Datei */, "PosX", SpielerInfo[playerid][PosX]);
dini_FloatSet(/* Pfad der Datei */, "PosY", SpielerInfo[playerid][PosY]);
dini_FloatSet(/* Pfad der Datei */, "PosZ", SpielerInfo[playerid][PosZ]);
dini_FloatSet(/* Pfad der Datei */, "PosA", SpielerInfo[playerid][PosA]);
Dies schreiben wir in den Speichern stock.
Mit GetPlayerPos(playerid,..) finden wir die Position des Spielers heraus.
Mit der Funktion GetPlayerFacingAngle(playerid,..) finden wir die Blickrichtung des Spielers heraus.
dini_FloatSet sorgt dafür dass wir einen Float abspeichern können.
Jetzt haben wir schon dafür gesorgt dass die Koordinaten vom Spieler gespeichert werden und weiter ? Laden natürlich !
SpielerInfo[playerid][PosX] = dini_Float(Spielerdatei, "PosX");
SpielerInfo[playerid][PosY] = dini_Float(Spielerdatei, "PosY");
SpielerInfo[playerid][PosZ] = dini_Float(Spielerdatei, "PosZ");
SpielerInfo[playerid][PosA] = dini_Float(Spielerdatei, "PosA");
Dies schreiben wir in den laden stock.
Wir haben es fast geschafft, fehlt nur noch die Anweisung dass der Spieler auch dort Spawnen soll wo er sich ausgelogt hat.
Dafür gehen wir in den Callback OnPlayerSpawn und schreiben rein:
SetPlayerPos(playerid,SpielerInfo[playerid][PosX],SpielerInfo[playerid][PosY],SpielerInfo[playerid][PosZ]);
SetPlayerFacingAngle(playerid,SpielerInfo[playerid][PosA]);
Was haben wir hier gemacht?
Wir sagen dem Spieler er soll mit SetPlayerPos(playerid,..) an seinen Koordinaten spawnen wo er sich letzens ausgeloggt hat.
Ebenso mit der Blickrichtung, dafür verwenden wir SetPlayerFacingAngle(playerid..)
Ich bedanke mich für das Lesen und wünsche allen noch eine Gute Nacht
Bei Fragen gerne hier in den Thread rein.