MrMonat LogIn funktioniert nicht

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
  • Hey Leute


    Ihr kennt sicher das LogIn-System, welches auch MRMonat publiziert hat(weis nicht ob es auf seinem Mist gewachsen ist :P), das mit Hilfe von dini unter "scriptfiles" in einem Ordner("Accounts") Spielerdateien mit Daten wie Passwort, Fraktion, Spielerlevel,... füllt & ausliest.
    Das ganze sieht als "LogIn - Stock" so aus:



    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);

    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    LoadAccount(playerid);
    SendClientMessage(playerid,DUNKELGRÜN,"Erfolgreich eingeloggt!");
    SetCameraBehindPlayer(playerid);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,ROT3,"Das Passwort ist falsch...");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"{FF0000}Login","{AAAAAA}Dein Account wurde gefunden.\n\
    Bitte {00CDFF}Passwort {AAAAAA}eingeben:","Login","Abbrechen");
    return 1;
    }
    }


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Spielerlevel"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Arbeitsplatz",dini_Int(Spielerdatei,"Arbeitsplatz"));
    SetPVarInt(playerid,"online",1);
    return 1;
    }


    Hab mir im Forum mehrere Beiträge dazu durchgelesen, in welchen mein Problem auch teilweise kurz angesprochen aber nie beantwortet wird.
    Wenn man den LogIn so aufzieht, kann man als Passwort eingeben was man will, man kommt mit jedem Passwort in jeden Account.
    Ich vermute es liegt daran, dass dini den String "Passwort" in der Spielerdatei nicht auslesen kann.
    Meine Vermutung begründet sich darauf, dass ich folgendes im "LogIn-Stock" eingefügt habe:



    new string4[128];
    format(string4,sizeof(string4),"Passwort:%s Eingabe:%s",dini_Get(Spielerdatei,"Passwort"),key);
    SendClientMessage(playerid,ROT,string4);


    Resultat: "Passwort: Eingabe:"eingegebenes Passwort"


    Manche von euch müssten das Problem doch auch haben?
    Ich kann alles auslesen außer Strings?!
    Könnt ihr mir helfen oder eventuell ein anderes LogIn-System empfehlen, dass auch funktioniert?


    Gruß Storm

    THE STORM941

    Einmal editiert, zuletzt von TheStorm941 ()

  • Das ist aus dem Tutorial ;) also nix copyright - wenn ers als Youtube-Video zur Verfügung stellt & sogar auf seiner Homepage zum Download freigibt ist da nix mit Copyright ...
    Außerdem hab ich nie geläugnet dass es von ihm ist^^
    Egal - ich kuck mir die neuen videos mal an
    Aber warum funktioniert dini_Get da nicht??

    THE STORM941

  • Leute Danke an alle die mir helfen wollten!!


    Hab den fehler glaube ich gefunden :DD - kennt ihr dass wenn er immer dieses "ÿ" einfach in die Spielerdatei vor die erste Variable/Integer/String einfügt??
    Ich glaube das war tatsächlich der Fehler, hab mal gelesen dass es daran liegen könnte aber ich wusste nicht wie ich es abstellen sollte -
    Lösung:
    In den "Register-Stock" als ersten String nicht das Passwort setzen lassen sondern irgendeinen unnötigen String einfügen der keinen interessiert:


    z.B.:

    dini_Set(Spielerdatei,"LogIn","möglich");

    THE STORM941

    Einmal editiert, zuletzt von TheStorm941 ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen