Login/Register System Problem

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
  • Ich habe ein Login Register System gescriptet und des registrieren funktioniert auch bloß wenn ich mich wieder einloggen will kommt nur die charakter auswahl und wenn ich auf Spawn klicke kommt Server closed the connection wisst ihr woran des liegt


    public LoginDialog(id)
    {
    new lgtex[256] = "Dieser Account ist bereits registriert. Bitte gebe dein Passwort ein um dich einzuloggen.";
    new lgtr[64]; format(lgtr, 64, "\r\n\r\nVerbleibende Versuche: %d/3", PI[id][logtry]);
    strcat(lgtex, lgtr);
    ShowPlayerDialog(id, 7, DIALOG_STYLE_INPUT, "Logi", lgtex, "Ok", "Verlassen.");
    return 1;
    }


    public Login(id)
    {
    ReadUser(id);
    if(PI[id][banned] == 1) //FALLS GEBANNT
    {
    new banre[128]; format(banre, 128, "> Dieser Account wurde gesperrt ; Grund: %s", PI[id][banres]);
    SendClientMessage(id, CL_ERROR, banre);
    Kick(id); return 1;
    }
    LogiDialog(id);
    return 1;
    }


    public Registrierung(id, step)
    {
    new uname[MXPN];
    GetPlayerName(id, uname, MXPN);


    if(step == 0)
    {
    new regtex[128]; format(regtex, 128, "Der Benutzer "%s" ist noch nicht bei uns registriert. Du kannst ihn aber registrieren, indem du auf "Registrieren" drückst.", uname);
    ShowPlayerDialog(id, 0, DIALOG_STYLE_MSGBOX, "Registrierun", regtex, "Registrieren", "Verlassen");
    } else if(step == 1)
    {
    new regtex[128] = "Bitte gebe ein Passwort ein. Es muss mindestens 7 Zeichen lang sein.";
    ShowPlayerDialog(id, 1, DIALOG_STYLE_INPUT, "Registation: 1/4 - Passwort", regtex, "Ok", "Zurück");
    } else if(step == 2)
    {
    new regtex[128] = "Männlich\r\nWeiblich";
    ShowPlayerDialog(id, 2, DIALOG_STYLE_LIST, "Registation: 2/4 - Geschlecht", regtex, "Ok", "Zurück");
    } else if(step == 3)
    {
    ShowPlayerDialog(id, 3, DIALOG_STYLE_LIST, "Registation: 3/4 - Alter", "13\r\n14\r\n15\r\n16\r\n17\r\n18\r\n19\r\n20\r\n21\r\n22\r\n23\r\n24\r\n25\r\n26\r\n27\r\n28\r\n29\r\n30\r\n31+", "Ok", "Zurück");
    }
    else if(step == 4)
    {
    new regtex[256] = "Nun kannst du deinen Charakter wählen. Achtung: man kann ihn nur im Klamottenladen wieder ändern.";
    ShowPlayerDialog(id, 4, DIALOG_STYLE_MSGBOX, "Registrierun: 4/4 - Charakter", regtex, "Ok", "Zurück");
    } else if(step == 5)
    {
    PI[id][inregister] = 1;
    }
    return 1;
    }


    public OnPlayerConnect(playerid)
    {
    if(strlen(GetPname(playerid)) > 32)
    {
    SendClientMessage(playerid, CL_ERROR, "Dein Name ist zu lang. (Maximal 32 Zeichen)");
    Kick(playerid);
    }
    TextDrawShowForPlayer(playerid, Textdraw0); //ADS
    ClearUser(playerid);


    new dismsg[128];
    format(dismsg, 128, "> %s hat den Server betreten.", GetPname(playerid));
    SendClientMessageToAll(CL_SRVMSG, dismsg);


    new welcometxt[256] = "Willkommen auf dem Server von Reallife\r\n\r\nForum: \r\nTeamspeak3: ";
    ShowPlayerDialog(playerid, 5, DIALOG_STYLE_MSGBOX, "Reallife", welcometxt, "Ok", "Verlassen");
    PlayerPlaySound(playerid, 1097, 0.0, 0.0, 0.0);
    return 1;
    }


    case 0: //Registrierung
    {
    if(response)
    Registrierung(playerid, 1);
    else
    Kick(playerid);
    }
    case 1: //Registrierung - PASSWORT
    {
    if(response)
    {
    if(strlen(inputtext) < 7)
    {
    SendClientMessage(playerid, CL_ERROR, "> Das Passwort muss mindestens 7 Zeichen lang sein!");
    Registrierung(playerid, 1);
    } else {
    encrypt(inputtext);
    format(PI[playerid][pass], 64, "%s", inputtext);
    Registrierung(playerid, 2);
    }
    } else
    Registrierung(playerid,0);
    }
    case 2: //Registrierung - GESCHLECHT
    {
    if(response)
    {
    if(listitem == 0)
    {
    PI[playerid][gender] = 0;
    } else {
    PI[playerid][gender] = 1;
    }
    Registrierung(playerid, 3);
    } else {
    Registrierung(playerid, 1);
    }
    }
    case 3: //Registrierung - ALTER
    {
    if(response)
    {
    PI[playerid][age] = listitem+13;
    Registrierung(playerid, 4);
    } else {
    Registrierung(playerid, 2);
    }
    }
    case 6: //JOIN REGELN
    {
    if(response)
    {
    PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);


    new q[256], mres[64]; mysql_real_escape_string(GetPname(playerid),mres);
    format(q, 256, "SELECT name FROM user WHERE name = '%s'", mres);
    mysql_query(q); mysql_store_result();


    if(mysql_num_rows() > 0)
    {
    mysql_free_result();
    Login(playerid);
    } else {
    mysql_free_result();
    Registrierung(playerid, 0);
    }
    } else {
    Kick(playerid);
    }
    }
    case 5: //WELCOME BOX
    {
    if(response)
    {
    new regtex[512] = "Wie auf jeden anderen gibt es auch auf diesem Server gewisse Regeln, die man zu befolgen hat.\r\nBei Regelverstößen gibt es je nach dem eine Warnung, Kick oder Bann.\r\n";
    strcat(regtex,"\r\n1. Kein Deathmatching\r\n2. Kein Bugusing / Cheating / Hacking\r\n3. Nur 1 Account pro User\r\n4. Keine Werbung für andere Server\r\n5. Kein Spaming / Flooding\r\n6. Kein Missbrauchen der /melden Funktion.");
    ShowPlayerDialog(playerid, 6, DIALOG_STYLE_MSGBOX, "Serverregeln", regtex, "Akzeptieren", "Verlassen");
    } else
    Kick(playerid);
    }
    case 4: //CHARAKTER CHOOSING DIALOG
    {
    if(response)
    {
    Registrierung(playerid, 5);
    } else {
    Registrierung(playerid, 3);
    }
    }
    case 7: //LOGIN DIALOG
    {
    if(response)
    {
    encrypt(inputtext);
    if(!strcmp(inputtext, PI[playerid][pass], false) && strlen(inputtext) > 0)
    {
    SendClientMessage(playerid, CL_SRVMSG, "> Du bist nun eingeloggt.");
    PlayerPlaySound(playerid, 1057, 0.0, 0.0, 0.0);
    PI[playerid][logged] = 1;
    } else {
    PI[playerid][logtry]--;
    if(PI[playerid][logtry] == 0)
    {
    Kick(playerid);
    } else
    LoginDialog(playerid);
    }
    } else {
    Kick(playerid);
    }
    }


    public OnPlayerSpawn(playerid)
    {
    if(!PI[playerid][logged] && !PI[playerid][inregister])
    {
    SendClientMessage(playerid, CL_SRVMSG, "> Du musst dich erst einloggen bzw. registrieren.");
    Kick(playerid);
    return 1;
    }
    if(!PI[playerid][firstspawn])
    {
    PI[playerid][firstspawn] = 1;
    SetPlayerWeapons(playerid);
    GivePlayerMoney(playerid, PI[playerid][money]);
    }
    PI[playerid][down] = 0;
    TogglePlayerClock(playerid, 0);
    TextDrawShowForPlayer(playerid, Textdraw2); //DATE
    SetPlayerToTeamColor(playerid);
    SetPlayerScore(playerid, PI[playerid][level]);
    SetPlayerSkin(playerid, PI[playerid][skin]);
    PlayerPlaySound(playerid, 1098, 0.0, 0.0, 0.0);


    if(PI[playerid][inregister]) //FALLS IN REGISTRIERUNG -> Fertig -> User erstellen, Speichern
    {
    PI[playerid][logged] = 1;
    PI[playerid][skin] = GetPlayerSkin(playerid);


    new q[256], mres[64]; mysql_real_escape_string(GetPname(playerid), mres);
    new dd, mm, yy; getdate(yy, mm, dd); new rgdate[9]; format(rgdate, 9, "%02d/%02d/%d", dd, mm, yy);
    new sec, std, min2;
    gettime(std, min2, sec);
    new llogin = timestamp(std, min2, sec, dd, mm, yy);


    format(q, 512, "INSERT INTO user (name,pass,age,gender,skin,regdate,lastlogin) VALUES ('%s','%s','%d','%d','%d','%s','%s')", mres, PI[playerid][pass], PI[playerid][age], PI[playerid][gender], PI[playerid][skin], rgdate, llogin);
    mysql_query(q);
    PI[playerid][inregister] = 0;
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    if(PI[playerid][logged])
    {
    SaveUser(playerid);
    }
    ClearUser(playerid);
    return 1;
    }


    hoffe ihr könnt mir helfen


    6 Mal editiert, zuletzt von SAMP1995 ()