Problem mit Login system/ variablen werden nicht nach gmx 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 ein Problem mit meinem Login /register system und Zwar werden meine Parabeln nach einem GMX wieder auf 0 gesetzt. Fehler bekomme ich keine aber wenn ich nen gmx mache sind alle variablen wieder auf 0. kann mir da wer helfen?


    Heir mal mein Quelltext:



    Die Dialoge :

    Spoiler anzeigen
    //-------------------------------------------------registrierung-----------------------------------------------
    if(dialogid == REGISTER)
    if(response == 0)
    {
    ShowPlayerDialog(playerid,ABBRUCH_REGISTER,DIALOG_STYLE_MSGBOX,"Abbrechen","Bist du sicher das du den vorgang abbrechen willst?","Zurück","Abbrechen");
    return 1;
    }
    else
    {
    if(response == 1)
    {
    if(!strlen(inputtext))
    {
    SendClientMessage(playerid,ROT,"Das angegebene Passwort ist zu kurz!");
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Rigitrierungsvorgang","Willkommen, Bitte gib dein gewünschtes Passwort ein. Verwende ein möglichst sicheres Passwort und sage dieses nicht weiter.","Registrieren","Abbrechen");
    return 1;
    }
    else
    {
    Register(playerid,MD5_Hash(inputtext));
    return 1;
    }
    }
    }
    //----------------------------------------ABBRUCH-REGISTER------------------------------------------------------------------
    if(dialogid == ABBRUCH_REGISTER)
    if(response == 0)
    {
    SendClientMessage(playerid,ROT,"Vorgang abgebrochen! Tippe /q um zu beenden.");
    Kick(playerid);
    return 1;
    }
    else
    {
    if(response == 1)
    {
    ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Rigitrierungsvorgang","Willkommen, Bitte gib dein gewünschtes Passwort ein. Verwende ein möglichst sicheres Passwort und sage dieses nicht weiter.","Registrieren","Abbrechen");
    return 1;
    }
    }
    //------------------------------------------LOGIN---------------------------------------------------------------------------
    if(dialogid == LOGIN)
    if(response == 0)
    {
    ShowPlayerDialog(playerid,ABBRUCH_LOGIN,DIALOG_STYLE_MSGBOX,"Abbrechen","Bist du sicher das du den vorgang abbrechen willst?","Zurück","Abbrechen");
    return 1;
    }
    else
    {
    if(response == 1)
    {
    Login (playerid,MD5_Hash(inputtext));
    LoadPlayer(playerid);
    return 1;
    }
    }
    //----------------------------------------ABBRUCH-LOGIN------------------------------------------------------------------
    if(dialogid == ABBRUCH_LOGIN)
    if(response == 0)
    {
    SendClientMessage(playerid,ROT,"Vorgang abgebrochen! Tippe /q um zu beenden.");
    Kick(playerid);
    return 1;
    }
    else
    {
    if(response == 1)
    {
    ShowPlayerDialog(playerid,LOGIN,DIALOG_STYLE_INPUT,"Login","Willkommen, bitte logge dich ein um zu spielen.","Login","Abbrechen");
    return 1;
    }
    }

    Spoiler anzeigen
    return 1;
    }


    Dann die stocks:

    Spoiler anzeigen
    stock Register (playerid,key[])
    {
    new Accounts[64];
    new Pname [MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
    dini_Create(Accounts);
    dini_Set(Accounts,"Passwort",key);
    dini_IntSet(Accounts,"Adminlevel",0);
    dini_IntSet(Accounts,"Level",0);
    dini_IntSet(Accounts,"Bargeld",0);
    dini_IntSet(Accounts,"Fraktion",0);
    SpawnPlayer(playerid);
    SendClientMessage(playerid,BLAU,"Du hast dich erfolgreich registiert!");
    ResetPlayer(playerid);
    return 1;
    }

    Spoiler anzeigen
    stock Login (playerid,key[])
    {
    new Accounts[64];
    new Pname [MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
    if(!strcmp(key,dini_Get(Accounts,"Passwort"),true))
    {
    SendClientMessage(playerid,ROT,"Das Passwort war falsch! Bitte versuche es erneut. (Mit /q verlässt du das Spiel)");
    Kick(playerid);
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Wilkommen!");
    LoadPlayer(playerid);
    SpawnPlayer(playerid);
    }
    return 1;
    }

    Spoiler anzeigen
    stock SavePlayer(playerid)
    {
    new Accounts[64];
    new Pname [MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
    if(dini_Exists(Accounts))
    {
    dini_IntSet(Accounts,"Adminlevel",sSpieler[playerid][Adminlevel]);
    dini_IntSet(Accounts,"Level",sSpieler[playerid][Level]);
    dini_IntSet(Accounts,"Bargeld",sSpieler[playerid][Bargeld]);
    dini_IntSet(Accounts,"Fraktion",sSpieler[playerid][Fraktion]);
    }
    return 1;
    }

    Spoiler anzeigen
    stock LoadPlayer(playerid)
    {
    new Accounts[64];
    new Pname [MAX_PLAYER_NAME];
    GetPlayerName(playerid,Pname,sizeof(Pname));
    format(Accounts,sizeof(Accounts),"/Accounts/%s.txt",Pname);
    if(dini_Exists(Accounts))
    {
    SetPlayerScore(playerid,dini_Int(Accounts,"Level"));
    sSpieler[playerid][Adminlevel] = dini_Int(Accounts,"Adminlevel");
    sSpieler[playerid][Level] = dini_Int(Accounts,"Level");
    sSpieler[playerid][Bargeld] = dini_Int(Accounts,"Bargeld");
    sSpieler[playerid][Fraktion] = dini_Int(Accounts,"Fraktion");
    sSpieler[playerid][sLogin] = 1;
    }
    return 1;
    }

    Spoiler anzeigen
    stock ResetPlayer(playerid)
    {
    sSpieler[playerid][Adminlevel] = 0;
    sSpieler[playerid][Level] = 0;
    sSpieler[playerid][Bargeld] = 0;
    sSpieler[playerid][Fraktion] = 0;
    return 1;
    }

    Spoiler anzeigen
    //Ist der Spieler Admin?
    stock IsPlayerAnAdmin(playerid,rang)
    {
    if(sSpieler[playerid][Adminlevel] >= rang)return 1;
    return 0;
    }

    Spoiler anzeigen
    //Ist der Spieler in einer Fraktion?
    stock IsPlayerInFrakt(playerid,Fraktid)
    {
    if(sSpieler[playerid][Fraktion] == Fraktid) return 1;
    return 0;
    }

    Spoiler anzeigen
    //eingeloggt?
    stock IsPlayerLoggedIn(playerid)
    {
    if(sSpieler[playerid][sLogin] == 1) return 1;
    return 1;
    }



    Hoffe mir kann da wer helfen :S definiert ist auch alles also solltte es eigentlich funktioneieren.



    MFG Moneytoe


    falls wer mehr vom script sehen will -->pn und ja ich habe die datei "accounts" im scriptfiles ordner erstellt ?(