Ich gehe davon aus, dass es mit zerstörten Kacheln zusammenhĂ€ngt, da es nur aufzutreten scheint, wenn einige GebĂ€ude durch ĂberfĂ€lle zerstört wurden
Cityscape scheint unglaublich langsam zu sein, wenn es auf Ultra-Speed ââgestellt wird
Bis zur Unspielbarkeit
Speichern finden Sie im Anhang
Feindliche Fahrzeuge wie Baufahrzeuge auf einer Mission scheinen auch Auswirkungen zu haben
Ein weiteres Beispiel von spÀter im Savegame
save_SuperHuman 1.zip
Fahrzeuge scheinen auch stecken zu bleiben
Das festgefahrene Fahrzeug gefunden
Es steht ĂŒber dem Mega-Flyer, speichern Sie es im Anhang
save_SuperHuman 1.zip
Ich debugge das festgefahrene Fahrzeug (Baufahrzeug 31).
Seine Missionen zum Zeitpunkt des Savegames sind:
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
Das Ziel (43,63,2) wird jedoch durch adjustTargetToClosestFlying in (43,63,7) umgeschrieben.
Danach oszilliert das Fahrzeug bei jedem Aufruf von setPathTo zwischen dem Versuch, zu (43, 63, 7) und einem zufÀlligen Ziel in der NÀhe zu gelangen:
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)
...
Danke, dass du dir das
Wenn du eine Lösung findest, wÀre ich sehr dankbar
Idealerweise möchten wir, dass das Fahrzeug erkennt, dass es in einer Schleife steckt, und eine neue Mission zu einem geeigneten, klaren Endziel generiert, da ich vermute, dass die fehlende ĂberprĂŒfung des zufĂ€lligen Ziels als geeignetes Ziel die Schleife erzwingt
Ich stelle fest, dass Fahrzeuge, die in diesen Schleifen stecken bleiben, sich oft in Landing Tube Tiles oder Mega-Flyers Factories befinden
Ich bin mir nicht sicher, warum insbesondere die Mega-Flyer-Fabriken ein solches Problem verursachen, es sei denn, es gibt irgendwo einen schlechten Kacheltyp???
Sieht so aus, als ob dies die "Ausweichlogik" ist, die ausgelöst werden soll, wenn das Ziel von einem anderen Fahrzeug besetzt wird. Das Ziel wird vorĂŒbergehend in ein leeres Feld in der NĂ€he geĂ€ndert. Sobald das Fahrzeug dieses PlĂ€ttchen erreicht, versucht es erneut, zum ursprĂŒnglichen Ziel zu fahren.
Aber in diesem Fall ist CV31 das Fahrzeug, das das Ausweichen verursacht, dh es denkt, dass es mit sich selbst kollidieren wĂŒrde. Code
ZusĂ€tzliche Protokolle, die ich hinzugefĂŒgt habe, die dies zeigen:
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.
Es klingt nach einer guten Idee, eine zusĂ€tzliche PrĂŒfung hinzuzufĂŒgen, um sicherzustellen, dass Fahrzeuge nicht versuchen, sich selbst auszuweichen.
Das heiĂt, ich bin mir nicht sicher, warum das Ausweichen das nicht löst.
Einige weitere Debug-Hinweise:
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
ist fĂŒr diese GotoLocation-Mission falsch - sie wird also nicht abgeschlossen, bis das Fahrzeug genau die Stelle erreicht hat. Was unmöglich ist.Betrachten Sie dieses frĂŒhere Savegame:
Ich gehe davon aus, dass es mit zerstörten Kacheln zusammenhĂ€ngt, da es nur aufzutreten scheint, wenn einige GebĂ€ude durch ĂberfĂ€lle zerstört wurden
Cityscape scheint unglaublich langsam zu sein, wenn es auf Ultra-Speed ââgestellt wird
Bis zur UnspielbarkeitSpeichern finden Sie im Anhang
Blazer Turbo Bike 49 (in der NĂ€he des zerstörten Hades Blocks) versucht zu (86,78,2) zu gelangen, einem zerstörten StraĂenteil. Aber Ă€hnlich wie bei dem festgefahrenen Baufahrzeug sehe ich, dass setPathTo bei diesem Fahrzeug bei jedem Tick aufgerufen wird, was wahrscheinlich zur Verlangsamung beitrĂ€gt.
Hier ist ein PR fĂŒr einen Fix (nur manuell ĂŒberprĂŒft):
https://github.com/OpenApoc/OpenApoc/pull/563
Hilfreichster Kommentar
Hier ist ein PR fĂŒr einen Fix (nur manuell ĂŒberprĂŒft):
https://github.com/OpenApoc/OpenApoc/pull/563