Fehler beim Login ( MD5 )

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 Breadfish,
    So mein Problem mann kan beim 3x Falscher Passwort eingabe einfach rein in den Account hoffe ich wisst wie man das behebt


    stock split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;
    }
    stock IsValidDate(day, month, year)
    {
    new maxDays;
    if (year < 1900 || year > 2013) return 0;
    switch (month)
    {
    case 1,3,5,7,8,10,12: maxDays = 31;
    case 4,6,9,11: maxDays = 30;
    case 2:
    {
    if(IsLeapYear(year))
    {
    maxDays = 29;
    }
    else
    {
    maxDays = 28;
    }
    }
    default: return 0;
    }


    if (day < 1 || day > maxDays) return 0;
    return 1;
    }
    stock IsLeapYear(year)
    {
    return ( year % 4 == 0 && (year % 100 != 0 || year % 400 == 0) );
    }
    stock Registrieren(playerid,password[])
    {
    new Spielerdatei[128], sName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sName,sizeof(sName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.ini",sName);
    dini_Create(Spielerdatei);
    dini_Set(Spielerdatei,"Passwort",password);
    ShowPlayerDialog(playerid,Alter,DIALOG_STYLE_INPUT,"Altersabfrage","Bitte gebe dein Geburtsdatum an.","OK","");
    return 1;
    }
    stock SpielerLogin(playerid,password[])
    {
    new Spielerdatei[128], sName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sName,sizeof(sName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.ini",sName);
    if(!strcmp(password,dini_Get(Spielerdatei,"Passwort"),true))
    {
    ShowPlayerDialog(playerid,Login,DIALOG_STYLE_PASSWORD,"Login","Angabefehler: Das angegebene Passwort war nicht richtig.\nTippe nun dein Passwort ein","OK","Abbrechen");
    }
    else
    {
    SpielerLaden(playerid);
    GivePlayerMoney(playerid,500);
    SetPlayerScore(playerid,1);
    }
    return 1;
    }
    stock SpielerLaden(playerid)
    {
    new Spielerdatei[128], sName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sName,sizeof(sName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.ini",sName);
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    SpielerInfo[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
    SpielerInfo[playerid][SpielerAlter] = dini_Int(Spielerdatei,"Alter");
    SpielerInfo[playerid][Leader] = dini_Int(Spielerdatei,"Leader");
    SpielerInfo[playerid][Member] = dini_Int(Spielerdatei,"Member");
    SpielerInfo[playerid][sLogin] = 1;
    SpawnPlayer(playerid);
    return 1;
    }
    stock SpielerSpeichern(playerid)
    {
    new Spielerdatei[128], sName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sName,sizeof(sName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.ini",sName);
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",SpielerInfo[playerid][Adminlevel]);
    dini_IntSet(Spielerdatei,"Alter",SpielerInfo[playerid][SpielerAlter]);
    dini_IntSet(Spielerdatei,"Leader",SpielerInfo[playerid][Leader]);
    dini_IntSet(Spielerdatei,"Member",SpielerInfo[playerid][Member]);
    return 1;
    }
    stock sscanf(string[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(string))
    #else
    if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    stringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (string[stringPos] && string[stringPos] <= ' ')
    {
    stringPos++;
    }
    while (paramPos < paramCount && string[stringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = string[stringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = string[++stringPos];
    }
    do
    {
    stringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = string[stringPos];
    do
    {
    stringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = string[stringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, string[stringPos++]);
    }
    case 'f':
    {


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = string[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    Was du heute kannst besorgen, das Verschiebe nicht auf Morgen.

  • Das Problem so sehe ich nicht aber man kanns doch so machen :) :


    new LoginSchutz[MAX_PLAYERS];



    stock SpielerLogin(playerid,password[])
    {
    new Spielerdatei[128], sName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sName,sizeof(sName));
    format(Spielerdatei,sizeof(Spielerdatei),"/Spieler/%s.ini",sName);
    if(LoginSchutz[playerid] == 2)
    {
    Kick(playerid);
    return 1;
    }
    if(!strcmp(password,dini_Get(Spielerdatei,"Passwort"),true))
    {
    ShowPlayerDialog(playerid,Login,DIALOG_STYLE_PASSWORD,"Login","Angabefehler: Das angegebene Passwort war nicht richtig.\nTippe nun dein Passwort ein","OK","Abbrechen");
    LoginSchutz[playerid] += 1;
    }
    else
    {
    SpielerLaden(playerid);
    GivePlayerMoney(playerid,500);
    SetPlayerScore(playerid,1);
    }
    return 1;
    }


    L.G.


    heyho