استكشاف الأخطاء وإصلاحها
Troubleshooting
/status 12 says I am not allowed
يتم تشغيل فحص المسعف على السيرفر وفشل لواحد من أربعة أسباب:
- وظيفتك غير موجودة في
Config.Permissions.EditOthers، أو أن القائمة فارغة (مما يؤدي إلى تعطيل فحص اللاعبين الآخرين تماماً). - رتبة وظيفتك أقل من
Config.Permissions.MinGrade. - أنت أبعد عن الهدف من
Config.Permissions.MaxDistance(الافتراضي 3 متر) — وهذا يعيد رسالة "You are too far away." - كنت تتوقع مسار ACE ولكن
Config.Permissions.UseAceلا يزالfalse.
"You cannot remove it before it expires"
تم وضع هذه الملاحظة عليك بواسطة مسعف وتم تفعيل Config.Permissions.LockStaffNotes. ستختفي تلقائياً عندما ينتهي المؤقت. يمكن للوظيفة المخولة إزالتها مبكراً فقط إذا كان Config.Permissions.StaffCanRemoveLocked يساوي true.
يعمل Clear all و /statusclear بنفس الطريقة — فهما يزيلان فقط ما يُسمح للمُستدعي بإزالته، ويحافظان على الإدخالات المقفلة.
The markers do not sit on the body
تتم إسقاط العلامات من إحداثيات العظام في كل إطار (frame)، لذلك يجب أن تتبع الـ ped بدقة.
offsetفيConfig.BodyPartsيتم عمداً عدم تطبيقه على العلامات — فهو موجود لرفع النص العائم داخل العالم بعيداً عن الجسم. لو طبقته على العلامات، لكانت كل نقطة تنجرف للأعلى.- لتعديل مكان علامة منطقة معين، أضف الخيار
marker = { x = 0.0, y = 0.0, z = 0.04 }لذلك الجزء من الجسم فقط. - إذا كانت العلامات تبدو بطيئة أو متقطعة (laggy) على سيرفر مزدحم، فإن
Config.Camera.HotspotRefreshهو إعدادك المناسب — وهو فاصل التحديث بالمللي ثانية، لذا فإن الرقم الأكبر يكون أقل تكلفة وأقل سلاسة.
The character is cropped, tiny or off-centre
اترك Config.Camera.AutoFrame = true وقم بتعديل هذه العناصر بدلاً من ذلك:
Fill— مقدار ارتفاع الشاشة الذي يشغله الجسم. قم بتقليله إذا كان الشخصية تبدو ضيقة.VerticalNudge— القيم الموجبة تحرك الشخصية للأسفل على الشاشة، والسالبة تحركها للاعلى.SideOffset— إلى أي مدى يتم دفع الـ ped لليسار حتى لا تغطيه اللوحة.Fov— اجعله أقل لتشويه أقل، وأعلى لتناسب جزءاً أكبر من الجسم دون تحريك الكاميرا للخلف.
يتم قراءة Distance و Height فقط عندما يكون AutoFrame مضبوطاً على false.
Text clips into the clothing
ارفع قيمة z الخاصة بـ offset لجزء الجسم ذاك. يؤدي ذلك الإزاحة إلى تحريك النص داخل العالم فقط ولا يؤثر على اللوحة.
Nobody else can see my annotation
- يجب أن يكونوا ضمن مسافة
Config.Text.ViewDistance(6 متر افتراضياً). - إذا كان
Config.Text.OnlyWhileAimingمفَعلاً، فلن يروها إلا أثناء الضغط باستمرار على زر التصويب. - تنتقل الملاحظات عبر
bupaStatusesplayer statebag. إذا انضم لاعب في منتصف الجلسة ولم ير شيئاً على الإطلاق، فتأكد من أنoxmysqlيعمل وأن وحدة التحكم (console) الخاصة بالسيرفر لا تظهر أي أخطاء في قاعدة البيانات.
"Character data is not loaded yet"
تعذر على السيرفر جلب معرف المواطن (citizen id) لهذا اللاعب. على QBox و QB-Core و ESX هذا يعني أن الشخصية لم تنتهِ من التحميل؛ يقوم المورد (resource) إعادة تحميل ملاحظات اللاعب عند QBCore:Server:PlayerLoaded و esx:playerLoaded.
Annotations come back after a restart
هذا مقصود — يتم تخزينها في MySQL مقابل معرف المواطن (citizen id) للشخصية ويتم إعادة تحميلها عند البدء. يتم حذف الملاحظات المنتهية الصلاحية بواسطة مؤشر التنظيف (sweep thread)، والذي يعمل كل Config.Duration.CleanupInterval ثانية (الحد الأدنى 10).
"Slow down a moment"
Config.Limits.WriteCooldown (الافتراضي ثانيتان) هو الفاصل الزمني لمنع السبام (anti-spam) بين عمليات الكتابة. اضبطه على 0 لتعطيله.
Other limits you may be hitting
| Message | Cause |
|---|---|
| Annotation limit reached | Config.Limits.MaxPerPlayer (الافتراضي 4) |
| That body region already has an annotation | Config.Limits.OnePerBodyPart هو true |
| Please write a valid annotation | كان النص فارغاً بعد تقليم وإزالة <, >, ~ |
| Invalid body region | معرف جزء الجسم غير موجود في Config.BodyParts |
قم بتفعيل Config.Debug أثناء عملية الإعداد. سيقوم طباعة سطر لكل عملية كتابة، يوضح الكاتب، والهدف، والمنطقة وما إذا كانت الملاحظة مقفلة أم لا.