Speicher fehler (PSC 30€ TG)

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 Handy Nummern speichern geht nicht richtig.


    Code:

    format(nummer, sizeof nummer,"0276%d%d%d%d",random(2),random(2),random(1),random(1));
    SpielerInfo[playerid][pHandynummer] = strval(nummer);
    format(string, 256, "Deine neue Handynummer: 0%d",strval(nummer));


    Es wird NACH dem 0276 gespeichert.. warum?


    Laden: SpielerInfo[playerid][pHandynummer] = dini_Int(data,"Handynummer");
    Speichern: dini_IntSet(data, "Handynummer", SpielerInfo[playerid][pHandynummer]);


    Bitte helft mir.


    //EDIT Der jenige der den Bug findet bzw. fixed kriegt 30psc ;)

    Einmal editiert, zuletzt von |GXR|B3ar ()

  • Ich seh' zwar auf Anhieb keinen Fehler, aber hätte gegebenenfalls einen anderen Lösungsvorschlag.
    format(nummer, sizeof nummer, "%d%d%d%d", random(2),random(2),random(1),random(1));
    strins(nummer, "0276", 0);
    SpielerInfo[playerid][pHandynummer] = strval(nummer);
    format(string, 256, "Deine neue Handynummer: 0%d", strval(nummer));


    Mit freundl. Grüßen
    Padarom


    edit: Die Nachricht wird richtig angezeigt? Also wird die Nummer nur nicht richtig gespeichert? Schonmal die einzelnen Werte printen lassen?

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Die nummer wird danach angezeigt ihre nummer ist.. bla


    Nur beim Laden steht in der file, die nummer ohne die 027 .. also nur die %d werden gespeichert.. eigentlich müsste er die vorwahl auch speichern oder nicht ? bzw. ha ich was beim laden speichen falsch?



    edit: Die Nachricht wird richtig angezeigt? Also wird die Nummer nur nicht richtig gespeichert? Schonmal die einzelnen Werte printen lassen?


    Dauert mir zu lange ich muss das schnell gefixed bekommen, da muss doch irg. was mit Dini_Set oder so falsch sein oder?
    Also beim speichern gehts nicht nur die nach der 027..

  • Dann printe mal SpielerInfo[playerid][pHandynummer] und schau was das ergibt. Ggf. läuft was bei der Zuweisung falsch.
    Ansonsten liegts wirklich am Speichern, wüsste aber nicht wo/wieso.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • So: ?


    SpielerInfo[playerid][pHandynummer] = dini_Int(data,"Handynummer");
    print (SpielerInfo[playerid][pHandynummer]);

  • Printe einfach
    printf("%d", string);


    //edit
    versuch das mal (einfache lösung)
    new nummer = 0276;
    format(nummer, sizeof nummer,"%d%d%d%d%d",nummer,random(2),random(2),random(1),random(1));


    SpielerInfo[playerid][pHandynummer] = strval(nummer);


    format(string, 256, "Deine neue Handynummer: 0%d",strval(nummer));


    wenn das nicht geht versuch
    format(nummer, sizeof nummer,"%s%d%d%d%d",nummer,random(2),random(2),random(1),random(1));

  • SpielerInfo[playerid][pHandynummer] = dini_Int(data,"Handynummer");
    printf("%d", SpielerInfo[playerid][pHandynummer]);
    Die Variable ist kein String, und kann deswegen nur formatiert geprintet werden.
    Mach das gleiche am Besten auch noch nach dem Speichern der Handynummer (also 2x), damit man vergleichen kann woran's liegt.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger


  • format(nummer, sizeof nummer,"0276%d%d%d%d",random(2),random(2),random(1),random(1));
    //SpielerInfo[playerid][pHandynummer] = strval(nummer);
    format(string, 256, "Deine neue Handynummer: 0%d",strval(nummer));
    new stringh[256];
    format(stringh,sizeof(stringh), "0276%d%d%d%d",random(2),random(2),random(1),random(1));
    SpielerInfo[playerid][pHandynummer] = stringh;



  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • @Myname: Die Chance, dass sich bei deiner Version die angezeigte Handynummer ("Deine neue Handynummer: ...") und die gespeicherte gleichen, liegt bei 1:6.
    Und da die Spielervariable keine Zeichenfolge, sondern eine Zahl/Integer ist, kannst du da auch keine Zeichenfolge reinpacken. Um das strval(...) kommst du also nicht drum rum.
    Ansonsten ist deins eigentlich das gleiche, was B3ar schon hat.


    @B3ar: Du speicherst irgendwo einen anderen Inhalt in die Variable. DIe Zahl ist 7-stellig, WÄRE also die %d (4x) + 3 Ziffern, welche aber eigentlich nirgends so in deinem geposteten System vorkommen.
    random(2) erstellt eine zufällige Zahl zwischen 0 und 2, die 6, 3 oder 4 könnte dabei also garnicht vorkommen. Klapper mal dein ganzes Script nach Zuordnungen dieser Variable ab (einfach Strg+F, "SpielerInfo[playerid][HandyNummer]" eingeben und alles überprüfen, ob nicht vielleicht woanders was eingetragen wird.)


    edit sonic: Hat er doch schon.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Stop mal :D


    Also..


    Beim /handy kommt dann deine Nummer ist 0274 02823 als beispiel jetzt..


    beim relogen des spielers steht die nummer ohne 0274 da..

  • Klapper mal dein ganzes Script nach Zuordnungen dieser Variable ab (einfach Strg+F, "SpielerInfo[playerid][HandyNummer]" eingeben und alles überprüfen, ob nicht vielleicht woanders was eingetragen wird). Wenn du eine andere Zuweisung findest, guck nach ob du sie brauchst, sonst mach sie raus. Wenn nicht, dann bräuchten wir mehr Infos/Scriptcode - Ich denke, dass wir ansonsten das Problem nicht finden.

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger

  • Hier wird doch angegeben, das er alles speichern soll in dem 'Satz..' oder nicht?

    format(nummer, sizeof nummer,"0176%d%d%d%d",random(9),random(9),random(9),random(9));
    SpielerInfo[playerid][pHandynummer] = strval(nummer);


    oder ist was beim speichern fail?

  • und was ist, wenn du für die Vorwahl zum testen einen eigenen String erstellst?



    new vorwahl = 0276;
    format(nummer, sizeof nummer,"%d%d%d%d%d",vorwahl,random(2),random(2),random(1),random(1));
    SpielerInfo[playerid][pHandynummer] = strval(nummer);
    format(string, 256, "Deine neue Handynummer: 0%d",strval(nummer));


    ich glaube so müsste es stimmen. Ansonsten bitte korrigieren.


    Gruss: Sonic

    I didn't hit you. I high fived your face.

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