الصلاحيات والمدة
الصلاحيات والمدة
كلمة "Self" تعني دائماً جسم اللاعب نفسه. أي شيء موجه نحو لاعب آخر يتم التعامل معه على أنه تعديل لشخص آخر، ويتطلب إحدى الوظائف المكوّنة أو صلاحية ACE.
من يُسمح له بفحص لاعب آخر
Config.Permissions = {
EditOthers = { 'ambulance', 'ems', 'doctor' },
MinGrade = 0,
UseAce = false,
Ace = 'bupa.syncstatus',
MaxDistance = 3.0,
LockStaffNotes = true,
AllowSelfRemove = true,
StaffCanRemoveLocked = true,
}| الخيار | الافتراضي | الغرض |
|---|---|---|
EditOthers |
{ 'ambulance', 'ems', 'doctor' } |
الوظائف المسموح لها بإضافة ملاحظات على اللاعبين الآخرين. القناة الفارغة ({}) تعطل هذه الميزة تماماً. |
MinGrade |
0 |
الحد الأدنى لرتبة الوظيفة لتلك الوظائف (0 = أي رتبة). |
UseAce |
false |
قبول صلاحية ACE أيضاً بدلاً من الوظيفة، للمشرفين. |
Ace |
bupa.syncstatus |
كائن ACE الذي يتم التحقق منه عند تفعيل UseAce. |
MaxDistance |
3.0 |
المسافة التي يجب أن تقف فيها لفحص شخص ما، بالمتر. 0 تعطل التحقق. |
يتم فرض كل خيار من هذه الخيارات على السيرفر، في كل عملية قراءة وكتابة وإزالة — وليس فقط عند فتح اللوحة.
توثيق المسعفين المقفل
هذا هو الخيار الذي يجعل السكريبت يستحق الاستخدام.
| الخيار | الافتراضي | التأثير |
|---|---|---|
LockStaffNotes |
true |
الملاحظة التي يضعها المسعف على شخص آخر تكون مقفلة. لا يمكن للمريض حذفها؛ وتختفي تلقائياً عند انتهاء المؤقت. |
AllowSelfRemove |
true |
هل يُسمح للاعبين بإزالة الملاحظات التي وضعوها لأنفسهم؟ |
StaffCanRemoveLocked |
true |
هل يجوز للوظائف المصرح لها إزالة ملاحظة مقفلة قبل انتهاء صلاحيتها؟ قم بإيقاف تشغيلها للتوثيق غير القابل للتغيير حقاً. |
يتم تمييز الملاحظة المقفلة في اللوحة كـ "Locked by medic". تقوم أوامر Clear all و /statusclear بتعمد الاحتفاظ بالملاحظات المقفلة: يحذف السيرفر فقط الصفوف المسموح للمستدعي بإزالتها، ويبلغ عن عددها.
مع تفعيل LockStaffNotes = true وتعطيل StaffCanRemoveLocked = false، لا يمكن لأحد إزالة ملاحظة المسعف — ولا حتى المسعف الذي كتبها. ستختفي فقط عند انتهاء المؤقت الخاص بها، لذا تجنب إقران ذلك بمدد زمنية دائمة.
المدة
Config.Duration = {
Enabled = true,
Presets = { 30, 60, 120, 180, 360, 720 }, -- دقائق
Default = 120,
AllowPermanent = true,
SelfDefault = 0, -- دقائق؛ 0 = دائم
CleanupInterval = 60, -- ثوانٍ
}- تُعَرض
Presetsكزر واحد لكل إدخال في اللوحة، بالدقائق. حافظ على قصر القائمة. Defaultهو الزر المحدد مسبقاً عندما يقوم المسعف بتدوين ملاحظة عن المريض. يتم استبدال أي مدة لا يتعرف عليها السيرفر بهذه القيمة صمتاً، حتى لا يتمكن العميل المتلاعب من اختراع مؤقته الخاص.- تضيف
AllowPermanentخيار Permanent بجوار الإعدادات المسبقة. - تُستخدم
SelfDefaultللملاحظات التي يكتبها اللاعبون على أنفسهم —0تعني دائم. CleanupIntervalهو عدد المرات التي يقوم فيها السيرفر بمسح الصفوف منتهيّة الصلاحية من قاعدة البيانات ومن statebag الخاص بالجميع. الحد الأدنى المفروض للقيمة هو 10 ثوانٍ.
ضبط Enabled = false يجعل كل ملاحظة دائمة حتى يقوم شخص ما بإزالتها؛ يختفي محدد المدة من اللوحة ولا تبدأ عملية التنظيف أبداً.
الحدود
Config.Limits = {
MaxPerPlayer = 4,
MaxTextLength = 48,
class="hljs-literal">true,
WriteCooldown = 2, -- ثوانٍ بين الكتابات
}يتم تقليم النص، وإزالة الرموز <, >, و ~ منه، وتقليصه إلى MaxTextLength على السيرفر قبل تخزينه، بحيث لا يمكن لأي شيء يكتبه اللاعب أن يعطل العرض.
قراءة الملاحظات من مورد آخر
local list = exports['bupa-syncstatus']:GetStatuses(source)يعيد القائمة المخزنة مؤقتاً لهذا اللاعب: id, bodypart, text, type, severity, locked, expires و remaining. نفس القائمة قابلة للقراءة من جانب العميل من statebag كـ Player(serverId).state.bupaStatuses.