Login System

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
  • Guten tag


    Ich suche ein gutes Login System.
    Ich habe bereits eins. man registriert sich mit /register passwort und loggt sich bei jedem weiterren besuch auf dem server mit /login passwort ein. Gespeichert werden Kills, Tode und Geld.


    Ich würde gerne ein besseres haben, wo bevor man überhaupt auf den Server kommt und sich einen Skin aussuchen kann eine Dialogbox kommt.
    dort registriert man sich indem mann dann das passwort auswählt und loggt sich danach ein:


    Guten Tag. Sie sind noch nicht Registriert. Bitte wählen sie ein Passwort aus um sie zu Registrieren
    [PASSWORT]


    Guten Tag. Ihr Account wurde wiedererkannt. Bitte loggen sie sich ein, indem sie ihr Passwort eingeben
    [PASSWORT]


    so in etwa sollte das aussehen und am besten in einer Dialogbox und nicht frei im Chat


    bedanke mich schonmal für eure Antworten


    mfg

  • Hier ist eins:


    Oben bei den Defines:
    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4


    Unter den Defines:
    enum Player_daten
    {
    admin,
    Deaths,
    Kills,
    eingeloggt
    }


    new Player[MAX_PLAYERS][Player_daten];


    Bei OnPlayerConnect:
    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.sav",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte gib dein Passwort ein","Abbrechen","Weiter");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrierung","Bitte gebe dein Passwort ein um dich zu Registrieren","Abbrechen","Weiter");
    }
    return 1;
    }


    Unter OnPLayerDisconnect:
    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.sav",pname);
    if(fexist(accFormat) && Player[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"AdminLevel",Player[playerid][admin]);
    dini_IntSet(accFormat,"Kills",Player[playerid][Kills]);
    dini_IntSet(accFormat,"Deaths",Player[playerid][Deaths]);
    dini_IntSet(accFormat,"Bargeld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"Level",GetPlayerScore(playerid));
    }
    Player[playerid][eingeloggt] = 0;
    return 1;
    }


    Bei OnPlayerDeath:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    Player[playerid][Deaths]++;
    Player[killerid][Kills]++;
    return 1;
    }


    Ganz unten im Script under allem:
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.sav",pname);
    if(response)
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte gib dein Passwort ein um dich einzuloggen","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFAA,"Das eingegebene Passwort ist Falsch!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Load PSW
    {
    Player[playerid][admin] = dini_Int(accFormat,"AdminLevel");
    Player[playerid][Kills] = dini_Int(accFormat,"Kills");
    Player[playerid][Deaths] = dini_Int(accFormat,"Deaths");
    GivePlayerMoney(playerid,dini_Int(accFormat,"Bargeld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
    Player[playerid][eingeloggt] = 1; //player is logged in now
    SendClientMessage(playerid,0x33CCFFAA,"Eingeloggt");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Log dich ein","Abbrechen","Weiter");
    SendClientMessage(playerid,0xFFFFFFAA,"Falsches Passwort!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Register","Bitte Registriere dich","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFAA,"Falsches Passwort!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Player[playerid][admin] = 0 ;
    Player[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0x33CCFFAA,"Eingeloggt!");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Register","Bitte Registriere dich","Abbrechen","Weiter");
    }
    }
    return 1;
    }

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

  • Hustler habe genau deins soweit ich weiß gepostet nur ohne die Sachen wie Clearchat und alle AdmBefehle und etwas verändert im groben. Er wollte ja nicht alles sondern NUR Login/Register Systm^^

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25