Geld Anzahl übersichtlicher machen

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
  • stock printNumber (value[]) {
    new newValue[sizeof(value)];
    new cat = 1;
    for (new i = sizeof(value); i > 0; i --) {
    format(newValue, sizeof(newValue), "%d%s", strmid(i, i+1), newValue);
    cat ++;
    if (cat == 3 && i > 1) {
    format(newValue, sizeof(newValue), ".%s", newValue);
    cat = 1;
    }
    }
    return newValue;
    }


    So in etwa sollte es gehen. Ist jetzt hier im Forum geschrieben und ungetestet und wird vermutlich n Error ausgeben o.Ä. Aber als Denkanstoß sollte es reichen.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • Der Code hat schonmal keine Errors :) werde jetzt kurz testen.


    Edit: Hm... Also wenn ich mir per /money geld gebe erscheint immernoch im chat 1000 ohne dem Punkt..
    Was ändert der Code denn jetzt eigentlich?


    Bei dem Autokaufhaus wirds noch unübersichtlich angezeigt..






    Einmal editiert, zuletzt von Xerion ()

  • Der Code setzt vor jede dritte Ziffer einen . (sollte er zumindest ^^). Selbstverständlich musst du dafür aus deiner Ziffer erst einen String machen.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'

  • stock FormatMoney(Float:amount, delimiter[2]=".")
    {
    new txt[16];
    format(txt, sizeof txt, "$%d", floatround(amount));
    new l = strlen(txt);
    if (amount < 0) // -
    {
    if (l > 5) strins(txt, delimiter, l-3);
    if (l > 8) strins(txt, delimiter, l-6);
    if (l > 11) strins(txt, delimiter, l-9);
    }
    else
    {
    if (l > 4) strins(txt, delimiter, l-3);
    if (l > 7) strins(txt, delimiter, l-6);
    if (l > 10) strins(txt, delimiter, l-9);
    }
    return txt;
    }

  • Sicher nicht die optimale Lösung aber es geht:

    stock ZeigeGeld(money)
    {
    new stringmoney[128];
    valstr(stringmoney,money);
    if(strlen(stringmoney) <= 3) return stringmoney;
    else if(strlen(stringmoney) >= 4&&strlen(stringmoney) <= 6) {
    strins(stringmoney,".",(strlen(stringmoney)-3)); }
    else if(strlen(stringmoney) >= 7&&strlen(stringmoney) <= 9) {
    strins(stringmoney,".",(strlen(stringmoney)-6));
    strins(stringmoney,".",(strlen(stringmoney)-3)); }
    else if(strlen(stringmoney) >= 10&&strlen(stringmoney) <=25) {
    strins(stringmoney,".",(strlen(stringmoney)-9));
    strins(stringmoney,".",(strlen(stringmoney)-6));
    strins(stringmoney,".",(strlen(stringmoney)-3)); }
    return stringmoney;
    }
    // Und dann..
    format(string,sizeof string, "Das Auto kostet %s", ZeigeGeld(autokosten));


    Getestet und funktionstüchtig.