Beiträge von crypt

    Will auch so ein Overlay haben hab mich schon mehrfach tot gegooglet. Also ich weiß, dass es möglich ist. Hab nur eine Methode gefunden, aber dabei stürtzt gta ab, wenn man desk geht.

    Ja, aber ich wollte es mal mit MySQL versuchen. Meinst du in einer Text Datei
    eine Tabelle? Ich hatte irgendwann das versucht in text Dateien zu speichern. ich hatte Dini dafür benuzt, aber da kamen viele Fehler, wenn ich in einen Befehl viel auslesen musste.

    Hallo,
    ich habe ein Problem bei meinem login script. Es gibt ein fehler undzwar man kann, wenn das passwort z.b. aaaa ist kann man
    sich mit /login aaaa Einloggen aber auch mit /login a nur ich weiß nicht warum man das auch kann.
    Ich habe mit mysql gearbeitet in diesen Script. Ich habe 2 tabellen user und pass.
    Bei user die Spalten: name und adminlvl
    Bei pass die Spalten: name und pass
    Ich habe 2 tabellen,weil ich späten noch eine pass vergessen funktion mache und nicht beim scripten alle pass wörter sehe.
    Hier ist der Script:
    Hier die Includes:

    #include <a_samp>
    #include <sscanf>
    #include <zcmd>
    #include <mysql>

    Hier die enumes/defines:

    #define COLOR_WHITE 0xFFFFFFFF// weiß
    #define COLOR_RED 0xFF0000FF //rot
    #define COLOR_ERROR 0xFF0000FF //Fehler
    #define COLOR_SUCCESSFUL 0x00FF00FF //erfolgreich


    enum pinfo{
    name[30],
    adminlvl,
    pLogged,
    }
    new playerinfo[MAX_PLAYERS][pinfo];




    enum passinfo{
    name[30],
    passwort[128],
    }
    new playerpassinfo[MAX_PLAYERS][passinfo];



    Hier der /login command

    COMMAND:login(playerid,parms[])
    {


    new pass;
    if(sscanf(parms , "s[128]",pass)) {
    return SendClientMessage(playerid,COLOR_RED,"BENUTZE: /login [passwort]");
    }



    new query[128];
    new bedienung[128];
    new playername[30];
    GetPlayerName(playerid, playername, 30);
    format(bedienung,sizeof(bedienung),"name = '%s'",playername);
    format(query,sizeof(query),"SELECT * FROM user WHERE %s",bedienung);
    mysql_query(query);
    mysql_store_result();



    if(mysql_num_rows())
    {
    new str[512];
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>s[30]i[128]>",playerinfo[playerid]);
    }
    mysql_free_result();
    format(query,sizeof(query),"SELECT * FROM pass WHERE %s",bedienung);
    mysql_query(query);
    mysql_store_result();


    if(mysql_num_rows())
    {
    while(mysql_fetch_row(str))
    {
    sscanf(str, "e<p<|>s[30]s[128]>",playerpassinfo[playerid]);
    }
    mysql_free_result();


    new chat[128];//nur zum testen ob er es ausgelesen hat
    format(chat,sizeof(chat),"%s,%s",playerpassinfo[playerid][name],playerpassinfo[playerid][passwort]);//nur zum testen ob er es ausgelesen hat
    SendClientMessage(playerid,COLOR_RED,chat);//nur zum testen ob er es ausgelesen hat


    if(playerpassinfo[playerid][passwort] == pass)
    {
    if(playerinfo[playerid][adminlvl]>0)
    {
    SendClientMessage(playerid,COLOR_SUCCESSFUL,"Willkommen Admin!");
    }
    playerinfo[playerid][pLogged]=1;
    SpawnPlayer(playerid);
    }
    else
    {
    SendClientMessage(playerid,COLOR_ERROR,"Dein Passwort ist falsch!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_ERROR,"Es ist ein Fehler gekommen");
    return 1;
    }



    }
    else
    {
    SendClientMessage(playerid,COLOR_ERROR,"Du hast noch keinen Account. Registriere dich mit /register [passwort]");
    return 1;
    }
    return 1;
    }
    Ich hoffe ihr könnt mir helfen.


    //Edit
    Ich habs jetzt auch schon mit verschiedenen Passwörten ausprobiert man brauch immer nur den 1. Buchstaben.