[PVars] - Speicherungs Fehler? [Belohnung PSC !!]

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,
    Bei mir Speichert er denn Wert 1 oder 2 nicht in der Spielerdatei.


    Wert wird Gesetz

    if(dialogid==DIALOG_GESCHLECHT)
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_WEISS,"Alles Klar, du bist also Weiblich.");
    SetPVarInt(playerid,"Geschlecht",2);
    SpielerSpeichern(playerid);
    return 1;
    }
    if(response==1)
    {
    SendClientMessage(playerid,FARBE_WEISS,"Alles Klar, du bist also Männlich.");
    SetPVarInt(playerid,"Geschlecht",1);
    SpielerSpeichern(playerid);
    return 1;
    }
    }

    Bei der Erstellung der Datei

    stock Register(playerid,key[]){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(SpielerDatei);dini_Set(SpielerDatei,"Passwort",key);
    dini_IntSet(SpielerDatei,"Level",0);
    dini_IntSet(SpielerDatei,"Bargeld",0);
    dini_IntSet(SpielerDatei,"Gebannt",0);
    dini_IntSet(SpielerDatei,"Geschlecht",0); //<-- Setze wenn Wert auf 0
    dini_IntSet(SpielerDatei,"Eingeloggt",1);return 1;
    }


    Beim Speichern

    stock SpielerSpeichern(playerid){
    if(GetPVarInt(playerid,"Eingeloggt")==1){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Bargeld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Gebannt",GetPVarInt(playerid,SpielerDatei));
    dini_IntSet(SpielerDatei,"Geschlecht",GetPVarInt(playerid,SpielerDatei));
    dini_IntSet(SpielerDatei,"Eingeloggt",0);
    }return 1;
    }


    Beim Laden

    stock SpielerLaden(playerid){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    SetPlayerScore(playerid,dini_Int(SpielerDatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(SpielerDatei,"Bargeld"));
    SetPVarInt(playerid,"Geschlecht",dini_Int(SpielerDatei,"Geschlecht"));
    SetPVarInt(playerid,"Eingeloggt",1);
    if(GetPVarInt(playerid,"Gebannt")==1){
    Kick(playerid);
    SendClientMessage(playerid,FARBE_WEISS,"Gebannt!");
    }return 1;
    }


    Hoffe mir kann einer Helfen


    MfG.


  • na wo ist der Fehler?
    Tipp seh dir das Rote an denn du musst den Namen des Vars angeben wie du ihn gesetzt hast



    stock SpielerSpeichern(playerid){
    if(GetPVarInt(playerid,"Eingeloggt")==1){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Bargeld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Gebannt",GetPVarInt(playerid,"Gebannt"));
    dini_IntSet(SpielerDatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));
    dini_IntSet(SpielerDatei,"Eingeloggt",0);
    }return 1;
    }


    Wenn du meinst das es so gehört, dann bringt es auch nicht's. Geschlecht bleibt bei 0 stehen.


    MfG.

  • Lösche Zeile 9 bei "SpielerSpeichern", da es ja nicht nur beim Ausloggen aufgerufen wird.

  • wtf,ich hab fast genau das gleiche System und bei LoadAccount steht:


    SetPVarInt(playerid,"Geschlecht",dini_Int(Spielerdatei,"Geschlecht"));


    und Spielerspeichern



    dini_IntSet(Spielerdatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));

  • Ich bleibe dabei! :D
    Nimm mal bei "SpielerSpeichern" die if-Abfrage mit dem Eingeloggt raus.
    Die Nachricht "Alles Klar, du bist also ..." Wird angezeigt?
    Lass dir bei "SpielerSpeichern" was in die Konsole Printen (debuggen).

  • Ich bleibe dabei! :D
    Nimm mal bei "SpielerSpeichern" die if-Abfrage mit dem Eingeloggt raus.
    Die Nachricht "Alles Klar, du bist also ..." Wird angezeigt?
    Lass dir bei "SpielerSpeichern" was in die Konsole Printen (debuggen).


    Die Nachricht wird Angezeigt ja.
    So, SpielerSpeichern ist weg, und die Eingellogt Abfrage auch.
    Fehler bleibt der gleiche. ;(


    MfG.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • In dem Code ist kein Fehler ...
    Editiere oben nochmal deinen aktuellen Code.

  • dini_IntSet(SpielerDatei,"Eingeloggt",0);


    wieso das eigentlich?Das ist total unnötig,weill du wenn du den Spielerspeicherst bei der Geschlechterauswahl ja sofort uneingeloggt machst,dann kann er ja auch nichtmehr speichern,weill das denk ich alles sofort passiert,also probier das ma rauszunehmen

  • Warte...


    Setzen ihn auf denn Wert 1 oder 2

    if(dialogid==DIALOG_GESCHLECHT)
    {
    if(response==0)
    {
    SendClientMessage(playerid,FARBE_WEISS,"Alles Klar, du bist also Weiblich.");
    SetPVarInt(playerid,"Geschlecht",2);
    return 1;
    }
    if(response==1)
    {
    SendClientMessage(playerid,FARBE_WEISS,"Alles Klar, du bist also Männlich.");
    SetPVarInt(playerid,"Geschlecht",1);
    return 1;
    }
    }



    stock Register(playerid,key[]){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_Create(SpielerDatei);dini_Set(SpielerDatei,"Passwort",key);
    dini_IntSet(SpielerDatei,"Level",0);
    dini_IntSet(SpielerDatei,"Bargeld",0);
    dini_IntSet(SpielerDatei,"Gebannt",0);
    dini_IntSet(SpielerDatei,"Geschlecht",0);
    dini_IntSet(SpielerDatei,"Eingeloggt",1);return 1;
    }



    stock SpielerLaden(playerid){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    SetPlayerScore(playerid,dini_Int(SpielerDatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(SpielerDatei,"Bargeld"));
    SetPVarInt(playerid,"Geschlecht",dini_Int(SpielerDatei,"Geschlecht"));
    SetPVarInt(playerid,"Eingeloggt",1);
    if(GetPVarInt(playerid,"Gebannt")==1){
    Kick(playerid);
    SendClientMessage(playerid,FARBE_WEISS,"Gebannt!");
    }return 1;
    }
    stock SpielerSpeichern(playerid){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Bargeld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Gebannt",GetPVarInt(playerid,"Gebannt"));
    dini_IntSet(SpielerDatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));return 1;
    return 1;
    }

  • Könnte es sein das du das Geschlecht setzt und dann denn stock Register ausführst?
    Da wird der wieder auf 0 gesetzt. Finde sonst keinen Fehler.

    seekrass approved
    4x vom Discord geflogen


    shoxinat0r 4
    dennismitzwein 2
    Trooper[Y] 2
    maddin 1
    Unbekannter Discord Kick 2
  • Hast du dich denn auch ausgeloggt und führst "SpielerSpeichern" beim Disconnect auch aus?
    Unten bei SpielerSpeichern einfach mal print("gespeichert") ...

  • stock SpielerSpeichern(playerid){
    if(GetPVarInt(playerid,"Eingeloggt")==1){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Bargeld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Gebannt",GetPVarInt(playerid,"Gebannt"));
    dini_IntSet(SpielerDatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));return 1;
    }return 0;
    }

  • Hast du dich denn auch ausgeloggt und führst "SpielerSpeichern" beim Disconnect auch aus?
    Unten bei SpielerSpeichern einfach mal print("gespeichert") ...

    Ja mache ich.

    stock SpielerSpeichern(playerid){
    if(GetPVarInt(playerid,"Eingeloggt")==1){
    new SpielerDatei[512];
    format(SpielerDatei,sizeof(SpielerDatei),"/Accounts/%s.ini",SpielerName(playerid));
    dini_IntSet(SpielerDatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(SpielerDatei,"Bargeld",GetPlayerMoney(playerid));
    dini_IntSet(SpielerDatei,"Gebannt",GetPVarInt(playerid,"Gebannt"));
    dini_IntSet(SpielerDatei,"Geschlecht",GetPVarInt(playerid,"Geschlecht"));
    print("gespeichert");
    }return 1;
    }

    Und es wird mir Ausgeprint.


    MfG.

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