Hilfe bei /login und /register

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.
    Nach langer Zeit habe ich endlich einen /register und /login cmd "gebaut"
    Nun habe ich jedoch ein Problem.
    Wenn ich mich registrieren will, kommt immer nur die Meldnung "Dieser Accounter existiert noch nicht! Tippe /register"
    Also wenn ich /register eingebe.
    Somit kann ich mich nicht registrieren...
    Könnte mir da wer helfen?


    Hier einmal /login



    if(strcmp(cmd,"/login",true)==0)
    {
    new tmp[256];
    new file[256];
    new playername[256];
    new string[256];
    new password[256];
    tmp=strtok(cmdtext,idx);
    GetPlayerName(playerid,playername, sizeof(playername));
    format(file, sizeof(file), "%s.ini",playername);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"FEHLER : /login [Passwort]");
    return 1;
    }
    if(!dini_Exists(file))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Dieser Accounter existiert noch nicht! Tippe /register");
    return 1;
    }
    if(logged[playerid]==1)
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Du bist bereits eingeloggt!");
    return 1;
    }
    password=dini_Get(file,"hashPW");
    if(udb_hash(tmp) != strval(password))
    {
    format(string, 256, "Falsches Passwort", playername);
    SendClientMessage(playerid, COLOR_LIGHTRED, string);
    }
    else
    {
    logged[playerid]=1;
    SendClientMessage(playerid, COLOR_GREEN, "Du hast dich eingeloggt!");
    printf("%s (%i) logged in", playername, playerid);
    new cash=dini_Int(file,"cash");
    GivePlayerMoney(playerid,cash);
    level[playerid]=dini_Int(file,"level");
    }


    }


    Und /register



    if(strcmp("/register", cmd, true) == 0)
    {
    new tmp[256];
    new file[256];
    new string[256];
    new playername[MAX_PLAYER_NAME];
    tmp=strtok(cmdtext,idx);
    GetPlayerName(playerid,playername, sizeof(playername));
    format(file, sizeof(file), "%s.ini",playername);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"FEHLER : /register [Passwort]");
    return 1;
    }
    if(dini_Exists(file))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Dieser Account existiert bereit! Tippe /login");
    return 1;
    }
    dini_Create(file);
    dini_IntSet(file, "Passwort", udb_hash(tmp));
    dini_IntSet(file, "Level", 1);
    dini_IntSet(file, "Geld", GetPlayerMoney(playerid));
    format(string,sizeof(string),"Du hast dich erfolgreich mit dem Nichname %s und dem Passwort %s registriert.",playername,tmp);
    SendClientMessage(playerid,COLOR_GREEN,string);
    SendClientMessage(playerid,COLOR_YELLOW,"Du kannst dich nun per /login einloggen!");


    }

  • Guck mal ob du ein par Sachen von meinen benutzen kannst:


    // Login\Register System
    // by
    // gtaturke54
    #include <a_samp>
    #include <dudb>
    #include <dutils>
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    //Farben//
    #define COLOR_SYSTEM 0xEFEFF7AA
    #define green 0x33FF33AA
    #define blue 0x00FFFFAA


    new PLAYERLIST_authed[MAX_PLAYERS];


    #if defined FILTERSCRIPT


    public OnFilterScriptInit()
    {
    print("\n--------------------------------------");
    print("Register / Login System");
    print("--------------------------------------\n");
    return 1;
    }


    public OnFilterScriptExit()
    {
    return 1;
    }


    #else


    main()
    {
    print("\n----------------------------------");
    print("Register / Login System");
    print("----------------------------------\n");
    }


    #endif


    public OnPlayerRequestSpawn(playerid)
    {
    if (udb_Exists(PlayerName(playerid))){
    if (!PLAYERLIST_authed[playerid]){
    SendClientMessage(playerid,green,"Du hast dich Registriert. Benutze jetzt /login um dich einzuloggen.");
    return 0;
    }
    }
    return 1;
    }


    public OnPlayerDisconnect(playerid) {
    if (PLAYERLIST_authed[playerid]) {
    // Wenn du dich eingeloggt hast, wird dein Geld und deine Punkte gespeichert.
    dUserSetINT(PlayerName(playerid)).("money",GetPlayerMoney(playerid));
    dUserSetINT(PlayerName(playerid)).("score",GetPlayerScore(playerid));
    }
    PLAYERLIST_authed[playerid]=false;
    return 1;
    }


    public OnPlayerConnect(playerid)
    {


    if (PLAYERLIST_authed[playerid]==0){
    if (udb_Exists(PlayerName(playerid))){
    SystemMsg(playerid,"Du hast dich registriert, bitte benutze /login [password] um dich einzuloggen.");
    }
    else{ SystemMsg(playerid,"Du hast keinen Account, benutze /register [password] zum registrieren, anschließend benutze /login [password] um dich einzuloggen.");
    }


    return 0;
    }
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(login,5,cmdtext);
    dcmd(register,8,cmdtext);
    return 0;
    }


    stock SystemMsg(playerid,msg[]) {
    if ((IsPlayerConnected(playerid))&&(strlen(msg)>0)) {
    SendClientMessage(playerid,COLOR_SYSTEM,msg);
    }
    return 1;
    }


    stock PlayerName(playerid) {
    new name[255];
    GetPlayerName(playerid, name, 255);
    return name;
    }


    dcmd_register(playerid,params[]) {


    if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Du hast schon einen Account.");
    if (udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Du hast schon einen Account erstellt, benutze /login [password] um dich einzuloggen.");
    if (strlen(params)==0) return SystemMsg(playerid,"USAGE: /register [password]");
    if (udb_Create(PlayerName(playerid),params)) return SystemMsg(playerid,"Du hast erfolgreich deinen Account erstellt, jetzt benutze /login [password] um dich einzuloggen.");
    return true;


    }


    dcmd_login(playerid,params[]) {


    if (PLAYERLIST_authed[playerid]) return SystemMsg(playerid,"Du bist schon registriert.");
    if (!udb_Exists(PlayerName(playerid))) return SystemMsg(playerid,"Du hast keinen Account, benutze /register [password]");
    if (strlen(params)==0) return SystemMsg(playerid,"USAGE: /login [password]");
    if (udb_CheckLogin(PlayerName(playerid),params)) {
    SetPlayerScore(playerid,dUserINT(PlayerName(playerid)).("score"));
    SetPlayerMoney(playerid,dUserINT(PlayerName(playerid)).("money"));
    PLAYERLIST_authed[playerid]=true;
    return SystemMsg(playerid,"Du hast dich erfolgreich eingeloggt.");
    }
    return SystemMsg(playerid,"Passwort oder Nickname ungültig!");
    }
    // Register\Login [FS] created by gtaturke54 © Copyright

    Gruß Nate

  • Das ist es ja gerade...
    Es gibt eigentlich keine.....


    sr.pwn(270) : warning 203: symbol is never used: "moneys"
    sr.pwn(270) : warning 203: symbol is never used: "giveplayerid"
    sr.pwn(632) : warning 203: symbol is never used: "IsNumeric"
    sr.pwn(632) : warning 203: symbol is never used: "ReturnUser"
    sr.pwn(632) : warning 203: symbol is never used: "gTeam"
    sr.pwn(632) : warning 203: symbol is never used: "ret_memcpy"


    //EDIT
    Hab gerade gemerkt das diese Meldung immer kommt wenn ich irgendeinen cmd eingebe....
    Dieser Accounter existiert noch nicht! Tippe /register

  • Wenn ich /register mache nimmt der als Passwort /register^^
    Warum ist das so?


    if(strcmp("/register", cmd, true) == 0)
    {
    new tmp[256];
    new file[256];
    new string[256];
    new playername[MAX_PLAYER_NAME];
    tmp = strtok(cmdtext, idx);
    GetPlayerName(playerid,playername, sizeof(playername));
    format(file, sizeof(file), "%s.ini",playername);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"FEHLER : /register [Passwort]");
    return 1;
    }
    if(dini_Exists(file))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Dieser Account existiert bereit! Tippe /login");
    return 1;
    }
    dini_Create(file);
    dini_IntSet(file, "HashPW", udb_hash(tmp));
    dini_IntSet(file, "Level", GetPlayerScore(playerid));
    dini_IntSet(file, "Geld", GetPlayerMoney(playerid));
    dini_IntSet(file, "Wanted",GetPlayerWantedLevel(playerid));
    dini_IntSet(file, "Fraktion", GetPlayerTeam(playerid));
    format(string,sizeof(string),"Du hast dich erfolgreich mit dem Nickname %s und dem Passwort %s registriert.",playername,tmp);
    SendClientMessage(playerid,COLOR_GREEN,string);
    SendClientMessage(playerid,COLOR_YELLOW,"Du kannst dich nun per /login einloggen!");
    }
    return 1;
    }