Skip to content

अनुमतियाँ और अवधि

Permissions & Duration

"Self" हमेशा खिलाड़ी के अपने शरीर को संदर्भित करता है। किसी अन्य खिलाड़ी पर लक्षित किसी भी चीज़ को किसी अन्य व्यक्ति को संपादित करने के रूप में माना जाता है, और इसके लिए कॉन्फ़िगर किए गए जॉब्स में से किसी एक या ACE की आवश्यकता होती है।

Who may examine another player

config.lua
Config.Permissions = {
    EditOthers = { 'ambulance', 'ems', 'doctor' },
    MinGrade   = 0,
    UseAce     = false,
    Ace        = 'bupa.syncstatus',
    MaxDistance = 3.0,

    LockStaffNotes       = true,
    AllowSelfRemove      = true,
    StaffCanRemoveLocked = true,
}
Option Default Purpose
EditOthers { 'ambulance', 'ems', 'doctor' } अन्य खिलाड़ियों को एनोटेट करने की अनुमति प्राप्त जॉब्स। खाली ({}) इसे पूरी तरह से अक्षम कर देता है।
MinGrade 0 उन जॉब्स के लिए न्यूनतम जॉब ग्रेड (0 = कोई भी ग्रेड)।
UseAce false एडमिन के लिए, जॉब के बजाय ACE अनुमति को भी स्वीकार करें।
Ace bupa.syncstatus UseAce चालू होने पर चेक किया जाने वाला ACE ऑब्जेक्ट।
MaxDistance 3.0 मीटर में, किसी की जाँच करने के लिए आपको कितनी करीब खड़े होना होगा। 0 चेक को अक्षम कर देता है।

इनमें से प्रत्येक को सर्वर पर लागू किया जाता है, हर एक रीड, राइट और रिमूव पर — केवल पैनल खुलने पर ही नहीं।

Locked medic documentation

यह वह विकल्प है जो इस स्क्रिप्ट को उपयोग करने योग्य बनाता है।

Option Default Effect
LockStaffNotes true किसी मेडिक द्वारा किसी अन्य व्यक्ति पर लगाई गई एनोटेशन लॉक होती है। मरीज इसे हटा नहीं सकता; टाइमर समाप्त होने पर यह अपने आप गायब हो जाती है।
AllowSelfRemove true क्या खिलाड़ी अपने ऊपर लगाई गई एनोटेशन को हटा सकते हैं?
StaffCanRemoveLocked true क्या अधिकृत जॉब्स समय समाप्त होने से पहले लॉक किए गए नोट को हटा सकती हैं? वास्तव में अपरिवर्तनीय (immutable) दस्तावेज़ीकरण के लिए बंद करें।

एक लॉक की गई एनोटेशन पैनल में "Locked by medic" के रूप में चिह्नित होती है। Clear all और /statusclear जानबूझकर लॉक किए गए नोट्स को रखते हैं: सर्वर केवल उन पंक्तियों (rows) को हटाता है जिन्हें कॉलर को हटाने की वास्तव में अनुमति है, और रिपोर्ट करता है कि वे कितनी थीं।

LockStaffNotes = true और StaffCanRemoveLocked = false के साथ, कोई भी मेडिक के नोट को नहीं हटा सकता — यहाँ तक कि उस मेडिक को भी अनुमति नहीं है जिसने इसे लिखा था। यह तभी गायब होगा जब इसका टाइमर समाप्त हो जाएगा, इसलिए इसे स्थायी अवधियों (permanent durations) के साथ युग्मित करने से बचें।

Duration

config.lua
Config.Duration = {
    Enabled         = true,
    Presets         = { 30, 60, 120, 180, 360, 720 },  -- minutes
    Default         = 120,
    AllowPermanent  = true,
    SelfDefault     = 0,     -- minutes; 0 = permanent
    CleanupInterval = 60,    -- seconds
}
  • Presets को पैनल में प्रति प्रविष्टि एक चिप के रूप में, मिनटों में रेंडर किया जाता है। सूची को छोटा रखें।
  • Default वह चिप है जो किसी मेडिक द्वारा मरीज को एनोटेट करने पर पहले से चयनित (pre-selected) होती है। जिस अवधि को सर्वर पहचान नहीं पाता है, उसे चुपचाप इस मान से बदल दिया जाता है, ताकि छेड़छाड़ किया गया क्लाइंट अपना खुद का टाइमर न बना सके।
  • AllowPermanent प्रीसेट के बगल में एक Permanent विकल्प जोड़ता है।
  • SelfDefault का उपयोग उन नोट्स के लिए किया जाता है जो खिलाड़ी अपने ऊपर लिखते हैं — 0 का मतलब स्थायी है।
  • CleanupInterval वह अंतराल है जिस पर सर्वर डेटाबेस से और सभी के स्टेटबैग से समाप्त हो चुकी पंक्तियों को साफ़ करता है। न्यूनतम लागू मूल्य 10 सेकंड है।

Enabled = false सेट करने से प्रत्येक एनोटेशन तब तक स्थायी हो जाती है जब तक कोई उसे हटा नहीं देता; अवधि पिकर पैनल से गायब हो जाता है और स्वीप थ्रेड कभी शुरू नहीं होता है।

Limits

config.lua
Config.Limits = {
    MaxPerPlayer   = 4,
    MaxTextLength  = 48,
    class="hljs-literal">true,
    WriteCooldown  = 2,   -- seconds between writes
}

टेक्स्ट को ट्रिम किया जाता है, <, > और ~ को हटाया जाता है, और संग्रहीत होने से पहले सर्वर पर MaxTextLength तक काट दिया जाता है, ताकि खिलाड़ी द्वारा टाइप किया गया कुछ भी रेंडरिंग को न तोड़ सके।

Reading annotations from another resource

server
local list = exports['bupa-syncstatus']:GetStatuses(source)

उस खिलाड़ी के लिए कैश्ड सूची लौटाता है: id, bodypart, text, type, severity, locked, expires और remaining। वही सूची क्लाइंट-साइड पर स्टेटबैग से Player(serverId).state.bupaStatuses के रूप में पढ़ने योग्य है।