BUPA Sync Status
BUPA Sync Status
BUPA Sync Status هو نظام لتوضيحات الجسم مخصص للرول بلاي الطبي. يقوم اللاعب بكتابة الأمر /status لتُفتح لافتة فوق شخصيتهم الحقيقية — حيث تقوم كاميرا برمجية بتأطير الـ ped المباشر بملابسه، شعره، وشمه والإكسسوارات، بينما يتم إسقاط مؤشرات مناطق قابلة للنقر من عظام الـ ped في كل إطار (frame)، لتبقى ملتصقة بالجسم أثناء استدارته.
النقر على أي منطقة يتيح لك كتابة ملاحظة قصيرة. يتم بعد ذلك عرض هذه الملاحظة في العالم، وهي تطفو على ذلك الجزء المحدد من جسمك، لجميع اللاعبين الواقفين بالقرب منك. يقوم المسعفون بالمثل مع المريض باستخدام الأمر /status <id>: حيث يقومون توثيق الإصابة، واختيار مدة بقاء هذا التوثيق، وتكون الملاحظة مقفلَة بحيث لا يمكن للمريض إزالتها قبل انتهاء صلاحيتها.
افتح اللوحة على نفسك باستخدام /status. يفحص المسعفون المريض باستخدام /status 12. يقوم /statusclear بمحو كل ما يُسمح لك بإزالته.
Key features
- معاينة حية للشخصية — بدون دمى عرض (mannequin) أو رسم دمى. تقوم الكاميرا بتأطير الـ ped الخاص باللاعب نفسه، وتقوم وظيفة
AutoFrameبقياسه من الرأس إلى القدمين لضمان تأطير كل موديل بشكل صحيح، وتستقر المؤشرات على إحداثيات العظام الحقيقية. - 16 منطقة في الجسم — الرأس، الرقبة، الصدر، البطن، الذراعين، السواعد، اليدين، الفخذين، الركبتين والقدمين، وكل منها مرتبطة بعظمة Ped في لعبة GTA وقابلة للإزالة من ملف التكوين (config).
- نصوص عائمة داخل العالم — يمكن للاعبين الآخرين قراءة الملاحظة الموجودة على الجسم مباشرة، ملونة حسب درجة الخطورة، ودون استهلاك للشبكة في كل إطار: حيث تنتقل التوضيحات عبر الـ statebag الخاص باللاعب.
- توثيق المسعفين — وظائف قابل للتكوين (أو نظام ACE) تتيح توثيق لاعب آخر ضمن مسافة محددة، واختيار المدة من قائمة جاهزة، وجعل تلك الملاحظة مقفلة ضد الإزالة.
- انتهاء الصلاحية التلقائي — يقوم السيرفر بمسح التوضيحات منتهية الصلاحية مؤقتاً لتختفي في كل مكان دون أي جهد صيانة من جانبك.
- الأنواع ودرجات الخطورة — إصابة / ضمادة / ملاحظة، طفيف / متوسط / شديد، وكلاهما محدد كقوائم تكوين بسيطة.
- حدود مكافحة سوء الاستخدام — حد أقصى لكل شخصية، توثيق واحد لكل منطقة، حد أقصى لطول النص، فترة انتظار للكتابة (cooldown)، والتحقق من المسافة مع كل إجراء.
- سجلات Discord — رسائل (embeds) ملونة للتوضيحات المضافة، المُزالة، والمُمسوحة، مع توضيح من كتب ماذا، وعلي من، ولأي مدة.
- 10 لغات من خلال نظام اللغات (locale) الخاص بـ
ox_lib، مع الإنجليزية كخيار افتراضي.
Frameworks
يتم اكتشاف الفريم وورك تلقائياً بواسطة shared/bridge.lua — ولا يوجد شيء يحتاج للإعداد:
| Framework | Detected resource |
|---|---|
| QBox | qbx_core |
| QB-Core | qb-core |
| ESX | es_extended |
| Standalone | none — falls back to the license: identifier |
يوفر الفريم وورك أمرين فقط: معرف ثابت لكل شخصية يُستخدم كمفتاح لقاعدة البيانات، واسم وظيفة اللاعب ورتبتها للتحقق من صلاحيات المسعف.
How the data flows
- تنتقل عملية الكتابة إلى السيرفر من خلال callback الخاص بـ
ox_lib. لا يتم الوثوق بالعميل أبدًا — فالهوية، الصلاحيات، الحدود، المدة، وتصفية النصوص تتم برمجتها بالكامل على جانب السيرفر (server-side). - يتم تخزين التوضيح في قاعدة بيانات MySQL مرتبطة برقم المواطن (citizen id) الخاص بالشخصية.
- يتم دفع القائمة الكاملة للشخصية إلى الـ statebag الخاص باللاعب
bupaStatuses. - يقوم كل عميل قريب بقراءة ذلك الـ statebag ورسم النص على العظمة المطابقة.
Dependencies
| Resource | Required | Purpose |
|---|---|---|
ox_lib |
Yes | Callbacks, notifications and the locale system |
oxmysql |
Yes | Storing annotations per character |
يتم إنتاج جدول قاعدة البيانات تلقائياً عند التشغيل الأول — ولا توجد ملفات SQL تحتاج للاستيراد.