String / Integer Problem

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,


    vielleicht ist das eins meiner größten Probleme aber ich hoffe ihr könnt mir trotzdem helfen.
    Ich habe jetzt mir in meinem Login / Register System etwas erstellt, dass die Loginversuche zählt (als Enum).
    Dann habe ich SpielerAccount[playerid][Loginversuche] ++; gemacht, sodass bei jedem falschen Passwort Loginversuche +1 gemacht werden soll.
    Soweit hatte ich garkeine Probleme.
    Nun kommen wir zu meinem Problem.
    Jetzt möchte ich in einem Dialog veranschaulichen, dass der Spieler meinetwegen 1/3 Versuche hat. Dies muss ich ja in einem String machen.
    Ich habe den String formatiert, doch weiß jetzt nicht, ob ich bei Versuch % ein %s, %i oder ein %d nehmen muss.
    Übrigens: Ich habe %s, %i und %d probiert, doch bei allen stand: tag misbatch oder so etwas ähnliches.



    stock Login(playerid,key[])
    {
    new accFormat[64];
    format(accFormat,sizeof(accFormat),"/Accounts/%s.txt",SpielerName(playerid));
    if(!strcmp(key,dini_Get(accFormat,"Passwort"),false))
    {
    AccountLaden(playerid);
    return 1;
    }
    else
    {
    new string[128];
    SpielerAccount[playerid][Loginversuche] ++;
    format(string,sizeof(string),"Das angegebene Passwort war falsch!\nVersuch % von 3\nBitte gib dein richtiges Passwort ein!",Loginversuche);
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Reallife Server by Muho aka. "HTML_RED"FreshKing",string,"Login","Abbrechen");
    return 1;
    }
    }

  • Wo hilft dein Post bei dem Fehler,Uppermost ?


    Zitat

    Ich habe den String formatiert, doch weiß jetzt nicht, ob ich bei Versuch % ein %s, %i oder ein %d nehmen muss.


    %i und %d sind identisch. Das müsstest du benutzten anstatt %s.
    Wofür %[s,i,d,etc.] steht,siehst du hier:
    http://wiki.sa-mp.com/wiki/Format


    Zitat

    Übrigens: Ich habe %s, %i und %d probiert, doch bei allen stand: tag misbatch oder so etwas ähnliches.


    Tag Mismatch hat nichts mit %s,%i oder %d zu tun. Denn der Compiler prüft nicht,ob %[s,i,d,etc.] mit dem Variablentyp zusammenpasst, für den es Platzhalter ist.


    format(string,sizeof(string),"Das angegebene Passwort war falsch!\nVersuch % von 3\nBitte gib dein richtiges Passwort ein!",Loginversuche);
    Wieso schreibst du dort nur Loginversuche und nicht SpielerAccount[playerid][Loginversuche] ? Denn das ist dein Fehler.


    //Edit:
    Die Erklärung findest du irgendwo im Forum. Hängt jedenfalls mit der Funktionsweise von "enum" zusammen.