Kleine fragen wegen loginsystem

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
    Mein Loginsystem speichert nur passwort. Ich wollte jetzt wissen wie man macht das er Score money AdminLevel speichert. Bitte ein toturial MAchen oder so erklären das ich direkt weis wo ich wa smachen muss.
    danke
    Loginsytem soll speicher
    Passwort(macht er schon)
    Money(noch net)
    Score(noch net)
    AdminLevel(noch net)

  • mit dini in eine .ini datei die den namen des spierlers tragt

  • habe aber bis jetzt nur doofe tut gefunden die mir net weiter geholfen haben

  • ja kann ich
    enum spieler_daten
    {
    pKills,
    pCash,
    pPassword [256],
    pLeader,
    score,
    pDeaths,
    pMember,
    Float:lastx,Float:lasty,Float:lastz,
    eingeloggt,
    Bank,
    }
    new PlayerInfo[MAX_PLAYERS][spieler_daten];

  • jo public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.ini",pname);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN:
    {
    if(!strlen(inputtext))//diese if-abfrage sagt, dass der Spieler nicht Nichts eingeben darf
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter"); //Hier wird dem Spieler ein Dialog erstellt. Erklärung unten.
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");//wenn kein Passwort eingegeben wurde kommt diese Nachricht.
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Hier wird das Passwort aus der Datei geladen.
    {
    PlayerInfo[playerid][lastx] = dini_Float(accFormat,"lastx");//Hier werden die
    PlayerInfo[playerid][lasty] = dini_Float(accFormat,"lasty");//Koordinaten des Spielers
    PlayerInfo[playerid][lastz] = dini_Float(accFormat,"lastz");//geladen
    PlayerInfo[playerid][Bank] = dini_Int(accFormat,"bankmoney"); //geld auf der bank
    PlayerInfo[playerid][pCash] = dini_Int(accFormat,"money"); //geld in de rhand
    PlayerInfo[playerid][eingeloggt] = 1; // Hier wird eingeloggt auf 1 gesetzt. Das heißt, der Spieler ist nun eingeloggt.
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");//Sende dem Spieler eine Nachricht.
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    dini_IntSet(accFormat,"bankmoney",40000);
    dini_IntSet(accFormat,"money",10000);
    PlayerInfo[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest 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,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    }
    }
    return 1;
    }
    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.ini",pname);
    if(fexist(accFormat) && PlayerInfo[playerid][eingeloggt])
    {
    dini_FloatSet(accFormat,"lastx",PlayerInfo[playerid][lastx]);
    dini_FloatSet(accFormat,"lasty",PlayerInfo[playerid][lasty]);
    dini_FloatSet(accFormat,"lastz",PlayerInfo[playerid][lastz]);
    }
    PlayerInfo[playerid][eingeloggt] = 0;
    PlayerInfo[playerid][lastx] = (0.0);
    PlayerInfo[playerid][lasty] = (0.0);
    PlayerInfo[playerid][lastz] = (0.0);
    return 1;
    }

  • also ich will da ahm
    Score
    money und adminlevel hinzufügen

  • ne muss ich noch machen ich suche kurz tut und amche mal schnell

  • naja, hier mal ein paar grundlagen:


    ich würde zuerst eine liste mit allen spielerdaten (enum), die du brauchst, erstellen, z.B:



    enum e_player_info
    {
    pPassword[32],
    pMoney,
    pScore,
    pAdmin //usw, halt alles, was du speichern (und laden) willst...
    };


    dann brauchst du ne globale variable, in der genug platz für jeden spieler ist.


    new g_PlayerInfo[MAX_PLAYERS][e_player_info]; //so, nun können hier die obigen daten für jeden spieler gespeichert werden.


    wenn jetzt der spieler den server betritt, werden seine daten aus seiner .ini file geladen:



    //OnPlayerConnect
    new pname[MAX_PLAYER_NAME], pfile[100];
    GetPlayerName(playerid, pname, sizeof(pname)); //name in pname gespeichert
    format(file, sizeof(file), "Userfiles\%s.ini", pname); //evtl. Pfad ändern
    //so, jetzt die daten aus der datei in das array:
    g_PlayerInfo[playerid][pPassword]=dini_Get(file, "Password");
    g_PlayerInfo[playerid][pMoney]=dini_Get(file, "Money");
    //usw...


    so, wenn der spieler den server verlässt, sollen die daten gespeichert werden:



    //OnPlayerDisconnect
    new pname[MAX_PLAYER_NAME], pfile[100];
    GetPlayerName(playerid, pname, sizeof(pname)); //name in pname gespeichert
    format(file, sizeof(file), "Userfiles\%s.ini", pname); //evtl. Pfad ändern
    dini_IntSet(file, "Money", GetPlayerMoney(playerid));
    dini_IntSet(file, "Score", GetPlayerScore(playerid));
    //usw...

    Keine Scripting-Fragen per PM!

  • ahm okay ich habe was gefunden das probiere oich mala us und ich schliese mal das teama