Hey,
Man kennt das ja, das auf vielen Godfathern das Geld so unübersichtlich angezeigt wird.
Hier mal ein Beispiel: 1000$. Ich möchte es aber so haben: 1.000$...
Wie mache ich das?
Hey,
Man kennt das ja, das auf vielen Godfathern das Geld so unübersichtlich angezeigt wird.
Hier mal ein Beispiel: 1000$. Ich möchte es aber so haben: 1.000$...
Wie mache ich das?
http://forum.sa-mp.de/san-andreas-multiplayer/scripting-base/18-nützliche-codeschnipsel-47
wenn du runterscrollst findest du ein codeschnipsel von kaliber
Davon bekomme ich über 50 Warnings und dazu auch noch ein paar Errors.. -.-
Und die wären?
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.
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..
Der Code setzt vor jede dritte Ziffer einen . (sollte er zumindest ^^). Selbstverständlich musst du dafür aus deiner Ziffer erst einen String machen.
Hm.. wird schwer sein.. Dann wird das beim Autokaufhaus nicht klappen oder? Weil da ja bei der Verkaufszahl auch noch andere koords sind..
Könnte da mir wer weiterhelfen? Eventuell über TV?
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.