gesammtwert aller items im Händlerwarenkorb berechnen.

  • Abend,

    ich verzweifle schon seit ca. 4 stunden an dieser blöden Berechnung der summe im Warenkorb... zur Info, das soll ein 2d top down Isekai Framing spiel werden. es soll 3 Währungen geben. Goldmünzen, Silbermünzen und Kupfermünzen. so wie in Vielen Isekai Animes auch. füge ich einen samen hinzu, wird der wert korrekt berechnet füge ich noch einen und noch weitere der selben art hinzu, wird auch alles korrekt berechnet. füge ich einen einer anderen pflanze hinzu, springt die summe auf 5. egal welchen samen ich zuerst hinzufüge. beim hinzufügen des anderen ist die summe immer 5. füge ich dann weitere samen hinzu z.b. insgesamt 3x wobbelsamen für je 2 Kupfer und 2x blutsamen für 3 Kupfer, zeigt die summe den korrekt berechneten wert von 12 an. nur einmal beim hinzufügen des zweiten Samens springt die summe auf 5 und beim hinzufügen eines weiteren wird korrekt weiter gerechnet. hoffe ihr versteht was ich meine und das mir jemand helfen kann.


    LG

    Markus

  • Natürlich. zur info: 10 Kupfermünzen sind eine Silbermünze und 10 Silbermünzen sind eine Goldmünze. Ich habe mich für einen Integer pro Münzart entschieden und haue nicht alles in einen wo ich dann raus berechne wie viel münzen einer art es sind, weil der Händler begrenztes Wechselgeld haben soll. hat er kein Silber mehr, der Spieler Zahlt aber mit Gold, dann muss der Händler in Kupfer rausgeben. wie an einer echten Kasse wenn die 20 cent stücke leer sind und stattdessen zwei 10 cent stücke gegeben werden. mein Warenkorb beim Händler ist eine Map mit einem Namen als key für die Item id (Row Name aus meinem Item Data Table) und einem integer als Value für die menge wie viele Items drin sind. anhand der id hole ich mir aus meinem item Data Table für diese id den wert aller drei Münzarten. und die Berechnung ist einfach wert * menge + das was schon an wert drin ist und das setzen. nicht auf dem Bild zu sehen, aber wichtig ist dass vor dem loop jede Münzart einmal mit set 0 genullt wird. damit das im Warenkorb auch alles schön zusammengerechnet wird berechne ich mir einmal intern den gesamtpreis in der kleinsten Münzart, einfach total Gold * 100, Total Silber * 10 und das beides mit Total Kupfer addieren. dann habe ich das was der Warenkorb in Kupfer Kostet. geteilt durch 100 habe ich wie viel Gold es sind. das dann * 100 - das was der Warenkorb in Kupfer kostet ist die neue summe in Kupfer. das selbe mit geteilt, mal und minus nochmal mit 10 um den silberpreis zu ermitteln. der Rest ist dann der kupferpreis. die ganze Berechnung aber nur wenn was im Warenkorb drin ist. wenn nicht werden die integer wieder genullt damit er 0 anzeigt. hoffe das war verständlich. ich weiß jetzt auch nicht was ich anders gemacht habe als in meiner Frage ganz oben, außer die Berechnung und die anzeige des Widgets zu trennen.