Abend liebe Community,
Ich arbeite momentan nun an meinen eigenen Geldsystem und habe dort leider ein paar Bugs!
Ich möchte das das Geld, sofern der Spieler keins Besitzt wie bei den Spielfertigen Geld 00000,00 ist! Allerdings sieht es bei mir so aus:
//Die Centbeträge sind richtig! Nur VOR dem Komma fehlen noch 4x 0 .
Und so sieht es aus wenn ich mir 6 mal eine Beliebige Summe Geld gegeben habe(Das ist ab dem 6 mal so und wird dann nicht besser! Davor geht es fast ausser das mit den "0"
//Hier sieht man das die Cent Beträge 690 sind!? Und vor der 253 müssten noch 2x 0 sein....
Hier mal der Code des Geld Systems(Momentan habe ich es so damit ich die Übersicht habe):
public GeldUpdate(playerid)
{
new Geldstring[25];
new Eurogeld = sInfo[playerid][Euro];
new Centgeld = sInfo[playerid][Cent];
//Das was hier mit den // Makiert ist ist das wo Abgefragt wird was passieren soll wenn %d viel Cent vorhanden sind die dann z.B. im Spieler Account zustande kommen könnten da es nur + gerechnet wird! Ich will aber das z.B. 70 + 70= //1,40 und nicht 140
/* if(Centgeld == 100)
{
Centgeld = 0;
Eurogeld += 1;
}
if(Centgeld > 100 && Centgeld < 200)
{
Centgeld -= 100;
Eurogeld += 1;
}
if(Centgeld > 200 && Centgeld < 300)
{
Centgeld -= 200;
Eurogeld += 2;
}
*/
if(Eurogeld == 0 && Centgeld == 0)
{
format(Geldstring,25," 00000,00");
}
if(Eurogeld == 0 && Centgeld <= 9)
{
format(Geldstring,25," 00000,0%d",Centgeld);
}
if(Eurogeld == 0 && Centgeld >= 10)
{
format(Geldstring,25," 00000,%d",Centgeld);
}
if(Eurogeld <= 9 && Centgeld <= 9)
{
format(Geldstring,25," 0000%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99 && Centgeld <= 9)
{
format(Geldstring,25," 000%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 999 && Centgeld <= 9)
{
format(Geldstring,25," 00%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9999 && Centgeld <= 9)
{
format(Geldstring,25," 0%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99999 && Centgeld <= 9)
{
format(Geldstring,25," %d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9 && Centgeld >= 10)
{
format(Geldstring,25," 0000%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99 && Centgeld >= 10)
{
format(Geldstring,25," 000%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 999 && Centgeld >= 10)
{
format(Geldstring,25," 00%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9999 && Centgeld >= 10)
{
format(Geldstring,25," 0%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99999 && Centgeld >= 10)
{
format(Geldstring,25," %d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9 && Centgeld <= 9)
{
format(Geldstring,25," 0000%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99 && Centgeld <= 9)
{
format(Geldstring,25," 000%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 999 && Centgeld <= 9)
{
format(Geldstring,25," 00%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9999 && Centgeld <= 9)
{
format(Geldstring,25," 0%d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99999 && Centgeld <= 9)
{
format(Geldstring,25," %d,0%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9 && Centgeld >= 10)
{
format(Geldstring,25," 0000%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99 && Centgeld >= 10)
{
format(Geldstring,25," 000%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 999 && Centgeld >= 10)
{
format(Geldstring,25," 00%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 9999 && Centgeld >= 10)
{
format(Geldstring,25," 0%d,%d",Eurogeld,Centgeld);
}
if(Eurogeld <= 99999 && Centgeld >= 10)
{
format(Geldstring,25," %d,%d",Eurogeld,Centgeld);
}
TextDrawSetString(Textdraw12,Geldstring);
return 1;
}
Mein Geldgebe Befehl sieht so aus:
stock GebeGeld(playerid,Eurobetrag,Centbetrag)
{
if(Eurobetrag >= 0)
{
sInfo[playerid][Euro] += Eurobetrag;
sInfo[playerid][Cent] += Centbetrag;
}
if(Eurobetrag < 0)
{
sInfo[playerid][Euro] -= Eurobetrag;
sInfo[playerid][Cent] -= Centbetrag;
}
GeldUpdate(playerid);
return 1;
}
Und in mein SpielerSpeichern stock sieht das so aus:
if(sInfo[playerid][Cent] == 100)
{
sInfo[playerid][Cent] = 0;
sInfo[playerid][Euro] += 1;
}
if(sInfo[playerid][Cent] > 100 && sInfo[playerid][Cent] < 200)
{
sInfo[playerid][Cent] -= 100;
sInfo[playerid][Euro] += 1;
}
if(sInfo[playerid][Cent] > 200 && sInfo[playerid][Cent] < 300)
{
sInfo[playerid][Cent] -= 200;
sInfo[playerid][Euro] += 2;
}
Ich hoffe das mir einer von euch Weiterhelfen kann!
Mit freundlichen Grüßen
LogispireMode