Openapoc: 弾薬とクリップの数量のバグ

作成日 2019年09月16日  ·  3コメント  ·  ソース: OpenApoc/OpenApoc

私が正しく思い出せば、このセーブで弾薬が販売された場合、何百万ものクリップのバグが再び発生することになります。 ヘビープラズマクリップは良い例です。 部分クリップで販売していたのですが、買い直してもまだ部分クリップでした。 2つ目のフルクリップがあったら、補充された可能性があります。 また、このクリップのバグが私のストレージスペースに影響を与えたと思います。

これは、OpenApoc-v0.2.0.2-16-g2f96387eおよびV7.1EWMを使用しています。

save_AmmoとClipBug.zip

!BUG! low priority

全てのコメント3件

セーブにはすでに意味のない数の弾薬クリップがあり、何も売買する必要がないようです。

しかし、これは良い手がかりを与えます-購入/販売コードは弾薬クリップが部分的にいっぱいであるかどうかをチェックしていないようです-それは店から1つのクリップの(MAX_AMMO)を取り出すだけです。

しかし、フルでないクリップを販売しようとすると、MAX_AMMOがMAX_AMMO未満の値から外れ、アンダーフローが発生するため、当然失敗します(これは符号なしの値であるため、負になる代わりにUINT32_MAXになります。ゼロ未満であるため、40億を超えます)。 これは問題をきちんと説明しています。

したがって、これは部分的に満たされたクリップをどのように処理する必要があるかという問題を提起します-「賢く」なり、戦闘外のクリップではなく弾丸の数を追跡することによってOGに機能を追加しようとすると、多くのノックオン効果がありますが、私にはわかりませんほとんどの人が気付かない機能の複雑さを追加することは「価値があります」。

  • 部分的に満たされたクリップの売買には、完全なクリップと同じコストがかかりますか?
  • 購入/販売UIには、購入または販売のいずれかで、クリップが部分的に埋められていることをユーザーに通知する方法が実際にはありません。
  • 部分的に埋められたクリップをマージするための戦闘中の方法はすでにありません。したがって、注意しないと、複数の戦闘を続けて戦い、各エージェントに複数のほぼ空のクリップがある状況に陥る可能性があります。これはイライラするようです。

私はこの機能を通り抜けて焼畑し、各戦闘の終わりに部分的に満たされたクリップを自動マージするかもしれません。 この管理が本当にゲームに何かを/追加/するかどうかはわかりません。

したがって、コードをさらに調べると、市場は実際には部分的なクリップをサポートしていないようです。ストアからラウンド数を削除した後、経済はクリップの数を追跡するだけです。

つまり、部分的に埋められた状態で販売した場合でも、常に完全なクリップを購入することになります。したがって、ここでの単純なクランプは、クリップを販売して買い戻すと、魔法のようにクリップを補充します。

しかし、売りはクレイジーな多数にアンダーフローするので、それを買い戻すと、それは正気の数にオーバーフローします-あなたが始めたところに戻ります。

投票が必要な場合は、基地で部分的なクリップ管理をまったく行わないことに投票し、基地に戻ったときにすべてのクリップを補充し、個人のテレポートとシールドを再充電します。

このページは役に立ちましたか?
0 / 5 - 0 評価