İ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.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.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 —0kalı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.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
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.