Mysql - Accounts verbuggen

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
  • Hey
    Wenn ich mir einen neuen Account erstelle und damit connecte, habe ich ja alles neu etc.
    Dann wenn ich mich mit dem neuen Account auslogge und mit meinem Adminaccount einlogge (mit Geld etc) bekomme ich den Spielstand von meinem neuen Account?
    Wieso das.
    Benutze das Tutorial von Maddin (Mysql R5)


    Wenn Code erwünscht bitte melden!


    Bekomme es einfach nicht hin.

  • Loadstock & savestock.


    stock LoadPlayer(playerid)
    {
    new str5[128];
    new timestamp = gettime();
    new bisgebannt = mysql_GetInt("accounts", "tBan", "Name", SpielerName(playerid));
    new bisgemuted = mysql_GetInt("accounts", "Mute", "Name", SpielerName(playerid));
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pBanned] = mysql_GetInt("accounts", "Bann", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pWarn] = mysql_GetInt("accounts", "Warn", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pDeaths] = mysql_GetInt("accounts", "Deaths", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][Admin] = mysql_GetInt("accounts", "AdmLevel", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pMute] = mysql_GetInt("accounts", "Muted", "Name", SpielerInfo[playerid][pName]);
    GivePlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    SetPlayerScore(playerid,SpielerInfo[playerid][pLevel]);
    }
    if(SpielerInfo[playerid][pWarn] >4)
    {
    format(str5,128,"[SERVER] Dein Account %s wurde gebannt, Grund: 5/5 Verwarnungen",SpielerName(playerid));
    SendClientMessage(playerid,ROT,str5);
    Kick(playerid);
    }
    if(SpielerInfo[playerid][pBanned] == 1)
    {
    format(SpielerInfo[playerid][pBanngrund],128,"Dieser Account wurde gebannt! Grund: %s Admin: %s.", mysql_GetString("accounts", "Banngrund", "Name", SpielerInfo[playerid][pName]),mysql_GetString("accounts","Banner","Name",SpielerInfo[playerid][pName]));
    SendClientMessage(playerid,ROT,SpielerInfo[playerid][pBanngrund]);
    Kick(playerid);
    }
    if(timestamp < bisgebannt)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account ist noch für %i Minuten gebannt!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }
    if(timestamp < bisgemuted)
    {
    new differenz = bisgebannt - timestamp;
    new minuten = differenz / 60;
    new str[64];
    format(str,sizeof(str),"Dein Account ist noch für %i Minuten gemuted!",minuten);
    SendClientMessage(playerid,ROT,str);
    Kick(playerid);
    }
    return 1;
    }


    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(SpielerInfo[playerid][LoggedIn] == 1)
    {
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Bann", SpielerInfo[playerid][pBanned], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Warn", SpielerInfo[playerid][pWarn], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Deaths", SpielerInfo[playerid][pDeaths], "Name", SpielerInfo[playerid][pName]);
    mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "AdmLevel", SpielerInfo[playerid][Admin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Muted", SpielerInfo[playerid][pMute], "Name", SpielerInfo[playerid][pName]);
    // pSkin & pTod
    SpielerInfo[playerid][ADuty] = 0;
    SpielerInfo[playerid][LoggedIn] = 0;
    }
    }
    return 1;
    }

  • hau mal in denn Stock Database To Connect, das mysql_debug(1); rein & Regi dich dann ausloggen & neu einloggen & zeig danach die Mysql Log.
    -Außerdem wird der Spieler beim registrieren gesavt?


    Das stand in der Mysql_Log




    Noch was



  • Der Fehler 1045 sagt aus das entweder das passwort falsch ist oder der benutzername er kann nicht zur datenbank verbinden.


    http://www.fromdual.ch/mysql-e…es-and-messages-1000-1049


    Sollte es daran legen das er keine Verbindungaufbaut washier sehr komisch aussieht da er ja anscheinend die Daten updaten würde ich sagen es liegt an dem .
    Aber ich geh mal davon aus das er ihrgend was überspringt oder nicht ausführt da sollten die daten vom vorgänger noch vorhanden sein liegt das daran
    das zum einen die Spielervariabeln nicht reseten wurden oder er ließt die Daten von dem vorgänger account aus.
    kannst ja dennoch mal debuggen.