Passwort wird gelöscht beim GMX (Login & Register beigepackt)

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
  • Woran kann es liegen das er bei mir bei OnPlayerUpdate immer das passwort aus der ini löscht?
    ich finde es sehr seltsamm er soll eigendlich nur die neuen werte reinschreiben das macht er auch
    aber das passwort löscht er komischerweise immer?!


    (E) Überschrift
    (E) Überschrift editiert besser erklärt

    2 Mal editiert, zuletzt von Quini ()

  • public OnPlayerUpdate(playerid)
    {
    if(Eingeloggt[playerid])
    {
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Accounts/%s.ini",name);
    new File: hFile = fopen(string, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "Passwort= %s\n", PlayerInfo[playerid][Passwort]);fwrite(hFile, var);
    format(var, 32, "Level= %d\n", PlayerInfo[playerid][Level]);fwrite(hFile, var);
    format(var, 32, "Geld= %d\n", PlayerInfo[playerid][Geld]);fwrite(hFile, var);
    format(var, 32, "Heal= %.1f\n", PlayerInfo[playerid][Heal]);fwrite(hFile, var);
    format(var, 32, "Armor= %.1f\n", PlayerInfo[playerid][Armor]);fwrite(hFile, var);
    format(var, 32, "XKoord= %.1f\n", PlayerInfo[playerid][XKoord]);fwrite(hFile, var);
    format(var, 32, "YKoord= %.1f\n", PlayerInfo[playerid][YKoord]);fwrite(hFile, var);
    format(var, 32, "ZKoord= %.1f\n", PlayerInfo[playerid][ZKoord]);fwrite(hFile, var);
    format(var, 32, "AKoord= %.1f\n", PlayerInfo[playerid][AKoord]);fwrite(hFile, var);
    format(var, 32, "Neu= %d\n", PlayerInfo[playerid][Neu]);fwrite(hFile, var);
    format(var, 32, "Skin= %d\n", PlayerInfo[playerid][Skin]);fwrite(hFile, var);
    format(var, 32, "Inte= %d\n", PlayerInfo[playerid][Inte]);fwrite(hFile, var);
    format(var, 32, "Virt= %d\n", PlayerInfo[playerid][Virt]);fwrite(hFile, var);
    format(var, 32, "Bmkey= %d\n", PlayerInfo[playerid][Bmkey]);fwrite(hFile, var);
    format(var, 32, "Bhkey= %d\n", PlayerInfo[playerid][Bhkey]);fwrite(hFile, var);
    format(var, 32, "Brief= %d\n", PlayerInfo[playerid][Brief]);fwrite(hFile, var);
    format(var, 32, "Keys= %d\n", PlayerInfo[playerid][Keys]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    return 1;
    }

  • Auch wenn es deine Frage nicht wirklich beantwortet:


    Warum nutzt du kein richtiges Ini System? Warum speicherst du so viel Zeugs bei OnPlayerUpdate? Und vor allem warum das Passwort? Das ändert sich doch sowieso nie...

  • Das problem ist wenn ich das passwort da nicht rein schreibe ist es garnicht mehr in der ini bzw die zeile Passwort
    ich benutze das weil ich damit am besten klar komme und es teilweise verstanden habe wann soll ich die werte sonst updaten?
    ich habe es damals vom godfather gelernt es bei OnPlayerUpdate zu machen wahr es etwa falsch?

  • OnPlayerUpdate wird mehrmals pro Sekunde (!) aufgerufen, daher ist es für den Server ziemlich belastend dort Sachen abzuspeichern.


    Erstell dir eine eine extra Funktion die ca. alle 10 Minuten und wenn ein Spieler den Server verlässt aufgerufen wird, das reicht vollkommen aus.

  • Ja ich meine wenn ich die funkion oben benutze dann ein timer erstelle das er dieses Public jede 10 minuten öffnet und die neuen werte rein
    schreibt dann wenn ichs mit diesem code machen würde dann wehre immer das Passwort weg also es sieht ja so aus in der Ini


    Code
    Passwort= Mein passwort


    Nach der Funkion siehts so aus

    Code
    Passwort=


    es sollte aber so bleiben wie es vorher wahr und es soll nicht gelöscht werden ich weiß nur nicht wieso er es immer löscht

  • Sag mal was geprintet wird...


    public OnPlayerUpdate(playerid)
    {
    if(Eingeloggt[playerid])
    {
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Accounts/%s.ini",name);
    new File: hFile = fopen(string, io_write);
    if (hFile)
    {
    new var[32];
    printf("%s",PlayerInfo[playerid][Passwort]):
    format(var, 32, "Passwort= %s\n", PlayerInfo[playerid][Passwort]);fwrite(hFile, var);
    format(var, 32, "Level= %d\n", PlayerInfo[playerid][Level]);fwrite(hFile, var);
    format(var, 32, "Geld= %d\n", PlayerInfo[playerid][Geld]);fwrite(hFile, var);
    format(var, 32, "Heal= %.1f\n", PlayerInfo[playerid][Heal]);fwrite(hFile, var);
    format(var, 32, "Armor= %.1f\n", PlayerInfo[playerid][Armor]);fwrite(hFile, var);
    format(var, 32, "XKoord= %.1f\n", PlayerInfo[playerid][XKoord]);fwrite(hFile, var);
    format(var, 32, "YKoord= %.1f\n", PlayerInfo[playerid][YKoord]);fwrite(hFile, var);
    format(var, 32, "ZKoord= %.1f\n", PlayerInfo[playerid][ZKoord]);fwrite(hFile, var);
    format(var, 32, "AKoord= %.1f\n", PlayerInfo[playerid][AKoord]);fwrite(hFile, var);
    format(var, 32, "Neu= %d\n", PlayerInfo[playerid][Neu]);fwrite(hFile, var);
    format(var, 32, "Skin= %d\n", PlayerInfo[playerid][Skin]);fwrite(hFile, var);
    format(var, 32, "Inte= %d\n", PlayerInfo[playerid][Inte]);fwrite(hFile, var);
    format(var, 32, "Virt= %d\n", PlayerInfo[playerid][Virt]);fwrite(hFile, var);
    format(var, 32, "Bmkey= %d\n", PlayerInfo[playerid][Bmkey]);fwrite(hFile, var);
    format(var, 32, "Bhkey= %d\n", PlayerInfo[playerid][Bhkey]);fwrite(hFile, var);
    format(var, 32, "Brief= %d\n", PlayerInfo[playerid][Brief]);fwrite(hFile, var);
    format(var, 32, "Keys= %d\n", PlayerInfo[playerid][Keys]);fwrite(hFile, var);
    fclose(hFile);
    }
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Er Printet das Passwort aus der ini aber dann löscht er es raus wie sonst auch immer es soll aber da bleiben
    also das passwort soll so bleiben wie es nachem registrieren ist sieht so aus Passwort= Mein Passwort
    aber komischer weise siehts dann immer so aus Passwort= hmm hat noch jemand ne idee wehre sehr wichtig.


    (E) Text umformiliert

    Einmal editiert, zuletzt von Quini ()

  • So ich weiß nun worran es liegt bzw wann das passwort gelöscht wird und zwar beim normalen disconnecten bleibt es aber
    bei einem gmx wird es gelöscht so sieht mein OnGameModeExit aus:


    public OnGameModeExit()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    Delen();
    OnPlayerUpdate(i);
    Eingeloggt[i] = 0;
    }
    }
    return 1;
    }


    (E) Text

    Einmal editiert, zuletzt von Quini ()

  • Dort Löscht er nur Pickups und 3d labels und sowas eben ich habe es in einem extra public gemacht
    damit ongamemodeexit nicht so unsauber bzw unübersichtlich aussieht da es ne wichtige funkion ist
    was denkt ihr wie ichs noch beheben kann es ist nun sehr wichtig für mich und halt bei einem Server
    Restart der manchmal eben sein muss wehre dann immer von den usern das passwort weg aber nur
    bei einem GMX ich habs bis jetz nur peer rcon konsole gemacht liegt es daran oder nicht? nur das
    Porblem muss dringend weg ich bitte drum das mir jemand hilft.


    LG: Qini

  • Habe ich dann sieht meine ini so aus:


    Level= 1
    Geld= 0
    Heal= 100.0
    Armor= 0.0
    XKoord= -54.0
    YKoord= 83.0
    ZKoord= 3.0
    AKoord= 248.0
    Neu= 1
    Skin= 158
    Inte= 0
    Virt= 0
    Bmkey= 0
    Bhkey= 0
    Brief= 0
    Keys= 0


    aber es müsste so


    Passwort= Mein Passwort
    Level= 1
    Geld= 0
    Heal= 100.0
    Armor= 0.0
    XKoord= -54.0
    YKoord= 83.0
    ZKoord= 3.0
    AKoord= 248.0
    Neu= 1
    Skin= 158
    Inte= 0
    Virt= 0
    Bmkey= 0
    Bhkey= 0
    Brief= 0
    Keys= 0

  • ohja das ist ein Alter bug vom World of Appel Reallife z.b :)

  • Ich habe mir nun eine eigene funkion erstellt undzwar ein public das, das updatet alle 10 minuten und beim disconnecten doch
    immer wenn ich einen gmx mache springt mein Passwort auf Passwort= ich weiß einfach nicht mehr weiter bzw wieso es ist ja
    so ne art godfather register system nicht copiert sondern nach gebaut und verfeinert doch wieso geht es nicht LoH hat das problem
    z.b auch nicht?!


    public Register(playerid,password[])
    {
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Accounts/%s.ini",name);
    new File: hFile = fopen(string, io_write);
    if (hFile)
    {
    strmid(PlayerInfo[playerid][Passwort], password, 0, strlen(password), 255);
    new var[32];
    format(var, 32, "Passwort=%s\n", PlayerInfo[playerid][Passwort]);fwrite(hFile, var);
    format(var, 32, "Level=%d\n", PlayerInfo[playerid][Level]);fwrite(hFile, var);
    format(var, 32, "Geld=%d\n", PlayerInfo[playerid][Geld]);fwrite(hFile, var);
    format(var, 32, "Heal=%.1f\n", PlayerInfo[playerid][Heal]);fwrite(hFile, var);
    format(var, 32, "Armor=%.1f\n", PlayerInfo[playerid][Armor]);fwrite(hFile, var);
    format(var, 32, "XKoord =%.1f\n", PlayerInfo[playerid][XKoord]);fwrite(hFile, var);
    format(var, 32, "YKoord=%.1f\n", PlayerInfo[playerid][YKoord]);fwrite(hFile, var);
    format(var, 32, "ZKoord=%.1f\n", PlayerInfo[playerid][ZKoord]);fwrite(hFile, var);
    format(var, 32, "AKoord=%.1f\n", PlayerInfo[playerid][AKoord]);fwrite(hFile, var);
    format(var, 32, "Neu=%d\n", PlayerInfo[playerid][Neu]);fwrite(hFile, var);
    format(var, 32, "Skin=%d\n", PlayerInfo[playerid][Skin]);fwrite(hFile, var);
    format(var, 32, "Inte=%d\n", PlayerInfo[playerid][Inte]);fwrite(hFile, var);
    format(var, 32, "Virt=%d\n", PlayerInfo[playerid][Virt]);fwrite(hFile, var);
    format(var, 32, "Bmkey=%d\n", PlayerInfo[playerid][Bmkey]);fwrite(hFile, var);
    format(var, 32, "Bhkey=%d\n", PlayerInfo[playerid][Bhkey]);fwrite(hFile, var);
    format(var, 32, "Brief=%d\n", PlayerInfo[playerid][Brief]);fwrite(hFile, var);
    format(var, 32, "Keys=%d\n", PlayerInfo[playerid][Keys]);fwrite(hFile, var);
    fclose(hFile);
    }
    return 1;
    }


    public Login(playerid,password[])
    {
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"/Accounts/%s.ini",name);
    new File: UserFile = fopen(string, io_read);
    if (UserFile)
    {
    new PassData[256],keytmp[256],valtmp[256];
    fread( UserFile,PassData,sizeof(PassData));
    keytmp = ini_GetKey(PassData);
    if( strcmp(keytmp,"Key",true )== 0)
    {
    valtmp = ini_GetValue(PassData);
    strmid(PlayerInfo[playerid][Passwort],valtmp,0,strlen(valtmp)-1, 255);
    }
    if(strcmp(PlayerInfo[playerid][Passwort],password,true)== 0)
    {
    new key[256],val[256],Data[256];
    while(fread(UserFile,Data,sizeof(Data)))
    {
    key = ini_GetKey(Data);
    if(strcmp(key,"Level", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Level] = strval(val); }
    if(strcmp(key,"Geld", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Geld] = strval(val); }
    if(strcmp(key,"Heal", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Heal] = strval(val); }
    if(strcmp(key,"Armor", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Armor] = strval(val); }
    if(strcmp(key,"XKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][XKoord] = strval(val); }
    if(strcmp(key,"YKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][YKoord] = strval(val); }
    if(strcmp(key,"ZKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][ZKoord] = strval(val); }
    if(strcmp(key,"AKoord", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][AKoord] = strval(val); }
    if(strcmp(key,"Neu", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Neu] = strval(val); }
    if(strcmp(key,"Skin", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Skin] = strval(val); }
    if(strcmp(key,"Inte", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Inte] = strval(val); }
    if(strcmp(key,"Virt", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Virt] = strval(val); }
    if(strcmp(key,"Bmkey", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Bmkey] = strval(val); }
    if(strcmp(key,"Bhkey", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Bhkey] = strval(val); }
    if(strcmp(key,"Brief", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Brief] = strval(val); }
    if(strcmp(key,"Keys", true ) == 0 ) { val = ini_GetValue(Data); PlayerInfo[playerid][Keys] = strval(val); }
    }
    fclose(UserFile);
    }
    else
    {
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Einloggen","Das Passwort ist nicht korrekt \nversuchen sie es noch einmal","Einloggen","Abbrechen");
    fclose(UserFile);
    PFalsch[playerid] += 1;
    if(PFalsch[playerid] == 3) { Kick(playerid); SendClientMessage(playerid,Rot,"Sie wurden gekickt: Passwort 3 mal falsch!"); }
    return 1;
    }
    }
    return 1;
    }


    (E) Text
    (E) Text neu geschrieben.
    (E) Register und Login Zugeschrieben
    (E) Nochmal was zugeschrieben bzw geändert

    3 Mal editiert, zuletzt von Quini ()

  • Ich kann da jetzt keinen direkten Fehler erkennen, poste mal dein OnPlayerDisconnect, wenn du meinst das PW würde immer beim disconnecten gelöscht.
    Ansonsten würde ich dir raten dein Register System mit einem Ini System (zB. dubd oder Blackfox INI) komplett neu zu erstellen.

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