استكشاف الأخطاء وإصلاحها
Troubleshooting
Nothing happens at a pump
تحقق من Config.Interaction. إذا كنت تستخدم 'target'، يجب أن يكون لديك نظام تارجت قيد التشغيل — مثل ox_target أو qb-target أو qtarget — ويكون Config.Interaction مضبوطاً على 'auto' أو الاسم الصحيح. إذا لم تقم بتشغيل أي منها، اضبط Config.Interaction = 'textui' وسوف تعود المضخات، والشواحن، ونقطة الإدارة تلقائياً إلى عرض زر التفاعل [E].
إذا ظهر التفاعل ولكن رفض الاستجابة، فمن المحتمل أن نموذج (Prop) المضخة يقع خارج نطاق radius الخاص بالمحطة. قم بتفعيل Config.Debug — حيث سيقوم برسم النطاقات على الشاشة.
A custom station MLO has pumps that do nothing
يتم التعرف على المضخة من خلال نموذجها (Model). قم بإضافة النموذج إلى Config.PumpProps وتأكد من أنه يتواجد داخل إحداثيات coords/radius الخاصة بالمحطة.
The engine refuses to fuel
إعداد Config.Refuel.HoldEngineOff = true يمنع التزود بالوقود إذا كان المحرك قيد التشغيل. قم بإطفاء السيارة، أو اضبط القيمة إلى false.
Using the jerry can does nothing
يجب تسجيل العنصر كعنصر قابل للاستخدام (Usable) قبل أن يتمكن السكريبت من التعرف عليه.
- في ox_inventory، يحتاج الإدخال إلى
client = { export = 'bupa-fuel.useJerryCan' }. - في QBox و QB-Core و ESX، يقوم السكريبت بتسجيل المعالج بنفسه؛ ويحتاج العنصر فقط إلى
useable = true. - يجب أن تطابق اسم العنصر
Config.JerryCan.Itemتماماً وبأحرف صغيرة (Lower case).
لا تقم باستبداله بـ weapon_petrolcan — فهو سلاح ولن يعمل مع أي من هذه الإعدادات.
Two jerry cans merged into one
العنصر قابل للدمج (Stackable). قم بتعيين stack = false في ox_inventory أو unique = true في المخزونات التي تعتمد نظام qb. تحمل كل عبوة مستوى وقود خاص بها، لذا فإن دمجها سيؤدي إلى دمج كميتين مختلفتين في خانة واحدة.
Every car spawns nearly full / nearly empty
هذا يعود إلى إعداد Config.Consumption.SpawnFuel. إنه النطاق الذي يتم تحسيبه عشوائياً لكل مركبة يتم إنتاجها، وهو العامل الأكبر في تحديد مدى تكرار زيارة اللاعبين للمضخة. قم خفض القيمة لجذب حركة المرور إلى المحطات، أو ارفعها لتجعل الوقود أمراً ثانوياً لا يركز عليه اللاعبون كثيراً.
Fuel drains far too fast
قم بتخفيض جدول Config.Consumption.Rpm بالكامل — حيث أن تقسيم كل قيمة إلى النصف سيضاعف عمر الوقود مع الحفاظ على الفروق بين المركبات كما هي. إذا كان الأمر يتعلق بمركبات معينة فقط، فذلك يعود إلى Config.Consumption.Rate الخاصة بفئتها؛ حيث تم ضبط فئات المركبات الصناعية (3.0)، المروحيات (3.5)، والطائرات (4.0) لتستهلك بشكل أكبر عن قصد.
A vehicle never needs fuel
تمتلك فئة هذه المركبة خزاناً بقيمة 0 في Config.Consumption.Tank. الدراجات الهوائية (13) والقطارات (21) تأتي بهذه الإعدادات عمداً. قم بمنح الفئة حجماً للخزان لتبدأ باستهلاك الوقود.
An electric car cannot be filled at a pump
صحيح. أي مركبة موجودة في Config.VehicleFuel.Electric تعمل فقط عند الشواحن. إذا كانت المحطة لا تحتوي على حقل charger فللن تتمكن من خدمة السيارات الكهربائية نهائياً — قم بإضافة واحد، أو توجيههم إلى مكان آخر.
A station's tanks are always full and it has no dashboard
هذه محطة عامة — purchasable = false. تحتفظ المحطات العامة بخزانات ممتلئة بشكل دائم، وتتخطى نظام المخزون والتوصيلات، ولا يمكن امتلاكها. تحقق مما إذا قام أحد المسؤولين بتغيير حالتها عبر /fueladmin؛ يتم حفظ هذا التعديل لكل محطة على حدة ويتجاوز إعدادات الكونفج (Config).
/fueladmin says I am not allowed
قم بمنح صلاحية الـ Ace التالية:
add_ace group.admin bupa.fuel allowأو قم بإضافة معرف رخصتك (License) إلى Config.Admin.Developers، أو أضف اسم مجموعة المسؤولين الخاصة بك إلى Config.Admin.AdminGroups. قم بتفعيل Config.Debug وسيقوم فحص الصلاحيات المرفوضة طباعة اسم اللاعب ومعرّفه في وحدة تحكم السيرفر (Console).
Customers pay but the owner gets nothing
تذهب الأموال إلى بنك المحطة فقط إذا كانت المحطة مملوكة. المبيعات في المحطات غير المملوكة والمحطات العامة تختفي، وهذا أمر مقصود.
Fuel level resets or desyncs between players
مستوى الوقود مخزن في حقيبة حالة (State Bag) المركبة التي تسمى fuel. إذا كان هناك سكريبت آخر يقوم بالتعديل عبر SetVehicleFuelLevel، فسوف يحدث تعارض بينهما. قم بإزالة سكريبت الوقود الآخر — تشغيل سكريبتين معاً لن ينجح أبداً.
The station bank went negative or blank
هذا مستحيل. يتم رفض القيم التي تتجاوز Config.AntiCheat.MaxAmount، ويتم إعادة ضبط الرصيد التالف إلى الصفر عند قراءته. إذا اختفى الرصيد، تحقق من سجل صفحة البنك لمعرفة ما خرج ومتى.
Item pictures are blank in the interface
تأتي هذه الصور من مجلد صور المخزون الخاص بك، ويتم اكتشافها تلقائياً. إذا كنت تستخدم نسخة معدلة (Fork) باسم مختلف، قم بتوجيه السكريبت إليها مباشرة:
Config.UI.ImagePath = 'nui://my-inventory/web/images/'Version check prints an error
يقوم السكريبت بإرسال طلب إلى GitHub لمعرفة الإصدار الحالي عند التشغيل. يعني خطأ HTTP هنا أن سيرفرك لم يتمكن من الوصول إلى raw.githubusercontent.com — بسبب جدار حماية (Firewall) أو انقطاع مؤقت. هذا لا يؤثر على أي وظيفة يؤديها السكريبت؛ بل يقوم الفحص بالطباعة في الكونصول والمتابعة بشكل طبيعي.