Password abfrage im menu

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
  • Hallo
    Ich habe eine art notebok gemacht über ein menu
    jetzt möchte ich aber das wenn ein spieler /notebok
    eingibt das dan ein menu kommt wo eine box zum password eintragen ist
    (er soll das password von der ini des spielers nehmen)
    und wenn ich das richtige password eigngebe soll sich ein anderes menu öffnen
    wie geht das?


    //Edit:
    Das login fenster habe ich jetzt:


    new girismsg[256];
    format(girismsg,256,"Willkommen\n\nGeben sie ihr Account Passwort ein:",name);
    ShowPlayerDialog(playerid,12346,DIALOG_STYLE_INPUT,"Notebok Login",girismsg,"Login","Abbrechen");


    Aber wie mache ich es das er das Passwrd (key)
    von die spieler ini mit dem password was man in dem fenster eingegben hat vergleicht?
    und wenn es richtig ist das er dann ein anderes menu namens laptop öffnet?

    Name: [AM] German RealLife
    SAMP IP: 94.199.242.79:7777
    TS³ IP: 94.199.242.79:9987

    Homepage: http://www.gta-clan.com

    Einmal editiert, zuletzt von alex2009 ()

  • Unter OnDialogResponse prüfst du zuerst ob es das richtige Dialog-Fenster ist.
    Danach ob er auf "Login" oder "Abbrechen" gedrückt hat.Falls "Login",öffne die Spielerdatei und lese den String aus der für das Passwort steht.
    Vergleiche den ausgelesenen String dann mit Hilfe von strcmp() mit dem Text der eingegeben wurde ( inputtext ) .

  • was musst du den wissen dafür?
    Heir ist mein login system:
    if (strcmp(cmd, "/login", true) ==0 )
    {
    if(IsPlayerConnected(playerid))
    {
    Eingeloggt[playerid] = 1;
    new tmppass[64];
    if(gPlayerLogged[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: You are already logged in.");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /login [password]");
    return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);
    }
    return 1;
    }


    Mehr brauct man doch nicht oder??

  • if (strcmp(cmd, "/login", true) ==0 )
    {
    if(IsPlayerConnected(playerid))
    {
    Eingeloggt[playerid] = 1;


    Logisch... Eingeloggt und danach :


    if(gPlayerLogged[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: You are already logged in.");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /login [password]");
    return 1;
    }


    Er loggt sich ein ohne pwd ... was


    beim Dialog brauchst du nur die Variable die den Login angibt kann gleich in OnPlayerLogin und die Encrypt kacke

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • em er logt sich mit pw ein
    wenn ich 4x falsches pw hab kommt server close the connetion im klartext gebannt


    //edit:
    kann niemand helfen?


    //edit:
    Wie mache ich es denn überhaupt das der die password abfrage in einem menu macht?
    kann mir jemand einen code geben?

    Name: [AM] German RealLife
    SAMP IP: 94.199.242.79:7777
    TS³ IP: 94.199.242.79:9987

    Homepage: http://www.gta-clan.com

    2 Mal editiert, zuletzt von alex2009 ()

  • vllt in pInfo eintragen,wenn du eine hast.
    So absaven wie bei den accs "/name.ini".
    und dann , dass du dir nen Laptop im 24/7 Shop kaufen musst.
    dann ist dabei schon ein Passwortkey für den Laptop dabei.
    Der Inhaber des Laptop kann diesen mit /stats sehen.
    "/laptoplogin [passwortkey]" und windows ist gestartet :D


    Wenne sowas haben willst.
    schreib mich in icq an.
    Vanish Icq Nummer : 284-848-297

    Dieser Beitrag wurde bereits 2853564 mal editiert, zuletzt von »Vanish« (Heute,16:46)
    _______________________________________________________________________________________________________________________________________________________________

  • hmm leider konntest du mir über icq auch nicht weiterhelfen
    meine frage an euch:


    Kann mir jemand das so machen das wenn ich connecte kommt das mneu
    dan gebe ich password ein und wenn ich auf ok klicke soll einfach nur eine nachricht kommen
    und wenn ich auf abbrechen klicke soll der spieler gekickt werden

  • mach eine Spieler Variable & zähle sie bei jeder Falschen Eingabe +1 ist die Variable größer als 3 klatscht vom Server


    new dontfuckwithme[MAX_PLAYERS];


    und beim falschen Pass :


    dontfuckwithme[playerid]++;


    Nicht vergessen die Variable bei OnPlayerDisconnect zurück zu setzen bzw. wenn du sie Speichern möchtest tu das

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • em ja das mit dem 4 mal falsches pw = ban
    hab ich ja schon ich brauche jetzt halt nur dieses menu und das wenn man auf ok klickt soll eine nachricht kommen
    aber in den chat
    und wenn man auf abbrechen klickt soll noch einne nachricht kommen und zwar:
    Server colse the connection :D

  • hmm iwie versteht ihr mich nicht oder ich verstehe den script nicht also:


    Wenn ich in einem normalen menu was auswähle benötige ich ja folgenden script:


    if(CurrentMenu == Beispiel)
    {
    switch(row)
    {
    case 0:
    {
    SendClientMessage(playerid, COLOR_CBLUE, "...");
    return 1;
    }
    case 1:
    {
    SendClientMessage(playerid, COLOR_CBLUE, "...");
    return 1;
    }


    Und dan wird da hat das gemacht was in dem entsprechendem case sitzt


    gibt es soeine case funktion auch für das login menu?

  • Hey danke das hat mir sehr weitergeholfen
    nur noch 1 frage:
    wenn ich in dem menu ein password eingebe nennt er den text aus der textbox inputtext


    wo muss ich hier inputtext einsetzen:
    if(IsPlayerConnected(playerid))
    {
    Eingeloggt[playerid] = 1;
    new tmppass[64];
    if(gPlayerLogged[playerid] == 1)
    {
    SendClientMessage(playerid, COLOR_WHITE, "SERVER: You are already logged in.");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Benutze: /login [password]");
    return 1;
    }
    strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);