GeldAnzeige ändern 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 Community,
    Kann mir einer helfen ? ich habe versucht, eine Funktion zu schreiben, womit die Geldwerte richtig angezeigt werden z.B ich habe $5000 und möchte aber $5.000 returnen oder ich hab 2500000, dann soll $2.500.000 ausgegeben werden,


    Nur weiß ich nicht wie das geht
    Mein Versucht den Ich gemacht hab scheiterte leider


    forward GetCashResult(Betrag);
    public GetCashResult(Betrag)
    {
    new string2[30];
    if(strlen((Betrag)) == 4)
    {
    new ZahlenString[5];
    format(ZahlenString[0], sizeof(ZahlenString[0]), "%s", strlen(string[0]));
    format(ZahlenString[1], sizeof(ZahlenString[1]), "%s", string[1]);
    format(ZahlenString[2], sizeof(ZahlenString[2]), "%s", string[2]);
    format(ZahlenString[3], sizeof(ZahlenString[3]), "%s", string[3]);
    format(ZahlenString[4], sizeof(ZahlenString[4]), "%s", string[4]);
    format(string2, sizeof(string2), "%s%s.%s%s%s", ZahlenString[0],ZahlenString[1],ZahlenString[2],ZahlenString[3],ZahlenString[4]);
    }
    else if(strlen(Betrag) == 5)
    {
    new ZahlenString[6][2];
    format(ZahlenString[0], sizeof(ZahlenString[0]), "%s", string);
    format(ZahlenString[1], sizeof(ZahlenString[1]), "%s", string[1]);
    format(ZahlenString[2], sizeof(ZahlenString[2]), "%s", string[2]);
    format(ZahlenString[3], sizeof(ZahlenString[3]), "%s", string[3]);
    format(ZahlenString[4], sizeof(ZahlenString[4]), "%s", string[4]);
    format(string2, sizeof(string2), "%s%s.%s%s%s", ZahlenString[0],ZahlenString[1],ZahlenString[2],ZahlenString[3],ZahlenString[4]);
    }
    else if(strlen(Betrag) == 6)
    {
    new ZahlenString[6][2];
    format(ZahlenString[0], sizeof(ZahlenString[0]), "%s", string);
    format(ZahlenString[1], sizeof(ZahlenString[1]), "%s", string[1]);
    format(ZahlenString[2], sizeof(ZahlenString[2]), "%s", string[2]);
    format(ZahlenString[3], sizeof(ZahlenString[3]), "%s", string[3]);
    format(ZahlenString[4], sizeof(ZahlenString[4]), "%s", string[4]);
    format(ZahlenString[5], sizeof(ZahlenString[5]), "%s", string[5]);
    format(string2, sizeof string2, "%s%s%s.%s%s%s", ZahlenString[0], ZahlenString[1], ZahlenString[2], ZahlenString[3], ZahlenString[4], ZahlenString[5]);
    }
    else if(strlen(Betrag) == 7)
    {
    new ZahlenString[7][2];
    format(ZahlenString[0], sizeof(ZahlenString[0]), "%s", string);
    format(ZahlenString[1], sizeof(ZahlenString[1]), "%s", string[1]);
    format(ZahlenString[2], sizeof(ZahlenString[2]), "%s", string[2]);
    format(ZahlenString[3], sizeof(ZahlenString[3]), "%s", string[3]);
    format(ZahlenString[4], sizeof(ZahlenString[4]), "%s", string[4]);
    format(ZahlenString[5], sizeof(ZahlenString[5]), "%s", string[5]);
    format(ZahlenString[6], sizeof(ZahlenString[6]), "%s", string[6]);
    format(string2, sizeof string2, "%s.%s%s%s.%s%s%s", ZahlenString[0], ZahlenString[1], ZahlenString[2], ZahlenString[3], ZahlenString[4], ZahlenString[5], ZahlenString[6]);
    }
    return string2;
    }



    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(45) : error 035: argument type mismatch (argument 1)
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(48) : error 001: expected token: "]", but found "-integer value-"
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(48) : warning 215: expression has no effect
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(48) : error 001: expected token: ";", but found "]"
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(48) : error 029: invalid expression, assumed zero
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(48) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    5 Errors.


    Hoffe mir kann einer helfen









    //EDIT: Keiner? 8|

    Einmal editiert, zuletzt von RedStyle ()

  • C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(44) : warning 224: indeterminate array size in "sizeof" expression (symbol "maxlength")
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(45) : warning 224: indeterminate array size in "sizeof" expression (symbol "maxlength")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Warnings.


    forward GetCashResult(Betrag[]);
    public GetCashResult(Betrag[])
    {
    if(strlen((Betrag)) == 7) //wenn die Zahl 7 Zeichen lang ist....
    {
    strins(Betrag,".",1);
    strins(Betrag,".",4);
    }
    }


    Aso wie kann ich den Betrag returnen ? z.B format(string, sizeof string, "%s",GetCashResult());

  • forward GetCashResult(Betrag[]);
    public GetCashResult(Betrag[])
    {
    if(strlen((Betrag)) == 7) //wenn die Zahl 7 Zeichen lang ist....
    {
    strins(Betrag,".",1);
    strins(Betrag,".",4);
    }
    return Betrag;
    }




    //edit:


    Achso, hier komplett:


    Die Funktion:


    stock GetCashResult(Betrag)
    {
    new betragstr[32];
    valstr(betragstr,Betrag); //Integer wird in String umgewandelt
    if(strlen((betragstr)) == 7) //wenn die Zahl 7 Zeichen lang ist....
    {
    strins(betragstr,".",1);
    strins(betragstr,".",4);
    }
    Betrag = strval(betragstr); //wird wieder zurückverwandelt....
    return Betrag;
    }


    So benutzt du sie:


    GetCashResult(variablemitdemgeld);

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(55) : warning 224: indeterminate array size in "sizeof" expression (symbol "maxlength")
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(56) : warning 224: indeterminate array size in "sizeof" expression (symbol "maxlength")
    C:\Users\***\Desktop\samp03e_svr_win32\filterscripts\TestFS.pwn(58) : error 090: public functions may not return arrays (symbol "GetCashResult")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Die Variable geld muss natürlich hier noch ergänzt werden, dennoch sollte es wie folgt funktionieren:



    new idx[20], part;
    format(idx, sizeof(idx), "%i", geld);
    part = strlen(idx)-3;
    while(part > 0)
    {
    strins(idx, ".", part);
    part -= 3;
    }

  • Stimmt, gar keine so schlechte Idee :3
    Aber ersetz die formatline doch einfach mit valstr....

  • Danke!!! nur stimmt der Code nicht zu 100% ;D laut dem Code gibt er x.xx.xxxx an :)
    naja fixxed: für jemanden der es noch braucht:
    stock GetCashResult(Betrag)
    {
    new betragstr[32];
    valstr(betragstr,Betrag);
    if(strlen((betragstr)) == 7) .
    {
    strins(betragstr,".",1);
    strins(betragstr,".",5);
    }
    return betragstr;
    }

  • Sry ^^
    Hatte mich verzähl :3

  • Bei deinem Beispiel wird der Geldbetrag aber nur formatiert, wenn der Betrag zwischen 1000000 und 9999999 liegt. Schau dir mein Beispiel oben an, damit du siehst, wie es zum Beispiel mit 2500 funktioniert.

  • Bei deinem Beispiel wird der Geldbetrag aber nur formatiert, wenn der Betrag zwischen 1000000 und 9999999 liegt. Schau dir mein Beispiel oben an, damit du siehst, wie es zum Beispiel mit 2500 funktioniert.

    Sagte ich ja.
    Dein Beispiel ist wesentlich besser, allerdings muss man da erstmal drauf kommen ^^


    //edit:


    Außerdem kann man es ja mehrmals einfügen und anpassen

    if(strlen((betragstr)) == 4) .
    {
    strins(betragstr,".",1);
    }


    usw.... :D