Mahlzeit,
Und zwar folgendes, ich würde gerne Wissen wie ich am besten die Position des Charakters auslesen kann, damit dieser an seiner letzten Position beim Einloggen wieder Spawnt.
Mein Script sieht aktuell wie folgt aus ->
Code
OnPlayerLogin: [ClientEvent("Event.Login")]
public void OnPlayerLogin(MyPlayer.MyPlayer myplayer, String name, String password)
{
if (Datenbank.IstAccountBereitsVorhanden(name))
{
if (!myplayer.Eingeloggt && name.Length > 3 && password.Length > 5)
{
if (Datenbank.PasswortCheck(name, password))
{
Datenbank.AccountLaden(myplayer);
myplayer.Spawn(new AltV.Net.Data.Position(-425, 1123, 325), 0);
myplayer.Model = (uint)PedModel.Business01AMM;
myplayer.Eingeloggt = true;
myplayer.Emit("CloseLoginHud");
myplayer.SendChatMessage("Erfolgreich Eingeloggt!");
}
else
{
myplayer.Emit("SendErrorMessage", "Falsches Passwort eingeben oder ungültige Eingabe!");
}
}
else
{
myplayer.Emit("SendErrorMessage", "Ungültige Eingaben, bitte korregieren!");
}
}
else
{
myplayer.Emit("SendErrorMessage", "Es wurde kein Account mit dem Namen gefunden!");
}
}
Alles anzeigen
Aktuell spawnt er an einem festen Punkt. Das würde ich gerne ändern, dass er an der letzten Position spawnt.
Meine Accountspeicher funktion sieht wie folgt aus:
Code
public static void AccountSpeichern(MyPlayer.MyPlayer myplayer)
{
MySqlCommand command = Connection.CreateCommand();
command.CommandText = "UPDATE accounts SET adminlevel=@adminlevel, geld=@geld, fraktion=@fraktion, rang=@rang, posx=@posx, posy=@posy, posz=@posz, posA=@posA WHERE id=@id";
command.Parameters.AddWithValue("@id", myplayer.SpielerID);
command.Parameters.AddWithValue("@adminlevel", myplayer.Adminlevel);
command.Parameters.AddWithValue("@geld", myplayer.Geld);
command.Parameters.AddWithValue("@fraktion", myplayer.Fraktion);
command.Parameters.AddWithValue("@rang", myplayer.Rang);
command.Parameters.AddWithValue("@posx", myplayer.posx);
command.Parameters.AddWithValue("@posy", myplayer.posy);
command.Parameters.AddWithValue("@posz", myplayer.posz);
command.Parameters.AddWithValue("@posA", myplayer.Rotation.Yaw);
command.ExecuteNonQuery();
Connection.Close();
}
Alles anzeigen
Die Position wird aktuell auch nicht richtig gespeichert in der Datenbank. Da schaue ich aktuell nach dem Problem.
Kann ich direkt bei der OnPlayerLogin Function direkt eine Abfrage an die Mysql Datenbank schicken, dass er die Position abfragt und diese ausliest und der Spieler dort gespawnt wird?
Ich hänge aktuell dort ziemlich auf dem Schlauch