Funktion überschreibt Datei mit Standartwerten

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, ich versuche gerade ein Login & Registrier verfahren, ähnlich wie im Godfather zu scripten. Allerdings werden beim Aktualisieren der SpielerDatei alle Werte auf die Standartwerte gesetzt.


    Beispiel:


    Meine Userdatei sieht vor dem connecten so aus:


    Sobald ich connecte und meine Spielerdatei aktualisiert wird (passiert jede Sekunde) sieht sie nurnoch so aus:





    Und hier sind die beiden Funktionen, Einloggen und Aktualisieren:


    public Einloggen(playerid,password[])
    {
    new string2[64];
    new playername2[MAX_PLAYER_NAME];
    GetPlayerName(playerid, playername2, sizeof(playername2));
    format(string2, sizeof(string2), "%s.ini", playername2);
    new File: UserFile = fopen(string2, io_read);
    if ( UserFile )
    {
    new PassData[256];
    new keytmp[256], valtmp[256];
    fread( UserFile , PassData , sizeof( PassData ) );
    keytmp = ini_GetKey( PassData );
    if( strcmp( keytmp , "Key" , true ) == 0 )
    {
    valtmp = ini_GetValue( PassData );
    strmid(Spieler[playerid][pPas], valtmp, 0, strlen(valtmp)-1, 255);
    }
    if(strcmp(Spieler[playerid][pPas],password, true ) == 0 )
    {
    SendClientMessage(playerid, COLOR_YELLOW, "Du wurdest erfolgreich eingeloggt !");
    TogglePlayerControllable(playerid, 1);
    gEingeloggt[playerid] = 2;
    new key[ 256 ], val[ 256 ];
    new Data[ 256 ];
    while ( fread( UserFile , Data , sizeof( Data ) ) )
    {
    key = ini_GetKey( Data );
    if( strcmp( key , "Geld" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pMoney] = strval( val ); }
    if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pAdmin] = strval( val ); }
    if( strcmp( key , "Skin" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pSkin] = strval( val ); }
    if( strcmp( key , "Cop" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pCop] = strval( val ); }
    if( strcmp( key , "Taxi" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pTaxi] = strval( val ); }
    if( strcmp( key , "Sani" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pSani] = strval( val ); }
    if( strcmp( key , "Duty" , true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pDuty] = strval( val ); }
    if( strcmp( key , "Arbeitszeit", true ) == 0 ) { val = ini_GetValue( Data ); Spieler[playerid][pDutyTime] = strval( val ); }
    }
    fclose(UserFile);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid, Spieler[playerid][pSkin]);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Falsches Passwort.");
    Kick(playerid);
    return 1;
    }
    }
    return 1;
    }


    public Aktualisieren(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gEingeloggt[playerid])
    {
    new
    string3[32],
    SpielerName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, SpielerName, sizeof(SpielerName));
    format(string3, sizeof(string3), "%s.ini", SpielerName);
    new File: hFile = fopen(string3, io_write);
    if (hFile)
    {
    new inhalt[32];
    SetPlayerScore(playerid, Spieler[playerid][pAdmin]);
    Spieler[playerid][pMoney] = GetPlayerMoney(playerid);
    format(inhalt, 32, "Key=%s\n", Spieler[playerid][pPas]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Frage=%s\n", Spieler[playerid][pFrage]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Antwort=%s\n", Spieler[playerid][pAntwort]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Geld=%d\n",Spieler[playerid][pMoney]);fwrite(hFile, inhalt);
    format(inhalt, 32, "AdminLevel=%d\n",Spieler[playerid][pAdmin]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Skin=%d\n",Spieler[playerid][pSkin]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Cop=%d\n",Spieler[playerid][pCop]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Taxi=%d\n",Spieler[playerid][pTaxi]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Sani=%d\n",Spieler[playerid][pSani]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Duty=%d\n",Spieler[playerid][pDuty]);fwrite(hFile, inhalt);
    format(inhalt, 32, "Arbeitszeit=%d\n",Spieler[playerid][pDutyTime]);fwrite(hFile, inhalt);
    fclose(hFile);
    }
    }
    }
    return 1;
    }

    ...