Loginproblem

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
  • N'abnd leute!


    Ich hab ein "kleines" Problem, das Login funzt net richtig. Nun der Ablauf vom Login:


    OnPlayerConnect
    new sqlaccountstatus = MySQLCheckAccount(plname);
    if(sqlaccountstatus != 0)
    {
    gPlayerAccount[playerid] = 1;
    Registriert[playerid] = 1;
    PlayerInfo[playerid][pSQLID] = sqlaccountstatus;
    ShowPlayerDialog(playerid,LogPWDialog,DIALOG_STYLE_INPUT,"Einloggen","Account gefunden.\nBitte gib dein Passwort ein:","Einloggen","Abbrechen");
    return 1;
    }
    else
    {
    gPlayerAccount[playerid] = 0;
    Registriert[playerid] = 0;
    return 1;
    }


    DAS funktioniert schon mal richtig, also wenn ich nen Account hab, kann ich mich einloggen, wenn ich keinen hab, dann würde ich zur Skinauswahl kommen und könnte mich dann registrieren.


    Login Dialog:


    if(dialogid == LogPWDialog)
    {
    if(response == 0)
    {
    SendClientMessage(playerid,COLOR_RED,"Ohne Login kannst du hier nicht spielen!");
    Kick(playerid);
    return 0;
    }
    if(response == 1)
    {
    MySQLLogin(playerid,inputtext);
    }
    }


    Klappt auch, wenn ich auf Abbrechen klicke, dann flieg ich vom Server.
    Wenn ich ein Passwort eingebe, allerdings das falsche, dann werde ich gespawnt und kann mich registrieren?!


    OnPlayerRequestClass:

    if(gPlayerLogged[playerid] == 1)
    {
    gTeam[playerid] = PlayerInfo[playerid][pTeam];
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pNormalSkin], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
    SpawnPlayer(playerid);
    }
    else
    {
    gTeam[playerid] = 3;
    PlayerInfo[playerid][pTeam] = 3;
    PlayerInfo[playerid][pNormalSkin] = 264;
    SetPlayerInterior(playerid,0);
    new rand = random(sizeof(StandardSpawns));
    PlayerInfo[playerid][pPos_x] = StandardSpawns[rand][0];
    PlayerInfo[playerid][pPos_y] = StandardSpawns[rand][1];
    PlayerInfo[playerid][pPos_z] = StandardSpawns[rand][2];
    SendClientMessage(playerid, COLOR_GREEN, "Melde dich im Forum (forum.amigos-roleplay.de) fuer einen anderen Skin!");
    SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pNormalSkin], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
    SpawnPlayer(playerid);
    }
    return 1;


    Das funktioniert mit dem Login und dem Registrieren schon, nur werd ich gespawnt, wenn ich ein falsches Passwort eingebe..


    MySQLPlayerLogin:
    MySQLCheck();
    new data[256],playername[MAX_PLAYER_NAME],string[256],sqlid;
    GetPlayerName(playerid, playername, sizeof(playername));
    PlayerInfo[playerid][pSQLID] = MySQLCheckAccount(playername);
    mysql_query("SELECT * FROM user");
    mysql_store_result();
    while(mysql_fetch_row_data())
    {
    mysql_fetch_field("ID",data);sqlid=strval(data);
    if(sqlid == PlayerInfo[playerid][pSQLID])
    {
    mysql_fetch_field("Password",data);
    if(!strcmp(data,MD5_Hash(password),false))
    {
    //login Zeugs
    }
    else
    {
    gPlayerLogTries[playerid] += 1;
    if(gPlayerLogTries[playerid] == 2) { SendClientMessage(playerid, COLOR_RED, "Noch 2-Mal das Passwort falsch eingeben, und du wirst gebannt!"); }
    if(gPlayerLogTries[playerid] == 3) { SendClientMessage(playerid, COLOR_RED, "Noch 1-Mal das Passwort falsch eingeben, und du wirst gebannt!"); }
    if(gPlayerLogTries[playerid] == 4)
    {
    new year,month,day;
    getdate(year, month, day);
    SendClientMessage(playerid, COLOR_RED, "Wir haben dich gewarnt, du wurdest gebannt!");
    PlayerInfo[playerid][pAdmin] = PlayerInfo[playerid][pLevel];
    PlayerInfo[playerid][pLevel] = -999;
    format(string, sizeof(string), "Login: %s wurde gebannt, Grund: 4 fehlgeschlagene Loginversuche (%d/%d/d%)", playername, day, month, year);
    //BanLog(string);
    Ban(playerid);
    return 1;
    }
    ShowPlayerDialog(playerid,LogPWDialog,DIALOG_STYLE_INPUT,"Falsches Passwort","Bitte gib dein korrektes Passwort ein:","Einloggen","Abbrechen");
    return 1;
    }
    }
    }
    return 0;


    Ich weiss auch nicht, vorher hat es immer gut funktioniert, aber seit wir keine Skinwahl mehr drin haben (OnPlayerRequestClass), gehts irgendwie nicht mehr.. hat das iwie nen zusammenhang?


    Kann jemand helfen? :)


    MFG


    edit: also, es geht immernoch nicht. sobald ich reinkomme und das passwort falsch eingebe, werde ich gespawnt und kann mich registrieren, warum das?! oder muss ich das dann iwie wieder abfangen?