Openapoc: Munitions- und Clip-Mengen-Bug

Erstellt am 16. Sept. 2019  ·  3Kommentare  ·  Quelle: OpenApoc/OpenApoc

Wenn ich mich richtig erinnere, werden Sie, wenn die Munition in diesem Speicherstand verkauft wird, wieder mit dem Millionen-Clip-Bug enden. Der Heavy Plasma Clip ist ein gutes Beispiel. Ich hatte es als Teil-Clip verkauft, und als ich es wieder gekauft habe, war es immer noch ein Teil-Clip. Hätte ich einen zweiten vollen Clip gehabt, hätte er wahrscheinlich nachgefüllt. Außerdem glaube ich, dass dieser Clip-Bug meinen Speicherplatz beeinflusst hat.

Dies verwendet OpenApoc-v0.2.0.2-16-g2f96387e und V7.1 EWM.

save_Ammo und Clip Bug.zip

!BUG! low priority

Alle 3 Kommentare

Es scheint, als ob der Speicher bereits eine unsinnige Anzahl von Munitionsclips enthält, sodass Sie nichts kaufen/verkaufen müssen.

Aber das gibt einen guten Hinweis - es sieht so aus, als würde der Kauf-/Verkaufscode nicht überprüfen, ob ein Munitionsclip teilweise voll ist - er nimmt nur die (MAX_AMMO) eines Clips aus den Geschäften.

Aber das schlägt natürlich fehl, wenn Sie versuchen, einen nicht vollständigen Clip zu verkaufen, da MAX_AMMO von einem Wert kleiner als MAX_AMMO abgezogen wird, was zu einem Unterlauf führt (da es sich um einen vorzeichenlosen Wert handelt, wird er nicht negativ, sondern erhält UINT32_MAX - wie viele es auch sein würden unter Null liegen, also über 4 Milliarden). Was das Problem anschaulich erklärt.

Dies wirft also die Frage auf, wie wir mit teilweise gefüllten Clips umgehen sollten - wenn wir versuchen, "clever" zu sein und der OG Funktionen hinzuzufügen, indem wir die Anzahl der Kugeln und nicht Clips außerhalb von Schlachten verfolgen, hat dies eine Reihe von Auswirkungen auf die Auswirkungen, bei denen ich mir nicht sicher bin es ist die zusätzliche Komplexität für ein Feature "wert", das die meisten Leute nicht einmal bemerken:

  • Sollte der Kauf/Verkauf eines teilweise gefüllten Clips immer noch die gleichen Kosten haben wie ein vollständiger Clip?
  • Die Buy/Sell-Benutzeroberfläche hat wirklich keine Möglichkeit, den Benutzer darüber zu informieren, dass ein Clip teilweise gefüllt ist, weder beim Kauf noch beim Verkauf
  • Im Kampf gibt es bereits keine Möglichkeit, teilweise gefüllte Clips zusammenzuführen. Wenn Sie also nicht aufpassen, können Sie in der Situation enden, in der Sie mehrere Schlachten hintereinander kämpfen und mehrere fast leere Clips auf jedem Agenten haben, was nur frustrierend erscheint

Ich könnte diese Funktion durchgehen, zerschneiden und brennen und am Ende jedes Kampfes nur teilweise gefüllte Clips automatisch zusammenführen. Ich bin mir nicht sicher, ob dieses Management dem Spiel wirklich /hinzufügt/.

Wenn man sich den Code genauer ansieht, scheint es, als ob der Markt Teilclips nicht wirklich unterstützt. Nachdem die Anzahl der Runden aus den Geschäften entfernt wurde, verfolgt die Wirtschaft nur die Anzahl der Clips.

Das bedeutet, dass Sie immer volle Clips kaufen, auch wenn Sie ihn teilweise gefüllt verkauft haben - eine einfache Klemme hier füllt also einen Clip magisch wieder auf, wenn Sie ihn verkaufen und zurückkaufen.

Aber da der Verkauf auf eine VERRÜCKTE große Zahl unterläuft, wird der Rückkauf dann wieder auf eine gesunde Zahl überlaufen - zurück zu der Stelle, an der Sie angefangen haben.

Wenn Sie eine Abstimmung wünschen, dann würde ich dafür stimmen, dass in Basen überhaupt kein partielles Clip-Management vorhanden ist und alle Clips bei der Rückkehr zur Basis wieder aufgefüllt werden, zusammen mit persönlichen Teleporten und Schilden, die wieder aufgeladen werden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen