Skip to content

İzinler ve Süre

Permissions & Duration

"Self" her zaman oyuncunun kendi bedenini ifade eder. Başka bir oyuncuyu hedefleyen her şey, başka birini düzenlemek olarak değerlendirilir ve yapılandırılmış mesleklerden birini ya da ACE yetkisini gerektirir.

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' } Diğer oyunculara not eklemesine izin verilen meslekler. Boş bırakmak ({}) tamamen devre dışı bırakır.
MinGrade 0 Bu meslekler için gereken minimum kademe (0 = her kademe).
UseAce false Yöneticiler için meslek yerine bir ACE yetkisini de kabul eder.
Ace bupa.syncstatus UseAce aktif olduğunda kontrol edilen ACE nesnesi.
MaxDistance 3.0 Birini incelemek için ne kadar yakın durmanız gerektiği (metre cinsinden). 0 kontrolü devre dışı bırakır.

Bunların her biri, yalnızca panel açıldığında değil; okuma, yazma ve silme işlemlerinin her birinde sunucu tarafında zorunlu kılınır.

Locked medic documentation

Komut dosyasını çalıştırmaya değer kılan seçenek budur.

Option Default Effect
LockStaffNotes true Bir sağlık görevlisinin başkası üzerine koyduğu not kilitlenir. Hasta bunu silemez; süre bittiğinde kendiliğinden kaybolur.
AllowSelfRemove true Oyuncular kendi üzerlerine koydukları notları silebilir mi?
StaffCanRemoveLocked true Yetkili meslekler, süresi dolmadan önce kilitli bir notu kaldırabilir mi? Tamamen değiştirilemez belgeler için kapatın.

Kilitli bir not panelde "Locked by medic" olarak işaretlenir. Clear all ve /statusclear komutları kilitli notları bilerek saklar: sunucu yalnızca çağrıyı yapan kişinin gerçekten kaldırmasına izin verilen satırları siler ve bunun kaç tane olduğunu bildirir.

LockStaffNotes = true ve StaffCanRemoveLocked = false ayarlandığında, hiç kimse bir sağlık görevlisinin notunu kaldıramaz — notu yazan sağlık görevlisi bile. Not yalnızca süresi dolduğunda kaybolur, bu nedenle bunu kalıcı sürelerle birlikte kullanmaktan kaçının.

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, panelde girdi başına dakika cinsinden bir çip olarak gösterilir. Listeyi kısa tutun.
  • Default, bir sağlık görevlisi hastaya not eklediğinde önceden seçili gelen çiptir. Sunucunun tanımadığı bir süre sessizce bu değerle değiştirilir, böylece üzerinde oynanmış bir istemci kendi zamanlayıcısını uyduramaz.
  • AllowPermanent, ön ayarların yanına bir Permanent seçeneği ekler.
  • SelfDefault, oyuncuların kendi üzerlerine yazdığı notlar için kullanılır — 0 kalıcı anlamına gelir.
  • CleanupInterval, sunucunun süresi dolmuş satırları veritabanından ve herkesin statebag'inden ne sıklıkla temizleyeceğini belirler. Zorunlu kılınan minimum değer 10 saniyedir.

Enabled = false olarak ayarlamak, birisi kaldırana kadar her notu kalıcı hale getirir; süre seçici panelden kaybolur ve temizleme iş parçacığı asla başlamaz.

Limits

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

Metin saklanmadan önce sunucuda kırpılır, <, > ve ~ karakterlerinden arındırılır ve MaxTextLength uzunluğuna göre kesilir, böylece bir oyuncunun yazdığı hiçbir şey görselleştirmeyi bozulamaz.

Reading annotations from another resource

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

O oyuncu için önbelleğe alınmış listeyi döndürür: id, bodypart, text, type, severity, locked, expires ve remaining. Aynı liste istemci tarafında statebag üzerinden Player(serverId).state.bupaStatuses olarak okunabilir.