أفترض أن الأمر يتعلق بالبلاط المدمر ، حيث يبدو أنه يحدث فقط بمجرد سقوط عدد قليل من المباني بسبب الغارات
يبدو Cityscape بطيئًا بشكل لا يصدق عند وضعه على سرعة فائقة
لدرجة أن تكون غير قابلة للعب
تجدون الحفظ المرفق
يبدو أن المركبات المعادية مثل مركبات البناء في مهمة ما تؤثر أيضًا
مثال آخر لاحقًا في حفظ اللعبة
save_SuperHuman 1.zip
يبدو أن المركبات تتعطل أيضًا
تقع السيارة العالقة
إنها فوق النشرة الضخمة ، باستثناء المرفقة
save_SuperHuman 1.zip
أقوم بتصحيح أخطاء المركبة العالقة (مركبة البناء 31).
مهامها في وقت حفظ اللعبة هي:
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
ومع ذلك ، تتم إعادة كتابة الوجهة (43،63،2) إلى (43،63،7) عن طريق ضبط الطيران المستهدف.
بعد هذه النقطة ، تتأرجح السيارة بين محاولة الذهاب إلى (43 ، 63 ، 7) وهدف قريب عشوائي مع كل مكالمة لضبط المسار إلى:
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)
...
شكرًا للنظر في هذا ashenomo <3
إذا تمكنت من إيجاد حل ، سأكون ممتنًا للغاية
من الناحية المثالية ، نريد أن تتعرف السيارة على أنها عالقة في حلقة وأن تنشئ مهمة جديدة إلى وجهة نهائية مناسبة وواضحة لأنني أظن أن عدم وجود فحص للهدف العشوائي هو وجهة مناسبة تفرض الحلقة
لقد لاحظت أنه عندما تتعطل المركبات في هذه الحلقات ، فإنها غالبًا ما تكون في بلاط أنبوب الهبوط ، أو مصانع الطائرات الضخمة
لست متأكدًا من سبب تسبب مصانع Mega-Flyer على وجه الخصوص في مثل هذه المشكلة ، ما لم يكن هناك نوع بلاط سيئ في مكان ما ؟؟؟
يبدو أن هذا هو منطق "الخطوة الجانبية" الذي يُقصد به التشغيل عندما تكون الوجهة مشغولة بمركبة أخرى. تم تغيير الهدف مؤقتًا إلى بلاط فارغ قريب. بمجرد وصول السيارة إلى هذا البلاط ، تحاول مرة أخرى الانتقال إلى الهدف الأصلي.
ومع ذلك ، في هذه الحالة ، بطريقة ما السيارة التي تسبب الخطوة الجانبية هي CV31 ، أي تعتقد أنها على وشك الاصطدام بنفسها. الشفرة
السجلات الإضافية التي أضفتها توضح هذا:
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.
تبدو إضافة فحص إضافي للتأكد من أن المركبات لا تحاول تجنب نفسها فكرة جيدة.
ومع ذلك ، لست متأكدًا من سبب عدم حل هذه المشكلة ..
بعض ملاحظات التصحيح الأخرى:
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
غير صحيح لمهمة GotoLocation هذه - لذلك لن تكتمل حتى تصل السيارة إلى المكان المحدد. وهو مستحيل.النظر إلى هذه اللعبة السابقة المحفوظة:
أفترض أن الأمر يتعلق بالبلاط المدمر ، حيث يبدو أنه يحدث فقط بمجرد سقوط عدد قليل من المباني بسبب الغارات
يبدو Cityscape بطيئًا بشكل لا يصدق عند وضعه على سرعة فائقة
لدرجة أن تكون غير قابلة للعبتجدون الحفظ المرفق
تحاول Blazer Turbo Bike 49 (بالقرب من Hades Block المدمر) الوصول إلى (86،78،2) ، وهو بلاطة طريق مدمرة. ولكن على غرار مركبة البناء المتوقفة ، أرى أن setPathTo يتم استدعاؤها في كل علامة لهذه السيارة مما يساهم على الأرجح في التباطؤ.
فيما يلي بيان عام للإصلاح (تم التحقق منه يدويًا فقط):
https://github.com/OpenApoc/OpenApoc/pull/563
التعليق الأكثر فائدة
فيما يلي بيان عام للإصلاح (تم التحقق منه يدويًا فقط):
https://github.com/OpenApoc/OpenApoc/pull/563