Login + Register bisschen buggy

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
    Folgendes Problem:
    Wenn man sich auf meinem Server registrieren und einloggen will, kommt man auch mit falschem Passwort rein und alles ist buggy =(
    Hier der Code:
    public OnPlayerText(playerid, text[])
    {
    if(gRegistered == 0)
    {
    if(gLogged == 0)
    {
    format(Temparray, sizeof(Temparray), "%s.ini", PlayerInfo[playerid][pName]);
    new File: UserFile = fopen(Temparray, io_read);
    if(UserFile)
    {
    TextDrawSetString(TTemp, "~>~~n~~>~~n~~>~~n~~n~~>~~w~Benutzername wird bereits~n~~>~~w~verwendet!~n~~>~");
    SendClientMessage(playerid, COLOR_GRAD1, "Benutzername wird bereits verwendet!");
    fclose(UserFile);
    return 1;
    }

    new tmppass[64];
    Temparray = strtok(text, idx);
    strmid(tmppass, Temparray, 0, strlen(text), 255);
    Secure(tmppass);
    pRegister(playerid, tmppass);


    return 1;
    }

    else
    {
    TextDrawSetString(TTemp, "~>~~n~~>~~n~~>~~n~~n~~>~~w~Bereits eingeloggt~n~~>~~n~~>~");
    SendClientMessage(playerid, COLOR_GRAD1, "Bereits eingeloggt!");
    }

    return 1;
    }


    if(gRegistered == 1)
    {
    if(gLogged == 0)
    {
    new tmppass[64];
    Temparray = strtok(text, idx);
    strmid(tmppass, Temparray, 0, strlen(text), 255);
    Secure(tmppass);
    pLogin(playerid, tmppass);
    }

    else
    {
    TextDrawSetString(TTemp, "~>~~n~~>~~n~~>~~n~~n~~>~~w~Du bist bereits eingeloggt!~n~~>~~n~~>~");
    SendClientMessage(playerid, COLOR_GRAD1, "Du bist bereits eingeloggt!");
    }

    return 1;
    }

    return 1;
    }


    Dann noch Login + Register:


    public pLogin(playerid, pass[])
    {
    format(Temparray, sizeof(Temparray), "%s.ini", PlayerInfo[playerid][pName]);
    new File: UserFile = fopen(Temparray, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(PlayerInfo[playerid][pPass], valtmp, 0, strlen(valtmp)-1, 255);
    }


    if(strcmp(PlayerInfo[playerid][pPass],pass, true ) == 0 )
    {
    new key[ 256 ] , val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
    if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdminLevel] = strval( val ); }
    if( strcmp( key , "Deaths" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    if( strcmp( key , "Kills" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    if( strcmp( key , "Registered" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pRegistered] = strval( val ); }
    if( strcmp( key , "Money" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pMoney] = strval( val ); }
    }//end while
    fclose(UserFile);//close the file after everything has been read in the while


    gLogged = 1;

    TextDrawSetString(TTemp, "~>~~n~~>~~n~~>~~n~~n~~>~~w~Erfolgreich eingeloggt!~n~~>~~n~~>~");
    SendClientMessage(playerid, COLOR_YELLOW, "Erfolgreich eingeloggt!");

    if(PlayerInfo[playerid][pName] == SuperAdmin[playerid])
    {
    Temparray = "~w~Welcome ~l~H ~y~u ~l~N ~y~7 ~l~3 ~y~r";
    GameTextForAll(Temparray, 5000, 4);
    TTemp2 = TextDrawCreate(250.00, 250.00, "~w~Welcome ~l~H ~y~u ~l~N ~y~7 ~l~3 ~y~r");
    TextDrawAlignment(TTemp2, 0);
    TextDrawFont(TTemp2, 1);
    TextDrawUseBox(TTemp2, 0);
    TextDrawLetterSize(TTemp2, 0.299999, 1.300000);
    TextDrawSetOutline(TTemp2, 0);
    TextDrawSetProportional(TTemp2, 1);
    TextDrawShowForAll(TTemp2);
    SetTimer("DestroyWelcome", 5000, 0);
    }


    return 1;
    }


    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: Falsches Passwort.");
    fclose(UserFile);
    return 1;
    }
    }

    return 1;
    }


    public pRegister(playerid, pass[])
    {
    PlayerInfo[playerid][pMoney] = GetPlayerMoney(playerid);
    new var[32];
    PlayerInfo[playerid][pRegistered] = 1;
    gRegistered = 1;
    gLogged = 0;

    format(Temparray, sizeof(Temparray), "%s.ini", PlayerInfo[playerid][pName]);
    new File: UserFile = fopen(Temparray, io_write);
    if(UserFile)
    {
    strmid(PlayerInfo[playerid][pPass], pass, 0, strlen(pass), 255);
    format(var, 32, "Pass=%s\n", PlayerInfo[playerid][pPass]);fwrite(UserFile, var);
    format(var, 32, "Level=%d\n", PlayerInfo[playerid][pLevel]);fwrite(UserFile, var);
    format(var, 32, "AdminLevel=%d\n", PlayerInfo[playerid][pAdminLevel]);fwrite(UserFile, var);
    format(var, 32, "Deaths=%d\n", PlayerInfo[playerid][pDeaths]);fwrite(UserFile, var);
    format(var, 32, "Kills=%d\n", PlayerInfo[playerid][pKills]);fwrite(UserFile, var);
    format(var, 32, "Registered=%d\n", PlayerInfo[playerid][pRegistered]);fwrite(UserFile, var);
    format(var, 32, "Money=%d\n", PlayerInfo[playerid][pRegistered]);fwrite(UserFile, var);
    fclose(UserFile);
    }


    TextDrawSetString(TTemp, "~>~~n~~>~~n~~>~~n~~n~~>~~w~Account registriert!~n~~>~~w~Gib dein Passwort ein~n~~>~");
    SendClientMessage(playerid, COLOR_YELLOW, "Account registriert, gib dein Passwort ein!");


    return 1;
    }


    Danke im Voraus...