Wenn du angst hast dass beim Laden des Spiels die Koordinaten nicht richtig geladen werden kannst du im Constructor deiner Myplayer Klasse die Positionen deines Spawns setzen.
.Net Doku zu Konstruktoren
In deinem Fall wäre es
public float posx { get; private set; }
public float posy { get; private set; }
public float posz { get; private set; }
public MyPlayer(ICore server, IntPtr nativepointer, ushort id) : base(server, nativepointer, id)
{
SpielerID = -1;
Geld = 0;
Adminlevel = 0;
Eingeloggt = false;
Fraktion = 0;
Rang = 0;
posx = xspawn;//Nicht 0 sondern Koordinaten von deinem standard Spawn z.b. Spawn von Neulingen
posy = yspawn;
posz = zxspawn;
}
public void SetPlayerPos(float x , float y, float z){ //Funktion in die MyPlayer Klasse einfügen
this.posx = x;
this.posy = y;
this.posz = z;
}
public static void OnPlayerDisconnect(MyPlayer.MyPlayer myplayer, string reason) {
myplayer.SetPlayerPos(spielerx,spielery,spielerz);//Koordinaten musst du über einen Befehl rausbekommen. Z.B. bei Samp GetPlayerPos(playerid,...);
Datenbank.AccountSpeichern(myplayer);
}
Damit läuft dann auch alles wenn du dich Schritt für Schritt daran hältst.