Beim ersten logout wird nichts 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 habe Gewisse Probleme, mit meinen Enums
    wenn ich mich regestriere bekomme ich 10k wenn ich den führerschein mache oder auch andere sachen
    speichert er nichts ab wenn ich mich auslogge habe mir auch einen savetimer eingebaut aber es hilft nichts
    hier mal der saveplayer stock
    stock SavePlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 1)
    {
    mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Aussehen", GetPlayerSkin(playerid), "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Admin", SpielerInfo[playerid][pAdmin], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Bank", SpielerInfo[playerid][pBank], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Leader", SpielerInfo[playerid][pLeader], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Member", SpielerInfo[playerid][pMember], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Job", SpielerInfo[playerid][pJob], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Car", SpielerInfo[playerid][pCar], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Bike", SpielerInfo[playerid][pBike], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Lkw", SpielerInfo[playerid][pLkw], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Boot", SpielerInfo[playerid][pBoot], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Fly", SpielerInfo[playerid][pFly], "Name", SpielerInfo[playerid][pName]);
    mysql_SetInt("accounts", "Heli", SpielerInfo[playerid][pHeli], "Name", SpielerInfo[playerid][pName]);
    }
    }
    return 1;
    }



    ich weiß nicht woran es liegen kann
    die uhrsache ist mir auch unbewusst laden tut er alles sauber nachdem ich mich das 3. mal eingeloggt habe


    habt ihr eine lösung?

  • Kann ich mal deine registrierung sehen?


    Also wenn du sagst nach dem ersten Logout speichert er nix, schätze ich das du dich nach der registrierung nicht extra nochmal einloggen musst sondern das system dich automatisch einloggt. Hab ich recht?
    Dann schau dort mal nach ob du den Namen vom Spieler auch abfragst und ihn unter SpielerInfo[playerid][pName] abspeicherst. Ansonsten weiß das System nähmlich nicht wo er in der Datenbank die Sachen abspeichern soll.

  • hier ist mal der register dialog


    switch(dialogid)
    {
    case DIALOG_REGISTER:
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new string[128];
    format(string,sizeof(string),"{FFFFFF}Der Account{FF6E00} %s {FFFFFF}wurde nicht gefunden.\nBitte geben sie nun ein gültiges Passwort ein\nEs sollte mindestens 6 Buchstaben/Zahlen haben!",name);
    ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrieren",string,"Register","Abbrechen");
    return 1;
    }
    else
    {
    CreateAccount(playerid, inputtext);
    SetPVarInt(playerid,"Eingeloggt",1);
    GivePlayerMoney(playerid,10000);
    SpawnPlayer(playerid);
    SavePlayer(playerid);
    new string[128];
    format(string,sizeof(string),"[Join] %s hat sich Regestriert",SpielerName(playerid));
    SendClientMessageToAll(cGreen,string);
    ShowPlayerDialog(playerid,tut0,DIALOG_STYLE_MSGBOX,"Einleitung","Ich hieße sie Willkommen auf\nGrand Theft Auto PowerPlay\nDamit sie zurecht finden, wird\nnun ein kleines Tutorial folgen\n\nDas GTA-PP Team\n© by PowerPlay","Weiter","");
    return 1;
    }
    }
    else
    {
    Kick(playerid);
    }
    }

  • Kann ich mal deine registrierung sehen?


    Also wenn du sagst nach dem ersten Logout speichert er nix, schätze ich das du dich nach der registrierung nicht extra nochmal einloggen musst sondern das system dich automatisch einloggt. Hab ich recht?
    Dann schau dort mal nach ob du den Namen vom Spieler auch abfragst und ihn unter SpielerInfo[playerid][pName] abspeicherst. Ansonsten weiß das System nähmlich nicht wo er in der Datenbank die Sachen abspeichern soll.

    Ich denke du hast völlig recht! - Am besten SpielerInfo[playerid][pName] beim Connect setzen.


    Und ein kleiner Tipp von mir -> Mit dieser Art von MySQL Speicherung wird dein Server ab ca. 20 - 50 User Laggen -.- Am besten in einem Query speichern.


    MfG Kevin


    EDIT: Zeig mir den Code -> CreateAccount(playerid, inputtext);

  • hier noch der createacc


    stock CreateAccount(playerid, pass[])
    {
    new query[256],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort) VALUES ('%s', '%s')", Name, pass);
    mysql_query(query);
    return true;
    }


    wie kann ich das anders machen mit der Speicherung?