Agency-Notify: يجب أن تشعر الإشعارات وكأنها iOS، وليس FiveM عام 2014
لماذا تم بناء Agency-Notify: لأن تجربة إشعارات معظم سيرفرات FiveM لا تزال تبدو كما لو كانت من عقد مضى.
Agency Scripts
المؤسس والمطور الرئيسي في Agency Scripts
The Notification Ghetto
لا تزال الإشعارات في معظم خوادم FiveM تبدو مثل ESX الافتراضي من 2019. شريط ملون أساسي في الأعلى، ربما أيقونة، سطر واحد من النص. لقد درب اللاعبون أنفسهم على تجاهلها. هذه قناة مهملة ضخمة لنقل المعلومات المهمة.
كيف تبدو الإشعارات الحديثة
Agency-Notify ships toast-style notifications that stack cleanly, support rich content (icons, images, multi-line text, action buttons), and have clear severity levels with distinct visual treatments. Success, warning, error, info, each has its own animation, color, and typography weight.
التجميع الذي يمنع الرسائل المزعجة
إذا كان من المتوقع إطلاق ثلاث إشعارات متشابهة بسرعة متتالية، يقوم Agency-Notify بدمجها في إشعار واحد مجمع. لا مزيد من ثلاث نوافذ "لقد ربحت 500$" متطابقة تحجب الشاشة. هذا السلوك يتوقعه اللاعبون من أي تطبيق حديث وهو موجود أخيرًا في FiveM.
API صديقة للمبرمجين
استدعاء وظيفة واحدة لإطلاق إشعار من أي سكربت: exports['agency-notify']:Show({title, body, icon, level, duration, actions}). يُرجع معرفًا يمكنك استخدامه لتحديث أو رفض الإشعار لاحقًا. هذا كل شيء. لا ارتباط بإطار عمل، لا متغيرات عالمية سحرية.
مستقل لسبب
Agency-Notify is a framework-independent building block. Your QBCore scripts, ESX scripts, and standalone custom code all call the same API. This is how you keep a server's visual language consistent across dozens of scripts from different authors.
التثبيت & الإعداد
تشغيل Agency-Notify يستغرق أقل من عشر دقائق. قم بتنزيل المورد من مكتبة Tebex الخاصة بك، واسحب agency-notify المجلد إلى دليل موارد الخادم الخاص بك، وأضف ensure agency-notify إلى server.cfg. لا يعتمد المورد على قاعدة بيانات، كل حالة الإشعارات تتم معالجتها على جانب العميل في الذاكرة.
بمجرد التشغيل، يمكن لأي سكربت على خادمك استدعاء واجهة برمجة التطبيقات exports فوراً. لا يلزم أي تكوين بعد التثبيت لبدء إرسال الإشعارات؛ الإعدادات الافتراضية معقولة من البداية.
خيارات التكوين
مفتوح config.lua لتخصيص الإعدادات الافتراضية البصرية والسلوكية:
- الموقع، التثبيت في الزاوية العلوية اليمنى (الافتراضي)، العلوية اليسرى، السفلية اليمنى، أو السفلية اليسرى.
- الحد الأقصى للمرئي، عدد الإشعارات التي تتراكم قبل رفض الأقدم. الافتراضي 5.
- المدة الافتراضية، بالمللي ثانية قبل الإغلاق التلقائي. يمكن للإشعارات الفردية تجاوز هذا.
- أسلوب الحركة، الانزلاق من اليمين (الافتراضي)، التلاشي، أو التكبير. يُطبق على جميع الإشعارات عالميًا.
- نافذة المجموعة، نافذة زمنية بالميلي ثانية يتم خلالها دمج الإشعارات المتطابقة.
- الصوت مفعل، تبديل صوت التنبيه الخفيف حسب مستوى الشدة.
جميع الإعدادات موجودة في جدول تكوين مسطح واحد، لا هياكل متداخلة للتنقيب، ولا تكوينات منفصلة للعميل والخادم.
توافق الإطار
Agency-Notify is 100% standalone. It has no framework imports, no QBCore dependency, no ESX dependency. This means:
- يعمل على أي سيرفر FiveM بغض النظر عن إطار العمل الأساسي الخاص بك.
- التبديل بين الأُطُر لاحقًا لا يكسر مكالمات الإشعارات الخاصة بك.
- كل سكربت من كل مؤلف يمكنه إطلاق إشعارات عبر نفس API دون معرفة الإطار الذي تستخدمه.
إذا كنت تستبدل نظام إشعارات موجود (notify من ox_lib، QBNotify من QBCore، إلخ)، ببساطة قم بتحديث استدعاء التصدير في سكريبتاتك. التوقيع قريب بما فيه الكفاية من الأنماط الشائعة بحيث يمكن لمعظم عمليات البحث والاستبدال التعامل مع الترحيلات.
لماذا هذا مهم للعب التمثيلي
الإشعارات هي قناة التغذية الراجعة الأساسية بين أنظمة الخادم واللاعبين. عند إتمام صفقة مخدرات، عند دخول عصابة منافسة إلى منطقتك، عند حاجة مسؤول لتنبيه الجميع بحدث، كل ذلك يتم عبر الإشعارات. إذا بدت هذه القناة قديمة أو تم تجاهلها، تفشل الاتصالات الحرجة للخادم بصمت.
اللاعبون الذين يثقون في نظام الإشعارات الخاص بهم ينتبهون له. اللاعبون الذين تعلموا تجاهل شريط إشعارات مزعج وقبيح يفوتون أشياء ويشعرون بأنهم خارج الحلقة. يعالج نظام التجميع في Agency-Notify مشكلة الرسائل المزعجة تحديدًا: إذا أطلق خادمك ثلاث إشعارات سريعة خلال عملية سرقة، يرى اللاعبون رسالة واحدة مجمعة بدلاً من ثلاث نوافذ تنافس على الانتباه.
تضيف درجات الشدة (نجاح، تحذير، خطأ، معلومات) طبقة ثانية من الإشارة. يتعلم اللاعبون بسرعة أن اللون الأخضر يعني جيد، والأحمر يعني التصرف فورًا. هذه الثقافة اللونية تقلل العبء المعرفي أثناء المواقف عالية الحركة.
الأسئلة المتكررة
هل يمكنني تحديث أو رفض إشعار بعد عرضه؟
نعم. Show() export يعيد معرفًا. مرر هذا المعرف إلى exports['agency-notify']:Update(id, {body, level}) لتغيير المحتوى، أو exports['agency-notify']:Dismiss(id) لإزالته مبكرًا. هذا مفيد للإشعارات ذات نمط التقدم التي تغير الحالة (مثل "جار المعالجة…" → "تم").
هل يستبدل هذا إشعارات ox_lib؟
يمكنه ذلك. يغطي Agency-Notify نفس حالات الاستخدام بأسلوب بصري مختلف. إذا كنت تريد جمالية الزجاج الشفاف المتناسقة مع سكريبتات Agency الأخرى، فإن التبديل بسيط. إذا كان سيرفرك متكاملًا بشكل كبير مع ox_lib وأنت راضٍ عن هذا المظهر، فإن الاحتفاظ بـ ox_lib للإشعارات لا مشكلة فيه، لا يوجد تعارض.
هل يمكن للاعبين تخصيص موقع الإشعارات الخاصة بهم؟
ليس من الصندوق، الموقع هو خيار تكوين على مستوى الخادم. هذا مقصود: يتحكم مالكو الخادم في اللغة البصرية، وليس اللاعبون الفرديون. إذا كنت تريد تفضيلات لكل لاعب، ستحتاج إلى حفظ اختيارهم في قاعدة بيانات وتمريره عبر بيانات اللاعب عند الانضمام.
هل هناك حد للسرعة لمنع الرسائل المزعجة من السكريبتات؟
نظام التجميع يتعامل مع إزالة التكرار تلقائيًا. للتحديد الصارم لمعدل الاستخدام، اضبط Config.RateLimit = true و Config.RateLimitWindow = 1000 (مللي ثانية) في config.lua. هذا يحدد الحد الأقصى لعدد الإشعارات الفريدة التي يمكن لأي سكربت واحد إطلاقها خلال النافذة.
المتطلبات
- خادم FiveM (أي إطار عمل أو مستقل)
- حساب cfx.re مع مفتاح ترخيص Agency-Notify صالح في keymaster الخاص بك
- لا اعتماد على قاعدة بيانات
- لا اعتماد على موارد خارجية
مقارنة Agency-Notify بالبدائل
نظام إشعارات FiveM لديه عدة خيارات: إشعارات ox_lib، إشعارات QBCore المدمجة، ومختلف السكربتات المستقلة. هنا حيث يكون لكل منها معنى:
إشعارات ox_lib كفؤة ومُصانة جيدًا، لكنها مرتبطة أسلوبياً بلغة ox_lib البصرية. إذا كان خادمك يشغل ox_lib بالكامل بالفعل، فقد تفوق الاتساق البصري قيمة الترقية. إذا كنت تبني مجموعة تعتمد على Agency، فإن المظهر المتناسق لـ Agency-Notify هو الأنسب.
QBNotify في QBCore وظيفي لكنه بسيط، لا تجميع، لا API للتحديث، لا أزرار إجراءات. يعمل للحالات الأساسية ولا يكلف شيئًا إضافيًا إذا كنت تستخدم QBCore بالفعل. إذا كنت تحتاج إلى أكثر من التنبيهات البسيطة، فقد تجاوزته.
Agency-Notify targets servers that care about the notification experience as a product detail rather than an afterthought. If you've ever thought "our notifications look bad and players ignore them," that's the problem this script exists to solve.