Positionen werden nicht gespeichert

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,


    Ich lerne grad Pawn (Sehr Blutiger Anfänger)


    Und stehe bei dem Problem, dass die Kordinaten nicht gespeichert werden...


    Mein Stock:



    Kordinaten laden:


    Code
    SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], 269.15, 0, 0, 0, 0, 0, 0 );
    				    	SpawnPlayer(playerid);


    Leider werden pX, pY, pZ jweils mit dem Wert 0 gespeichert..



    Aus Fehlern lernt man, darum bitte ich euch um Rat ;)

    Zitat von Sharpadox

    Echt fantastisch, dieses "Google" ^^



  • Du hast keine Parameter beim Speichern angegeben, hier ist es mal richtig :)

    stock SpielerSpeichern(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) // Sofern der Spieler eingelogg ist bzw. im Spielt ist und kein NPC / BOT ist.
    {
    if(GetPVarInt(playerid,"logged") == 1) // Ob er eingeloggt ist, hätten wir diesen PVar nicht und der Spieler würde währen des Einloggen's Disconnecten wo die Variablen von ihm noch nicht geladen wurden, so wäre danach alles auf 0
    {
    new Float:x, Float:y, Float:z;
    // Use GetPlayerPos, passing the 3 float variables we just created
    GetPlayerPos(playerid, x, y, z);
    new query[500]; // Neuer query || TIPP : Die Länge eines Querys lässt sich mit Notepad++ Sehr leicht ermitteln einfach den Input hineinschreiben und ablesen wieviel Zeichen dieser hat.
    format(query,sizeof(query),"UPDATE `accounts` SET `Level` = '%d', `Money` = '%d', `Admin` = '%d', `pX` = '%f', `pY` = '%f', `pZ` = '%f' WHERE `Name` = '%s'",PInfo[playerid][pLevel],PInfo[playerid][pMoney],PInfo[playerid][pAdmin], x, y, z, SpielerName(playerid));
    mysql_query(query); // Wir senden ab
    }
    }
    return 1;
    }

    Edit: Ich mach es dir jetzt auch mal mit der FacingAngle (In der Richtung, in der der Spieler gerade schaut.):

    stock SpielerSpeichern(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) // Sofern der Spieler eingelogg ist bzw. im Spielt ist und kein NPC / BOT ist.
    {
    if(GetPVarInt(playerid,"logged") == 1) // Ob er eingeloggt ist, hätten wir diesen PVar nicht und der Spieler würde währen des Einloggen's Disconnecten wo die Variablen von ihm noch nicht geladen wurden, so wäre danach alles auf 0
    {
    new Float:x, Float:y, Float:z,Float:a;
    // Use GetPlayerPos, passing the 3 float variables we just created
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    new query[500]; // Neuer query || TIPP : Die Länge eines Querys lässt sich mit Notepad++ Sehr leicht ermitteln einfach den Input hineinschreiben und ablesen wieviel Zeichen dieser hat.
    format(query,sizeof(query),"UPDATE `accounts` SET `Level` = '%d', `Money` = '%d', `Admin` = '%d', `pX` = '%f', `pY` = '%f', `pZ` = '%f', `pA` = '%f' WHERE `Name` = '%s'",PInfo[playerid][pLevel],PInfo[playerid][pMoney],PInfo[playerid][pAdmin], x, y, z, a, SpielerName(playerid));
    mysql_query(query); // Wir senden ab
    }
    }
    return 1;
    }
    SetSpawnInfo(playerid, 0, PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pX], PlayerInfo[playerid][pY], PlayerInfo[playerid][pZ], PlayerInfo[playerid][pA], 0, 0, 0, 0, 0, 0 );
    SetCameraBehindPlayer(playerid); //setzt die Kamera hinter dem Spieler :)
    SpawnPlayer(playerid);

    Du musst es nur entsprechend anpassen beim stock SpielerLaden :) wenn du Hilfe brauchst, sag mir bescheid oder melde dich hier im Thread :)


    Erklärung: %f ist ein Parameter für Floats = Dezimalzahl(Zahl mit Kommastellen)


    Mit freundlichen Grüßen
    firestormZ

    4 Mal editiert, zuletzt von firestormZ ()