Problem mit der Speicherung der Accounts (Mysql R41-4)

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
  • Kurze Frage.



    Wie kann ich auslesen das er MD5 hat?


    Kenne nur die Funktion wie man die schreibt aber die neue nicht.




    forward SpielerMD5(playerid);
    public SpielerMD5(playerid)
    {
    GotMD5[playerid] = cache_get_field_content_int(0, "GotMD5");
    return 1;
    }

  • weiß ich bereits,


    Aber finde nichts passendes dafür.



    //E:


    cache_get_value_name_int(0, "GotMD5", GotMD5[playerid]);



    Habe was gefunden hoffe so stimmts :D



    //E:


    Kurze Frage warum kommt nicht das Login/Register Fenster sondern direkt das Tutorial?
    Er Sollte normalerweiße erst alles abchecken darum diese Login Camara.
    Macht er scheinbar nicht und läd gleich die Spieler Daten.



    SetTimerEx("OnLoginCamera", 500, 0, "i", playerid); // Unter OnPlayerRequestClass



    Ob der Spieler MD5 als Passwort hat.


    Code
    forward PlayerHaveMD5(playerid);
    public PlayerHaveMD5(playerid)
    {
    	cache_get_value_name_int(0, "GotMD5", GotMD5[playerid]);
    	return 1;
    }


    Hier Werden alle Daten geladen vom Spieler.



    Die Wiki Seite solltest du doch inzwischen kennen. Dort findest du alle Funktionen und Beispiele dazu.
    http://wiki.sa-mp.com/wiki/MySQL/R40


    Damit würdest du auch sofort auf die Lösung kommen.
    cache_get_field_content_int(0, "GotMD5", GotMD5[playerid]);


    //E:


    "cache_get_field_content_int"


    gibt es ja bei MySQL R41-4 nicht mehr. @Jeffry

  • Habe nun mal geschaut was passiert wen man Connectet.
    Das einzige was er nimmt sind die 2 Sachen am Anfang.



    PlayerHaveMD5 Überprüft er und danach LoadPlayerData.
    Und scheinbar kann er irgendwas nicht lesen und schmeisst mir 2 Fehler her.


    [17:03:54] [ERROR] cache_get_row_count: no active cache17:03:57] [ERROR] cache_get_value_name_int: invalid row index '0' (number of rows: '0')



    Das Sind die 2 Was geladen werden.


    Also:



    Und eben das LoadPlayerData:


    [spoiler]


    [spoiler]


    @Kaliber weißt du zufällig eine lösung?

    8 Mal editiert, zuletzt von Dr. Frauenarzt () aus folgendem Grund: Komplett Bearbeitung, PAWN Quelle aktualisiert

  • Habe in Plugin nach mysql_debug geschaut die Funktion gibts nicht heißt die jetzt anders?



    //E:


    Habe es herraus gefunden.


  • Die heißt jetzt mysql_log.
    Siehe hier: Tipps: Scripting-Probleme richtig erklären Kapitel 1.4

    Ja habe ich bereits getan habe das schon gefunden und direkt eingebaut und der log sagt mir das:


  • Es scheint dann wohl kein "James.Gordon" Eintrag in der Tabelle users zu existieren.
    public PlayerHaveMD5(playerid)
    {
    new rows;
    cache_get_row_count(rows);
    if(rows)
    {
    cache_get_value_name_int(0, "GotMD5", GotMD5[playerid]);
    }
    return 1;
    }

  • Das ist Richtig weil es auch ein Spieler ist.


    Indemsinne habe ich das nun so getestet und natürlich den log dabei.



    "James.Gordon" ist ein Spieler der connectet also hat das in endeffect mit den Ganzen ja nichts zutun das er bei Users eingetragen ist. eingetragen soll er sein wen er sich regestriert ist auch normal.




  • Habe da nie was verändert hä?




  • Der Cache muss hier - wie bei den anderen Funktionen auch - über das in mysql_pquery angegebene Callback ausgelesen werden.
    Gebe in mysql_pquery ein Callback mit Parametern an und füge den darunter stehenden Code in das Callback ein.

  • Habe das jetzt etwas kleiner gemacht und übersichtlicher.




    Inwiefern ist das gemeint es ist ja mit pquery?

    Einmal editiert, zuletzt von Dr. Frauenarzt () aus folgendem Grund: Code überarbeitet

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen