توثيق Pulse Phone
تفاصيل التثبيت
1. التثبيت السريع
قبل أن تنسخ أي شيء
استخدم server artifact يستوفي المتطلبات أدناه، مع تفعيل OneSync، وإصدار اللعبة 2699 أو أحدث. لسيرفر roleplay عادي، تأكد أولًا من أن الـ framework والـ inventory وoxmysql وريسورس الصوت وscreenshot-basic تعمل. وضع standalone يعمل أيضًا بدون framework؛ وعناصر الـ inventory اختيارية هناك.
حمّل الريسورس من حسابك على Cfx.re بعد استلام المشتريات. استخدم مفتاح السيرفر التابع للحساب الذي يملك الـ asset. إذا أبلغ Cfx.re عن خطأ في الاستحقاق (entitlement)، أصلح ربط الحساب/المفتاح؛ فتغيير إعدادات الهاتف لا يمكنه منح الاستحقاق.
الخطوة 1 — ضع الريسورس في سيرفرك
فك ضغط الحزمة وانسخ مجلد ريسورس phone، الذي يحتوي على fxmanifest.lua، إلى مجلد resources في سيرفرك. لا تُعِد تسميته ولا تضع مجلد الـ ZIP/الحزمة الخارجي مكانه.
على سيرفر مستضاف، ارفع بوضع Binary أو ارفع الـ zip وفك ضغطه هناك (لماذا). يسرد البدء السريع (الخطوة 2) عدد الملفات وحجم كل مجلد لهذا الإصدار، ويذكر فحص بدء التشغيل أي ملف مفقود أو بحجم خاطئ.
أوقف ريسورس الهاتف السابق قبل اختبار Pulse حتى لا يتنافس هاتفان على نفس المفتاح والعنصر. خذ نسخة احتياطية من بياناته إذا كنت تخطط لاستيرادها لاحقًا.
الخطوة 2 — أضف عناصر الـ inventory
اختر الـ inventory الموجود لديك؛ لا تحتاج إلى استبداله.
| الـ inventory الخاص بك | الإجراء المطلوب |
|---|---|
| ox_inventory | افتح الملف المرفق config/items/ox_inventory.lua. ادمج إدخالاته في ox_inventory/data/items.lua، داخل الجدول الموجود. لا تستبدل ملف الـ inventory بالكامل. احتفظ بإدخال phone الخاص بـ ox_inventory: استخدامه يفتح Pulse Phone، وسطر Phone item في فحص بدء التشغيل يؤكد ذلك. استبدله بالإدخال المطبوع فقط عندما يقول ذلك السطر إنه يفتح سكربتًا آخر. انسخ الصور من config/items/images/ إلى ox_inventory/web/images/. أعِد تشغيل السيرفر بعد التعديل. |
| qb-inventory مع QBCore | تعريفات العناصر الناقصة تُسجَّل تلقائيًا عند بدء التشغيل. انسخ config/items/images/ إلى qb-inventory/html/images/. إذا كان الـ inventory لديك يتطلب إدخالات مشتركة دائمة، فالملف المرفق config/items/qb-core.lua جاهز للدمج في qb-core/shared/items.lua. |
| الـ inventory الافتراضي لـ ESX | تُضاف العناصر الناقصة تلقائيًا. إذا طلب الكونسول إعادة تشغيل، أعِد التشغيل مرة واحدة حتى يقرأها ESX. إذا كان حساب قاعدة البيانات لديك لا يستطيع إضافتها، استخدم config/items/esx.sql. |
| qs-inventory أو inventory آخر مدعوم | اتبع الصف المختصر الخاص بالـ inventory لديك في العناصر وأنظمة الـ inventory. استخدم قائمة العناصر ومجلد الصور الخاصين به. |
| Standalone بدون inventory | لا حاجة إلى إدخالات inventory. اترك متطلبات العناصر معطّلة. |
يحدد فحص بدء التشغيل الإدخالات الناقصة ويطبع فقط التعريفات التي ما زلت تحتاجها. الـ inventory الذي يحمّل تعريفات العناصر عند بدء التشغيل، مثل ox_inventory، يحتاج إلى الإدخالات أعلاه؛ وPulse لا يكتب فوق ملفات ريسورس آخر.
الخطوة 3 — راجع الإعدادات الرئيسية
افتح config/config.lua. الإعدادات الافتراضية تكتشف إعدادك الحالي:
Config.Framework = 'auto'اترك inventory = 'auto' في جدول Config.Providers الموجود. إذا كنت تشغّل عدة ريسورسات inventory، اضبط تلك القيمة على الـ inventory الذي تنوي استخدامه، مثل 'ox_inventory'. لا تضف جدول Config.Providers أو Config.Item ثانيًا في نهاية الملف.
في جدول Config.Item الموجود اختر كيف تعمل الهواتف:
| الإعداد | ما يفعله |
|---|---|
required = false, unique = false |
كل شخصية لديها هاتف بدون حمل عنصر. مفيد لاختبارك الأول. |
required = true, unique = false |
تحتاج الشخصية إلى عنصر phone لفتح هاتفها. وإعطاء ذلك العنصر لشخص آخر لا ينقل بياناتها. |
unique = true |
كل عنصر هاتف له رقمه وبياناته الخاصة. تمرير العنصر ينقل ذلك الهاتف. يتطلب ox_inventory أو qb-inventory أو qs-inventory أو core_inventory أو codem-inventory. |
name = 'phone' |
اسم عنصر الـ inventory. احتفظ به ما لم تغيّر أيضًا تعريف العنصر المرفق. |
الهواتف الفريدة تتبع جسر الـ inventory المختار. اترك Config.Item.inventory = 'auto'؛ هذا التجاوز القديم مخصص فقط للتثبيتات المتقدمة الموجودة. وConfig.Providers.inventory له الأولوية عند ضبطه صراحةً.
لا تغيّر Config.IdentityScope على سيرفر قائم. القيمة الافتراضية، 'character'، تُبقي هواتف الشخصيات المختلفة منفصلة.
اختياري: الهواتف كعناصر inventory والخدمة المدفوعة
لاشتراط عنصر هاتف منفصل لكل هاتف، اضبط required = true وunique = true داخل جدول Config.Item الموجود في config/config.lua، بعد إضافة إدخالات الـ inventory. استخدم أحد أنظمة الـ inventory الداعمة للهواتف الفريدة المذكورة أعلاه.
لبيع خدمة الاتصالات، اضبط Config.Carrier.enabled = true في نفس الملف. هذا يفعّل تطبيق Carrier، حيث يشتري اللاعبون خطتهم. الهواتف الجديدة تحتاج إلى خطة قبل أن تتاح المكالمات والرسائل العادية وتطبيقات بيانات الجوال. App Hub هو المكان الذي يثبّت فيه اللاعبون التطبيقات، وليس متجر الخدمة. اضبط Config.Coverage.enabled = true إذا أردت أيضًا مناطق التغطية. التغطية والخطط المدفوعة خياران منفصلان؛ اترك أيًا منهما معطّلًا إذا لم تكن تريد تلك الميزة.
عدّل الإعدادات الموجودة بدلًا من إضافة جداول مكررة. أعِد تشغيل السيرفر بعد الحفظ. إذا كان إعداد داخل اللعبة قد حُفظ سابقًا، أعِد تعيين ذلك الإعداد في Settings → Server حتى تُطبَّق قيمة الملف.
الخطوة 4 — شغّل الـ dependencies قبل Pulse
احتفظ باتصال قاعدة البيانات وإعدادات الـ framework الموجودة لديك. أضف فقط الأسطر الناقصة؛ ولا تشغّل نسخة ثانية من أي dependency.
استخدم هذا الترتيب مع الريسورسات المثبتة بالفعل على سيرفرك:
- ريسورس قاعدة البيانات وإعدادات اتصاله الموجودة.
- الـ framework ومكتباته المطلوبة وريسورسات الهوية والشخصيات.
- الـ inventory، باستخدام إعدادات ذلك الـ inventory للـ framework الخاص بك.
- ريسورس صوت مدعوم واحد و
screenshot-basic. ensure phone.
لا تثبّت ESX أو QBCore أو inventory مختلفًا فقط من أجل Pulse. اختر إعدادك الحالي في الـ framework الخاص بك لمثال ترتيب التشغيل الخاص به. يُكتشف Qbox كـ Qbox حتى عندما يستخدم ريسورس آخر الـ exports المتوافقة مع QBCore الخاصة به.
لصلاحيات مسؤول Pulse، أضف add_ace group.admin phone.admin allow. يجب أن يكون حساب المسؤول لديك ضمن group.admin مسبقًا حتى تُطبَّق تلك الصلاحية.
الخطوة 5 — اقرأ فحص التشغيل الأول
أعِد تشغيل السيرفر. يطبع Pulse تقرير بدء التشغيل وينشئ جداول قاعدة البيانات تلقائيًا عندما يكون اتصال SQL متاحًا.
- FIX / FAIL: جزء مطلوب لا يمكنه العمل. اتبع السطر التصحيحي قبل السماح للاعبين باستخدامه.
- NOTE / WARN: اقرأ أي ميزة متأثرة؛ بعض التحذيرات تصف ميزات اختيارية لم تقم بإعدادها.
- شغّل
phone:healthفي كونسول السيرفر لتكرار الفحص. - شغّل
phone:diagلرؤية الـ framework/الـ inventory/المزوّدين المختارين. - كأدمن، ادخل، وافتح F8 وشغّل
phone:setupللإعداد الموجَّه الموجود.
الإعدادات المحفوظة في إعداد الأدمن داخل اللعبة تتجاوز إعدادات الملف المقابلة. إذا بدا أن تغييرًا في ملف يتم تجاهله، راجع Settings → Server وأعِد تعيين ذلك التجاوز المحفوظ قبل تغيير ملفات أخرى.
الخطوة 6 — اختبر كلاعب
- حمّل شخصية، واضغط F1، وأكمل إعداد الهاتف. إذا كانت متطلبات العناصر مفعّلة، اشترِ هاتفًا من المتجر أو أعطِ الشخصية عنصر الهاتف المُعدّ أولًا.
- إذا اشتريت علبة مختومة، استخدم العلبة من الـ inventory لفتحها، ثم أكمل الإعداد. يصل الهاتف مُشغّلًا؛ ومع
Config.Device.arrivesOn = falseاضغط مطولًا على End أو O أولًا. - افتح Messages وContacts وPhone. ارجع إلى الشاشة الرئيسية، وافتح الـ app switcher وأغلق كل تطبيق بالتتابع.
- التقط صورة وفيديو قصيرًا. افتحهما في Photos، وأغلق الهاتف وأعِد فتحه، وتأكد أنهما ما زالا موجودين.
- أعِد الاتصال وتأكد أن نفس الشخصية ما زالت تملك نفس الهاتف. اختبر المكالمات مع لاعب ثانٍ باستخدام ريسورس الصوت المثبت لديك.
أين تغيّر الأشياء
| ما تريد تغييره | الملف أو المكان |
|---|---|
| الـ framework، ومزوّد الـ inventory، وعنصر الهاتف، والمتجر، والموديلات، وربط المفاتيح | config/config.lua |
| مزوّد الصوت | config/config.lua |
| إعدادات التطبيقات والخدمات/الوظائف | config/apps.lua |
| إدخالات الـ inventory والصور | config/items/ |
| اتصال قاعدة البيانات، وترتيب تشغيل الريسورسات، وبيانات اعتماد استضافة الوسائط | server.cfg (أبقِ بيانات الاعتماد الخاصة على جهة السيرفر) |
| تكاملات المطورين | التكاملات المتقدمة، وحزمة المطورين الاختيارية (zerodevscripts.com/downloads/PulsePhone-developer-kit.zip) وملفات bridge/ الموجودة؛ والتثبيت العادي لا يتطلب تعديلها |
| صور/فيديوهات اللاعبين باستخدام التخزين المدمج | media/؛ احتفظ بهذا المجلد عند التحديث |
الأقسام أدناه تحتوي على المرجع التفصيلي. لا تحتاج إلى قراءة كل إعدادات الميزات لإنهاء التثبيت الأول.