الوثائق 9.6.24
إعدادات الإطار
تحقق من الإطار والمخزون قبل تفعيل التكاملات.
QBCore وESX#
تُدعم بنى وحقول مفهرسة محددة. قد تمنع الأعمدة المفقودة والمعرفات المخصصة الطلبات. الرد الفارغ لا يثبت أن القاعدة فارغة.
مسارات مخصصة#
اختبر اختيار الشخصية والوظائف والانتقال والمرائب على خادم تجريبي. تحقق من الصلاحيات على الخادم وامنح استثناءات محدودة عبر كود موثوق.
تحديد إطار العمل والمخزون منفصلين#
حدد مورد حالة اللاعب: qb-core أو qbx_core أو es_extended. افحص المخزون وتغييرات API بصورة منفصلة. اسم إطار العمل لا يضمن كل سكربت بنكي خارجي. حافظ على التبعيات ولا تشغّل cores متعارضة لحل خطأ.
عدّل الحقل الموجود: qb لـQBCore وqbox لـQbox؛ هذه قيم إعداد وليست أسماء مجلدات. auto متاح للتعرف. افحص النتيجة عند البدء وGetStatus من كود الخادم. يتعرف الجسر على cores العاملة بشكل منفصل وقد يوضح تبعية لم تبدأ.
-- عدّل الحقل الحالي وليس الجدول بأكمله.
ts.Framework.framework = "qb"
-- القيم المدعومة الأخرى: "esx", "qbox", "auto", "standalone"فحص بيانات الشخصية#
تستخدم القراءات citizenid في QBCore/Qbox وidentifier في ESX. ID الخادم مؤقت وليس بديلاً لمعرف الشخصية الدائم. يلزم توافق الأعمدة والفهارس؛ قد ترفض البنية المخصصة.
- قارن شخصية اختبار لها نقد وبنك ووظيفة ومركبة معروفة باللعبة.
- مع ox_inventory قارن مخزوناً صغيراً متصلاً. راعِ الاقتطاع ولا تتوقع stash أو metadata عشوائية.
- عند فشل API افحص البدء والإصدار. API غير المتاح يعني ملكية سلاح غير معروفة وليس إثبات عدم امتلاكه.
اختبار سير اللعب الفعلي#
لا يعرف التعرف الآلي صلاحيات وموقع وسعر ومكافأة كل حدث مخصص. يجب أن يتحقق سكربتك منها على الخادم. اختيار ملف إعداد لا يصلح حدث مال أو عنصر غير آمن. تحقق من source والجلسة قبل التكامل.
يمكن لـStandalone/vRP استخدام فحوص عامة مناسبة، لكن الجسر لا يضمن بنيتها الخاصة للشخصيات والاقتصاد. اشرح القيود بدلاً من استبدال جداول غير مرتبطة. أعد الفحص بعد تحديث core أو المخزون أو الوظائف.
سجّل إصدارات core والمخزون. بعد إعادة core أعد اتصال الشخصية قبل الحكم على API المتصل. لا تغيّر بنية القاعدة والعقوبة معاً؛ الفصل يساعد معرفة السبب واستعادة الإعداد.
- تغيير الشخصية والإنعاش لا يتركان إعفاء دائماً.
- نقل المنزل والمرآب والسجن يستدعي MarkTeleport قبل الحركة مباشرة.
- سلاح الساحة خارج المخزون يستخدم AllowWeapon قصيراً من مورد خادم موثوق.
- راجع الشرطة وأدوات الموظفين والمتاجر والمكافآت الكبيرة بالسجلات قبل تشديد العقوبة.
افهم أسماء الإعدادات والـ core المكتشف#
تستخدم إعدادات AC وموصل القاعدة تسميات مختلفة: قيمة QBCore هي qb بينما تعرض صحة الجسر qbcore. يستخدم Qbox قيمة qbox والمورد qbx_core العامل. اقرأ الاسم في سياقه بدلاً من تعديله لمطابقة مجلد. يمكن للإعداد التلقائي التعرف على vrp أو ox_core وتحديد اسم، لكنه لا ينشئ محول شخصيات أو اقتصاد مدعوماً للجسر. في core غير مدعوم يساعد اختيار standalone صراحة للحماية العامة على عدم فهم الاسم المكتشف كتعهد بالتكامل الكامل.
- افحص configs/anticheat_config.lua والـ core العامل فعلاً، واحتفظ باختيار واحد مقصود وترتيب التبعيات.
- إن اختلفت قدرات اللوحة افحص الموارد الأساسية العاملة وصحة الجسر بدلاً من تغيير أسماء الإعدادات عشوائياً.
- لا تشغّل qb-core وqbx_core وes_extended معاً لمجرد الحصول على تسمية حالة أخرى.
ابن اختبارات القبول حسب الأدوار الفعلية#
اختبر اللاعبين العاديين والشرطة أو الوظائف الأخرى والموظفين بشكل منفصل. قد يملك الموظف إعفاء مشروعاً، لذا اختبر المسارات الأساسية بشخصية عادية أيضاً. غطّ الدخول واختيار الشخصية والموت والإحياء والمنازل والمرائب وأسلحة الجرد ومكافآت الوظائف الفعلية. سجّل الوجهة أو العنصر أو أثر الحساب المتوقع والنتيجة المسجلة. اختبر إلغاء القوائم والأنشطة بالإضافة إلى نجاحها. بدء المورد دون خطأ لا يثبت أن جرداً معدلاً أو سكربت مصرف أو اختيار شخصيات يستخدم API المتوقعة.
- كرّر المجموعة الصغيرة نفسها قبل تحديث core أو الجرد وبعده، مع تغيير مكوّن واحد كل مرة.
- عند الفشل سجّل الإصدارات والمورد المستدعي ودور اللاعب، واحتفظ ببيانات الهوية خاصة.
- أعد الاتصال بعد إعادة التشغيل أو تبديل الشخصية وتحقق من انتهاء الإعفاء المؤقت، لا من مسار الموظف المعفى فقط.
حدّد مسؤوليات السكربتات المخصصة#
افصل إعداد الكشف عن القواعد التي تمتلكها سكربتات اللعبة. لا يعرف AC مستلم التحويل المسموح أو حد مكافأة الوظيفة أو مالك منزل معين. يجب على الموارد التحقق من اللاعب والصلاحية وحالة الخادم قبل تعديل المال أو العناصر أو الموضع. تستخدم فحوص الأسلحة API مدعومة؛ عدم توفر API نتيجة مجهولة وليس دليلاً على توليد سلاح. إن فشلت قراءة شخصية بسبب أعمدة أو فهارس، افحص توافق البنية بعيداً عن العقوبات. لا تعاقب اللاعب بسبب خطأ تكامل ولا تستبدل محولاً مفقوداً بقائمة إعفاء واسعة.
- عيّن مسؤولاً عن محول framework أو الجرد ومالكاً واضحاً لكل إجراء مخصص.
- أعد إجراءً مصرحاً ومسار صلاحية مرفوضاً باستخدام تحقق سكربت اللعبة نفسه.
- افصل تشغيل AC العام عن جسر قاعدة البيانات في اللوحة (Tosun Connect)؛ الجداول المخصصة تحتاج تكاملاً تمت مراجعته.
افصل جرد الأسلحة عن تفاصيل الشخصية#
قد يختلف الإطار ومزود الجرد: QBCore يدير الشخصيات والمال وox_inventory العناصر. فحص امتلاك السلاح يفضل ox_inventory العامل ثم API المدعومة لـQBCore/Qbox أو ESX. تفاصيل اللوحة عملية جسر منفصلة. ظهور عنصر لا يثبت المصدر والوقت والشكل نفسيهما لكل فحص. تغيير الاسم لا يزامن مستودع أسلحة مخصصاً.
سجل loadout في ESX وعدد عناصر الجرد مفهومان مختلفان. nil أو خطأ أو بيانات غير متوقعة ليست دليل غياب. تحقق من الطريقة وسجل وقت المنح والإجراء العادي والمزود والنتيجة. AllowWeapon مراجع قد يغطي أسلحة يمنحها الخادم شرعاً خارج الجرد بالنطاق اللازم. هذا فحص توافق لا وعد بإصلاح جميع عيوب الكشف.
اعتبر نقل core أوسع من أسماء الجداول#
النقل بين QBCore وESX ليس تغيير تسمية فقط. الجسر يستخدم players/citizenid في QBCore وusers/identifier في ESX. جلسة قديمة أو اسم ظاهر لا يحدد شخصية منقولة. المال والمركبات والجرد والقواعد تختلف. لا تعِد تسمية جداول الإنتاج لنجاح استعلام. النقل خطة خادم اللعبة؛ AC ليس محول بيانات مفقودة.
اختر شخصية ومركبة معروفتين في بيئة منفصلة. سجّل core والهوية الدائمة وحساب cash/bank والحالة المتصلة قبل القراءة. خطأ بنية أو فهرس لا يثبت فقداناً؛ يقيّم المسؤول التوافق. تعديل الرصيد من اللوحة مفعّل افتراضيًا؛ لا تستخدمه حتى القبول. لمنعه تقنيًا استخدم الوضع اليدوي: set tosun_db_bridge_manual "1" وset tosun_db_bridge_enabled "1" في server.cfg دون tosun_db_bridge_money_write. اختبر اختيار الشخصية والجرد الطبيعي مجدداً. اقبل البيانات الصحيحة للشخصية الصحيحة لا بدء المورد وحده.