私が正しく思い出せば、このセーブで弾薬が販売された場合、何百万ものクリップのバグが再び発生することになります。 ヘビープラズマクリップは良い例です。 部分クリップで販売していたのですが、買い直してもまだ部分クリップでした。 2つ目のフルクリップがあったら、補充された可能性があります。 また、このクリップのバグが私のストレージスペースに影響を与えたと思います。
これは、OpenApoc-v0.2.0.2-16-g2f96387eおよびV7.1EWMを使用しています。
セーブにはすでに意味のない数の弾薬クリップがあり、何も売買する必要がないようです。
しかし、これは良い手がかりを与えます-購入/販売コードは弾薬クリップが部分的にいっぱいであるかどうかをチェックしていないようです-それは店から1つのクリップの(MAX_AMMO)を取り出すだけです。
しかし、フルでないクリップを販売しようとすると、MAX_AMMOがMAX_AMMO未満の値から外れ、アンダーフローが発生するため、当然失敗します(これは符号なしの値であるため、負になる代わりにUINT32_MAXになります。ゼロ未満であるため、40億を超えます)。 これは問題をきちんと説明しています。
したがって、これは部分的に満たされたクリップをどのように処理する必要があるかという問題を提起します-「賢く」なり、戦闘外のクリップではなく弾丸の数を追跡することによってOGに機能を追加しようとすると、多くのノックオン効果がありますが、私にはわかりませんほとんどの人が気付かない機能の複雑さを追加することは「価値があります」。
私はこの機能を通り抜けて焼畑し、各戦闘の終わりに部分的に満たされたクリップを自動マージするかもしれません。 この管理が本当にゲームに何かを/追加/するかどうかはわかりません。
したがって、コードをさらに調べると、市場は実際には部分的なクリップをサポートしていないようです。ストアからラウンド数を削除した後、経済はクリップの数を追跡するだけです。
つまり、部分的に埋められた状態で販売した場合でも、常に完全なクリップを購入することになります。したがって、ここでの単純なクランプは、クリップを販売して買い戻すと、魔法のようにクリップを補充します。
しかし、売りはクレイジーな多数にアンダーフローするので、それを買い戻すと、それは正気の数にオーバーフローします-あなたが始めたところに戻ります。
投票が必要な場合は、基地で部分的なクリップ管理をまったく行わないことに投票し、基地に戻ったときにすべてのクリップを補充し、個人のテレポートとシールドを再充電します。