Openapoc: Bug Kuantitas Amunisi dan Klip

Dibuat pada 16 Sep 2019  ·  3Komentar  ·  Sumber: OpenApoc/OpenApoc

Jika saya ingat dengan benar, jika amunisi dijual di save ini, Anda akan berakhir dengan jutaan klip bug lagi. Klip Plasma Berat adalah contoh yang bagus. Saya telah menjualnya sebagai klip parsial, dan ketika saya membelinya kembali, itu masih klip parsial. Seandainya saya memiliki klip penuh kedua, itu kemungkinan akan diisi ulang. Juga, saya yakin bug klip ini memengaruhi ruang penyimpanan saya.

Ini menggunakan OpenApoc-v0.2.0.2-16-g2f96387e dan V7.1 EWM.

save_Ammo dan Clip Bug.zip

!BUG! low priority

Semua 3 komentar

Sepertinya simpanan sudah memiliki jumlah klip amunisi yang tidak masuk akal, tidak perlu membeli / menjual apa pun.

Tapi ini memberikan petunjuk yang bagus - sepertinya kode beli/jual tidak memeriksa apakah klip amunisi sebagian penuh - itu hanya mengeluarkan (MAX_AMMO) satu klip dari toko.

Tapi itu secara alami gagal jika Anda mencoba menjual klip yang tidak lengkap, karena mengambil MAX_AMMO dari nilai kurang dari MAX_AMMO, menyebabkan underflow (karena ini adalah nilai yang tidak ditandatangani, alih-alih menjadi negatif, itu berakhir dengan UINT32_MAX - berapa pun jumlahnya di bawah nol, jadi lebih dari 4 miliar). Yang dengan rapi menjelaskan masalah ini.

Jadi ini menimbulkan pertanyaan tentang bagaimana kami harus menangani klip yang terisi sebagian - kami mencoba menjadi "pintar" dan menambahkan fitur ke OG dengan melacak jumlah peluru bukan klip di luar pertempuran memiliki sejumlah efek ketukan yang saya tidak yakin itu "sepadan" dengan kerumitan ekstra untuk fitur yang kebanyakan orang tidak akan menyadarinya:

  • Haruskah membeli/menjual klip yang terisi sebagian masih memiliki biaya yang sama dengan yang penuh?
  • UI beli/jual benar-benar tidak memiliki cara untuk memberi tahu pengguna bahwa klip telah terisi sebagian, baik membeli atau menjual
  • Sudah tidak ada cara dalam pertempuran untuk menggabungkan klip yang terisi sebagian, jadi jika Anda tidak berhati-hati, Anda mungkin berakhir dalam situasi di mana Anda bertarung dalam beberapa pertempuran berturut-turut dan memiliki beberapa klip yang hampir kosong di setiap agen, yang tampaknya membuat frustrasi.

Saya mungkin melewati dan memotong dan membakar fitur ini dan hanya menggabungkan klip yang terisi sebagian secara otomatis di akhir setiap pertempuran. Saya tidak yakin apakah manajemen ini benar-benar /menambahkan/ sesuatu ke permainan.

Jadi melihat lebih jauh ke dalam kode, sepertinya pasar tidak benar-benar mendukung klip parsial, setelah menghapus jumlah putaran dari toko, ekonomi hanya melacak jumlah klip.

Itu berarti Anda selalu membeli klip penuh, bahkan jika Anda menjualnya sebagian terisi - jadi penjepit sederhana di sini akan secara ajaib mengisi ulang klip jika Anda menjualnya dan membelinya kembali.

Tetapi karena penjualan akan mengalir ke bawah ke jumlah besar yang GILA, maka pembelian kembali kemudian akan meluap itu kembali ke jumlah yang waras - kembali ke tempat Anda memulai.

Jika Anda menginginkan pemungutan suara maka saya akan memilih untuk tidak memiliki manajemen klip parsial di pangkalan sama sekali, dan membiarkan semua klip diisi ulang saat kembali ke pangkalan, bersama dengan teleport pribadi dan perisai yang sedang diisi ulang.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat