ESX و QBCore و Qbox: إعداد إطار العمل الخاص بك وإنشاء الوظائف
إطار العمل الفعال هو أساس خادم FiveM الخاص بك. قبل إضافة الكراجات أو الأجهزة اللوحية أو الشركات، تأكد من تشغيل إنشاء الشخصيات، وقاعدة البيانات، وتعيين الوظائف. يغطي هذا الدليل التثبيت الجديد ومثال لوظيفة واحدة صغيرة في ESX Legacy أو QBCore أو Qbox. اتبع القسم الخاص بإطار العمل الخاص بك؛ تثبيت الثلاثة معاً ليس جزءاً من عملية الإعداد.
ابدأ بتثبيت نظيف
قم بتجهيز حساب Cfx.re، ومفتاح تسجيل الخادم، وإصدار FXServer artifact مناسب، وخدمة MariaDB تعمل. استخدم إصدار قاعدة البيانات الذي يدعمه إطار العمل الذي اخترته؛ يتطلب Qbox صراحةً MariaDB ولا يدعم MySQL أو XAMPP. في الاستضافة المدارة، استخدم خادم المزود وأدوات تحكم txAdmin. راجع دليل إعداد خادم FiveM الرسمي و متطلبات Qbox.
- افتح txAdmin واختر نشر وصفة جديدة (recipe deployment) في دليل بيانات خادم جديد.
- اختر الوصفة الرسمية لإطار العمل الخاص بك: ESX Legacy، أو QBCore أو Qbox.
- أدخل مفتاح الخادم وتفاصيل اتصال MariaDB الصحيحة. استخدم حساب قاعدة بيانات مخصص مع صلاحية الوصول إلى قاعدة بيانات هذا الخادم.
- قم بتشغيل الوصفة، وراجع التكوين الذي تم إنشاؤه، ثم ابدأ الخادم. حافظ على التبعيات البرمجية للوصفة وترتيب الموارد.
- انضم، وأنشئ شخصية، ثم أعد الاتصال وتأكد من أن الشخصية لا تزال تُحمل قبل إضافة أي موارد أخرى.
تقوم الوصفات بتحميل الموارد وتشغيل ملفات SQL الخاصة بتثبيتها. لا تقم باستيراد مخطط إطار عمل كامل ثانٍ بعد ذلك أو نشر وصفة جديدة فوق خادم موجود. قم بعمل نسخة احتياطية لكل من الملفات وقاعدة البيانات قبل إجراء أي تغييرات لاحقاً. لخطوات التثبيت الخاصة بإطار العمل، اتبع دليل تثبيت ESX، أو دليل ويندوز الخاص بـ QBCore، أو دليل تثبيت Qbox.
فهم ما تحتويه الوظيفة فعلياً
لكل وظيفة مفتاح داخلي، وتسمية عرض، ورتب مرقمة. نحن نستخدم sky_example، مع الرتب 0 و 1، في جميع الأوقات. حافظ على تطابق هذا المفتاح في إطار العمل، وسكريبت الوظيفة، وأي عمليات ربط. التسمية مثل "شركة تجريبية" هي فقط الاسم الذي يراه اللاعبون.
| إطار العمل | تعريفات الوظائف | مفاتيح الرتب في هذا الدليل |
|---|---|---|
| ESX Legacy | MariaDB: jobs و job_grades | قيم SQL 0، 1 |
| QBCore | qb-core/shared/jobs.lua | النصوص: ['0']، ['1'] |
| Qbox | qbx_core/shared/jobs.lua | الأرقام: [0]، [1] |
إنشاء وظيفة يؤدي إلى إنشاء هويتها في إطار العمل. تتطلب أساليب اللعب، والمرائب، والمخازن، وقوائم المدير، وحسابات الأعمال موارد وإعدادات متوافقة خاصة بها. وظيفة إطار العمل ليست عملاً تجارياً مكتملاً. تتبع المواقع المذكورة أعلاه مخطط ESX، و ملف وظائف QBCore، و ملف وظائف Qbox.
ESX Legacy: إنشاء الوظيفة في MariaDB
افتح قاعدة البيانات المهيأة لهذا الخادم، وليس قاعدة بيانات خادم آخر. تحقق أولاً مما إذا كان المفتاح التجريبي موجوداً بالفعل:
SELECT name FROM jobs WHERE name = 'sky_example';
SELECT grade FROM job_grades WHERE job_name = 'sky_example';
لا تقم بتشغيل عمليات الإدراج التالية إلا عندما تعيد كلتا عمليتي التحقق عدم وجود أي صفوف. إذا كانت الوظيفة موجودة، فقم بفحص وتعديل سجلاتها الحالية بدلاً من إدراج مكررات.
INSERT INTO jobs (name, label)
VALUES ('sky_example', 'Example Company');
INSERT INTO job_grades
(job_name, grade, name, label, salary, skin_male, skin_female)
VALUES
('sky_example', 0, 'employee', 'Employee', 100, '{}', '{}'),
('sky_example', 1, 'boss', 'Manager', 200, '{}', '{}');
job_name تربط كل رتبة بالوظيفة. عمود grade هو الرتبة المستخدمة للتعيين؛ أما الـ id التلقائي للصف هو ليس الرتبة. يتم تجاهل الوظيفة التي لا تحتوي على رتب. أعد تحميل دليل الوظائف عبر وحدة تحكم الخادم:
refreshjobs
يبدأ ESX Legacy الحالي بـ oxmysql، ثم esx_lib، ثم es_extended؛ قد تغفل الدروس التعليمية القديمة esx_lib. حافظ على التبعيات البرمجية التي توفرها الوصفة الخاصة بك. راجع تكوين الوصفة الحالي و تنفيذ تحميل الوظيفة.
بالنسبة لتكامل esx_society، يتم التعرف على اسم الرتبة الداخلي boss من خلال إعدادات المدير الافتراضية. تسمية "Manager" المرئية وحدها لا تمنح أي شيء. يظل تسجيل الجمعية والحسابات وترتيب التبعيات خطوات إعداد منفصلة. اتبع وثائق الجمعية إذا كان مورد الوظيفة الخاص بك يستخدمها.
QBCore: أضف إدخالاً إلى جدول الوظائف
افتح qb-core/shared/jobs.lua. أدرج هذا الـ داخل جدول الوظائف الحالي، بجانب إدخالات الوظائف الأخرى وقبل قوس الإغلاق. حافظ على إعلان الجدول الحالي وجميع الوظائف الموجودة؛ هذا إدخال وليس ملف استبدال.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
['0'] = { name = 'Employee', payment = 100 },
['1'] = { name = 'Manager', payment = 200, isboss = true },
},
},
حافظ على مفاتيح الرتب كنصوص، بما في ذلك الرتبة صفر. تحقق من الفواصل والأقواس حول الإدخالات المجاورة، ثم احفظ، ثم قم بإجراء إعادة تشغيل كاملة ومخطط لها للخادم حتى تقوم الموارد التابعة بتحميل التعريفات نفسها. يقوم أمر refresh الخاص بـ FiveM بإعادة فحص الموارد والبيانات (manifests)؛ ولا يقوم بإعادة تحميل جدول وظائف Lua قيد التشغيل. لا تقم بإنشاء صفوف SQL من نوع jobs لـ ESX من أجل QBCore. تعيش تعريفات الوظيفة في Lua، بينما لا تزال بيانات الشخصية تستخدم قاعدة البيانات.
isboss تحدد رتبة المدير؛ وهي لا تمنح صلاحيات أوامر مسؤول الإطار (framework-admin). يجب أن يوفر مورد إدارة متوافق القائمة الفعلية وموقعها ويقوم بتهيئتها.
Qbox: استخدم ملف الوظائف الخاص بها والرتب الرقمية
افتح qbx_core/shared/jobs.lua وأدرج هذا داخل الجدول الذي ترجعه return { ... }، قبل القوس النهائي للإغلاق. حافظ على مدخلاتها الأخرى. تستخدم Qbox مفاتيح الرتب الرقمية هنا؛ لا تقم بلصق المفاتيح النصية لـ QBCore كما هي دون تغيير.
['sky_example'] = {
label = 'Example Company',
defaultDuty = false,
offDutyPay = false,
grades = {
[0] = { name = 'Employee', payment = 100 },
[1] = { name = 'Manager', payment = 200, isboss = true, bankAuth = true },
},
},
احفظ وقم بإجراء إعادة تشغيل كاملة ومخطط لها للخادم. bankAuth منفصل عن isboss ويُستخدم بواسطة عمليات الربط البنكي المتوافقة؛ لا تقوم أي من العلامتين بإنشاء حساب أو قائمة. طابق إعداداتك مع تعريفات وظائف Qbox الرسمية.
Qbox يتضمن دعم تعدد الوظائف. حد الوظائف وما إذا كان /setjob يستبدل تعيينات الوظائف الحالية أو يضيف تعيينًا جديدًا هو أمر قابل للتهيئة. استخدم أوامر العضوية المدعومة الخاصة به عند إدارة عدة وظائف؛ لا تفترض أن موردًا خارجيًا لتعدد الوظائف مخصصًا لـ QBCore متوافق. راجع أوامر Qbox وتهيئة تعدد الوظائف.
التعيين، الاختبار وإعادة الاتصال
انضم باستخدام شخصية تجريبية واستخدم حساباً يمتلك صلاحيات أوامر الإطار/ACE المطلوبة. تسجيل الدخول إلى txAdmin وحده لا يمنح تلك الصلاحيات. إذا كان Qbox يحتوي على requireOptIn مفعلاً، فاستخدم /optin قبل أوامر المسؤول. استبدل 1 أدناه بـ معرف الخادم الحالي لشخصيتك التجريبية المتصلة؛ حيث تقوم /job بالإبلاغ عن وظيفة اللاعب الذي يدخلها:
/setjob 1 sky_example 0
/job
/setjob 1 sky_example 1
/job
تحقق من أن كلتا الرتبتين تظهران الوظيفة والرتبة المتوقعة. صيغة التعيين موثقة لـ ESX، و QBCore و Qbox؛ فحص الاشتراك الاختياري الشرطي لـ Qbox موجود في تنفيذ الأمر الخاص به.
بالنسبة لـ QBCore و Qbox، يبدأ هذا المثال في حالة عدم الخدمة ويعطل راتب عدم الخدمة. استخدم إجراء الخدمة الخاص بمورد الوظيفة المثبت لديك؛ لا يوجد أمر /duty عام يمكن اعتماده. تؤثر إعدادات تسجيل الدخول أيضًا على ما إذا كان وضع الخدمة المحفوظ أو defaultDuty هو الذي يسود. ثم أعد الاتصال وتحقق من الوظيفة المحفوظة، والدرجة، وسلوك الخدمة المقصود.
قبل فتح الوظيفة للاعبين، اختبر صلاحياتها مع كلا الدرجتين. لا ينبغي للموظف الوصول إلى الميزات المخصصة للإدارة. انتظر فاصل الراتب المكون لديك بدلاً من توقع الدفع فور التعيين؛ المبالغ في المثال هي مجرد نماذج لاقتصادك الخاص. إذا فشل التحقق، فاقرأ أول خطأ ذي صلة في وحدة التحكم وقم بحله قبل إضافة مورد آخر.
| العرض | أول فحص |
|---|---|
| لا يمكن تعيين الوظيفة | المفتاح الدقيق، والدرجة الموجودة والتعريفات المحملة |
| تم رفض الأمر | صلاحيات الإطار البرمجي وتكوين ACE |
| فشل المورد بعد تعديل Lua | أول خطأ في وحدة التحكم، الفواصل والأقواس |
| الوظيفة صحيحة ولكن لا توجد قائمة | مورد الوظيفة، والموقع المكون، والدرجة والخدمة |
| راتب خاطئ | راتب الدرجة، وقواعد الخدمة وتكوين كشوف المرتبات/الحسابات |
قم بتوصيل وظيفة Sky الخاصة بك بعد ذلك
بمجرد عمل تعيين الإطار البرمجي، اتبع دليل تثبيت Sky وقم بتكوين مورد الوظيفة المثبت لديك بنفس مفتاح الإطار البرمجي والدرجات. استخدم الميزات المشتركة لقاعدة الوظائف Sky للإعدادات المشتركة ذات الصلة. قم بتكوين زوج وظائف عدم الخدمة فقط عندما يستخدم إعداد Sky المختار الخاص بك زوجًا، وقم بإنشاء كلتا الوظيفتين مع كل درجة مطلوبة.
آخر فحص: 25 أكتوبر 2026. المصادر أعلاه هي وثائق الإطار الرسمي، والوصفات المعتمدة، وتطبيقات GitHub. تحقق من الإصدار المثبت لديك قبل تطبيق أمثلة من إصدار أحدث.