Saya berasumsi itu terkait dengan ubin yang hancur, karena tampaknya hanya terjadi setelah beberapa bangunan dihancurkan oleh penggerebekan
Cityscape tampak sangat lambat ketika ditempatkan pada kecepatan ultra
Sampai-sampai tidak bisa dimainkan
Silakan temukan simpan terlampir
Kendaraan bermusuhan seperti kendaraan konstruksi dalam misi juga tampaknya berdampak
Contoh lebih lanjut dari nanti di save game
save_SuperHuman 1.zip
Kendaraan tampaknya juga macet
Lokasi kendaraan yang macet
Itu di atas mega-flyer, simpan terlampir
save_SuperHuman 1.zip
Saya sedang men-debug kendaraan yang macet (Kendaraan Konstruksi 31).
Misinya pada saat savegame adalah:
W 7613175674 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): CLICKED VEHICLE Construction Vehicle 31 at {42.7708,63.5,7.5}
W 7613244067 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): Mission GotoLocation {43,63,2}
W 7613263414 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): Mission RecoverVehicle
W 7613286861 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): Mission GotoBuilding BUILDING_WAREHOUSE_THREE
Namun tujuan (43,63,2) ditulis ulang menjadi (43,63,7) oleh adjustTargetToClosestFlying.
Setelah titik itu, kendaraan berosilasi antara mencoba menuju (43, 63, 7) dan target terdekat acak dengan setiap panggilan ke setPathTo:
After setPathTo: Vehicle [Construction Vehicle 31] path: (41,63,7) -> (41,63,7) -> (42,63,7) -> (43,63,7)
After setPathTo: Vehicle [Construction Vehicle 31] path: (43,63,7) -> (43,63,7) -> (42,64,6) -> (41,63,5) -> (41,62,4)
After setPathTo: Vehicle [Construction Vehicle 31] path: (41,62,4) -> (41,62,4) -> (41,62,5) -> (41,62,6) -> (42,63,7) -> (43,63,7)
After setPathTo: Vehicle [Construction Vehicle 31] path: (43,63,7) -> (43,63,7) -> (43,62,7) -> (42,61,6)
After setPathTo: Vehicle [Construction Vehicle 31] path: (42,61,6) -> (42,61,6) -> (43,62,7) -> (43,63,7)
After setPathTo: Vehicle [Construction Vehicle 31] path: (43,63,7) -> (43,63,7) -> (44,64,6) -> (45,65,5) -> (45,65,4)
...
Terima kasih telah melihat ini @ashenomo <3
Jika Anda dapat menemukan solusi, saya akan sangat menghargai
Idealnya, kami ingin kendaraan mengenalinya macet dalam satu lingkaran dan menghasilkan misi baru ke tujuan akhir yang sesuai, jelas, karena saya curiga kurangnya pemeriksaan pada target acak menjadi tujuan yang cocok yang memaksa loop
Saya perhatikan bahwa ketika kendaraan terjebak dalam loop ini, mereka sering berada di Landing Tube Tiles, atau Pabrik Mega-Flyers
Tidak yakin mengapa Pabrik Mega-Flyer secara khusus menyebabkan masalah seperti itu, kecuali ada jenis ubin yang buruk di suatu tempat???
Sepertinya inilah logika "side-stepping" yang dimaksudkan untuk memicu ketika tujuan ditempati oleh kendaraan lain. Target untuk sementara diubah menjadi ubin kosong di dekatnya. Begitu kendaraan mencapai ubin itu, ia mencoba lagi untuk pergi ke target semula.
Namun dalam kasus ini, entah bagaimana kendaraan yang menyebabkan side-stepping adalah CV31, yaitu ia mengira akan bertabrakan dengan dirinya sendiri. kode
Log tambahan yang saya tambahkan menunjukkan ini:
W 14531114914 void OpenApoc::VehicleMission::setPathTo(OpenApoc::GameState &, OpenApoc::Vehicle &, Vec3<int>, int, bool, bool): ** setPathTo for [Construction Vehicle 31] to (43,63,2), maxIter:450, cV:Y, giveUp:N, currentPath n:0
W 14531141711 void OpenApoc::VehicleMission::setPathTo(OpenApoc::GameState &, OpenApoc::Vehicle &, Vec3<int>, int, bool, bool): *** adjustTargetToClosestFlying: [Construction Vehicle 31] (43, 63, 2), piNe: N
W 14531234219 static bool OpenApoc::VehicleMission::adjustTargetToClosestFlying(OpenApoc::GameState &, OpenApoc::Vehicle &, Vec3<int> &, bool, bool, bool &): Target (43,63,7) contains vehicle [Construction Vehicle 31]. This will trigger a target adjustment.
Menambahkan pemeriksaan tambahan untuk memastikan kendaraan tidak mencoba menghindar terdengar seperti ide yang bagus.
Yang mengatakan, saya tidak yakin mengapa melangkah ke samping tidak menyelesaikan ini ..
Beberapa catatan debug lainnya:
W 417133364405 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): Mission GotoLocation {43,63,2}
W 417133397242 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): Mission RecoverVehicle
W 417133421554 bool OpenApoc::CityView::handleMouseDown(OpenApoc::Event *): Mission GotoBuilding BUILDING_WAREHOUSE_THREE
pickNearest
salah untuk misi GotoLocation ini - jadi misi ini tidak akan selesai sampai kendaraan mencapai tempat yang tepat. Yang tidak mungkin.Melihat savegame sebelumnya ini:
Saya berasumsi itu terkait dengan ubin yang hancur, karena tampaknya hanya terjadi setelah beberapa bangunan dihancurkan oleh penggerebekan
Cityscape tampak sangat lambat ketika ditempatkan pada kecepatan ultra
Sampai-sampai tidak bisa dimainkanSilakan temukan simpan terlampir
Blazer Turbo Bike 49 (dekat Blok Hades yang hancur) mencoba mencapai (86,78,2), yang merupakan ubin jalan yang hancur. Tetapi mirip dengan kendaraan konstruksi yang macet, saya melihat setPathTo dipanggil di setiap centang untuk kendaraan ini yang mungkin berkontribusi pada perlambatan.
Inilah PR untuk perbaikan (hanya diverifikasi secara manual):
https://github.com/OpenApoc/OpenApoc/pull/563
Komentar yang paling membantu
Inilah PR untuk perbaikan (hanya diverifikasi secara manual):
https://github.com/OpenApoc/OpenApoc/pull/563