Accounts werden nicht geladen

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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
  • Hi,


    meine Accounts werden nicht richtig geladen. (Adminlevel und Skin, z.B wird der Skin bei mir nicht geladen, bei wen anders schon)
    Hier mal die MySQL Log, wenn die nichts nützliches liefert, zeige ich ein wenig vom Code.


    //e: Push

  • Ok, gut. Er wird mir jedoch nicht gesetzt, jemand anderen schon. Ebenfalls erhalte ich die Nachricht ich sei ein Spieler, obwohl ich Rang 3 habe.
    cache_get_field_content(0,"Geburtsdatum",SpielerInfo[extraid][pGeburtsdatum],MySQL,11);
    cache_get_field_content(0,"Email",SpielerInfo[extraid][pEmail],MySQL,64);
    SpielerInfo[extraid][pAlter] = cache_get_field_content_int(0, "Alter", MySQL);
    SpielerInfo[extraid][pEingeloggt] = cache_get_field_content_int(0, "Eingeloggt", MySQL);
    SpielerInfo[extraid][pSkin] = cache_get_field_content_int(0, "Skin", MySQL);
    SpielerInfo[extraid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", MySQL);
    SpielerInfo[extraid][pGeld] = cache_get_field_content_int(0, "Geld", MySQL);
    SpielerInfo[extraid][pEingeloggt] = 1;
    SetPlayerSkin(extraid,SpielerInfo[extraid][pSkin]);


    format(string,sizeof(string),"Willkommen {FFA000}%s %s{FEFEFE}, auf unserem Server {FFA000}"SERVERNAME"{FEFEFE}.",GetAdminRang(extraid),GetName(extraid));
    SendClientMessage(extraid,COLOR_WHITE,string);


    stock GetAdminRang(playerid)
    {
    new rang[54];
    switch(SpielerInfo[playerid][pAdminlevel])
    {
    case 0:{rang="Spieler";}
    case 1:{rang="Supporter";}
    case 2:{rang="Administrator";}
    case 3:{rang="Projektleiter";}
    }
    return rang;
    }


    Wenn ich mich nun neu einlogge und dann wieder auslogge sind ebenso die Spalten E-Mail und Geburtsdatum leer.
    Woran liegt der Fehler?


    Jeffry

    Einmal editiert, zuletzt von Cheevy.Shakur () aus folgendem Grund: //edit: Text

  • Ändere mal
    SetPlayerSkin(extraid,SpielerInfo[extraid][pSkin]);
    zu:
    SetPlayerSkin(extraid,SpielerInfo[extraid][pSkin]);
    printf("Setze skin für ID: %d zu %d. (%s)", extraid, SpielerInfo[extraid][pSkin], GetName(extraid));


    Was steht dann im Log, wenn du dich einloggst?

  • Ah, hier kam gerade nach dem X ten Versuch ein Print.

    Code
    [16:30:40] Setze skin für ID: 0 zu 212. (Cheevy)
    [16:30:44] Setze skin für ID: 1 zu 0. (Recible)


    Würdest du über die Ladefunktion per TV mal drüber schauen?
    Der Skin wird nicht gesetzt, obwohl in der Datenbank 212 steht.

    Code
    [17:20:19] Setze skin für ID: 1 zu 212. (Cheevy)
  • Dann füge bei OnPlayerSpawn das hier ein:
    SetPlayerSkin(playerid,SpielerInfo[playerid][pSkin]);


    Dann bekommt er den richtigen Skin, wenn er geladen wird, sprich wenn der print kommt. Wenn der print nicht kommt, dann steht ein Fehler im MySQL Log.
    Die Ladefunktion brauche ich nicht über TeamViewer anschauen, warum sollte ich das machen? Die funktioniert doch.

  • Kannst du mir zufällig sagen, warum die Zeilen E-Mail und Geburtsdatum sowie Alter nach dem erneuten Login leer sind?


    Darauf war das per TV bezogen. Genauso ist manchmal eine Spalte auf 0 obwohl vorher was stand.
    Eine kleine Frage noch nebenbei, Eingeloggt wird nicht auf 1 gesetzt, setzte das ganze nach der Ladefunktion im Login.


    SpielerInfo[extraid][pEingeloggt] = 1;

  • Poste bitte mal beide Codes komplett, also die gesamte Ladefunktion mit den Cache's und den Abschnitt, wo du SpielerInfo[extraid][pEingeloggt] auf 1 setzt (dort dabei?).
    Dann debuggen wir das mal, möglicherweise sprengst du da ein Array.

  • Hier bitte:
    //Spieler laden
    cache_get_field_content(0,"Geburtsdatum",SpielerInfo[extraid][pGeburtsdatum],MySQL,11);
    cache_get_field_content(0,"Email",SpielerInfo[extraid][pEmail],MySQL,64);
    SpielerInfo[extraid][pAlter] = cache_get_field_content_int(0, "Alter", MySQL);
    SpielerInfo[extraid][pEingeloggt] = cache_get_field_content_int(0, "Eingeloggt", MySQL);
    SpielerInfo[extraid][pSkin] = cache_get_field_content_int(0, "Skin", MySQL);
    SpielerInfo[extraid][pAdminlevel] = cache_get_field_content_int(0, "Adminlevel", MySQL);
    SpielerInfo[extraid][pGeld] = cache_get_field_content_int(0, "Geld", MySQL);
    SpielerInfo[extraid][pLevel] = cache_get_field_content_int(0, "Level", MySQL);
    SpielerInfo[extraid][pEingeloggt] = 1;
    SetPlayerScore(extraid,SpielerInfo[extraid][pLevel]);

    //Andere Dinge
    TogglePlayerSpectating(extraid,0);
    TogglePlayerControllable(extraid,1);
    ClearChat(extraid,0);
    format(string,sizeof(string),"Willkommen {FFA000}%s %s{FEFEFE}, auf unserem Server {FFA000}"SERVERNAME"{FEFEFE}.",GetAdminRang(extraid),GetName(extraid));
    SendClientMessage(extraid,COLOR_WHITE,string);
    SpawnPlayer(extraid);

  • Ja, aber das ist doch so keine Funktion, das sind nur ein paar Zeilen Code. Vom Prinzip her werden entweder alle davon oder keine davon aufgerufen, das kann man nicht wirklich sinnvoll debuggen, den Print haben wir da ja schon. Wenn der kommt, dann müsste es auch alles klappen, oder?
    Poste das bitte mal komplett.