Oprávnění a Doba trvání
Oprávnění & Doba trvání
"Sám sebe" vždy znamená vlastní tělo hráče. Cokoliv zacíleného na jiného hráče je považováno za úpravu někoho jiného a vyžaduje jednu z nakonfigurovaných jobů nebo ACE.
Kdo může vyšetřit jiného hráče
Config.Permissions = {
EditOthers = { 'ambulance', 'ems', 'doctor' },
MinGrade = 0,
UseAce = false,
Ace = 'bupa.syncstatus',
MaxDistance = 3.0,
LockStaffNotes = true,
AllowSelfRemove = true,
StaffCanRemoveLocked = true,
}| Možnost | Výchozí | Účel |
|---|---|---|
EditOthers |
{ 'ambulance', 'ems', 'doctor' } |
Joby, které mohou přidávat poznámky ostatním hráčům. Prázdná hodnota ({}) to zcela vypne. |
MinGrade |
0 |
Minimální hodnost (grade) pro tyto joby (0 = libovolná hodnost). |
UseAce |
false |
Pro administrátory: povolit také ACE oprávnění namísto jobu. |
Ace |
bupa.syncstatus |
ACE objekt, který se kontroluje, když je UseAce zapnuté. |
MaxDistance |
3.0 |
Jak blízko musíte stát u někoho pro jeho vyšetření, v metrech. 0 kontrolu vypne. |
Každé jedno z těchto pravidel je vynucováno na serveru, při každém jednom čtení, zápisu i odstranění – nejen při otevření panelu.
Uzamčená dokumentace zdravotníků
Toto je možnost, díky které se tento script vyplatí používat.
| Možnost | Výchozí | Účinek |
|---|---|---|
LockStaffNotes |
true |
Poznámka, kterou zdravotník umístí na někoho jiného, je uzamčena. Pacient ji nemůže smazat; po vypršení časovače zmizí sama. |
AllowSelfRemove |
true |
Mohou si hráči odstranit poznámky, které si sami napsali? |
StaffCanRemoveLocked |
true |
Mohou oprávněné joby odstranit uzamčenou poznámku před jejím vypršením? Vypněte pro zcela neměnnou dokumentaci. |
Uzamčená poznámka je v panelu označena jako "Uzamčeno zdravotníkem". Příkazy Clear all a /statusclear záměrně ponechávají uzamčené poznámky: server maže pouze ty řádky, které volající skutečně smí odstranit, a nahlásí, kolik jich bylo.
S nastavením LockStaffNotes = true a StaffCanRemoveLocked = false nemůže poznámku zdravotníka odstranit nikdo – ani sám zdravotník, který ji napsal. Zmizí pouze tehdy, když vyprší její časovač, proto se vyhněte kombinaci s permanentní dobou trvání.
Doba trvání
Config.Duration = {
Enabled = true,
Presets = { 30, 60, 120, 180, 360, 720 }, -- minut
Default = 120,
AllowPermanent = true,
SelfDefault = 0, -- minut; 0 = permanentní
CleanupInterval = 60, -- sekund
}Presetsse v panelu vykreslují jako jedno tlačítko pro každou položku, v minutách. Udržujte seznam krátký.Defaultje předem vybrané tlačítko, když zdravotník anotuje pacienta. Doba trvání, kterou server nerozpozná, je tich nahrazena touto hodnotou, takže manipulovaný klient nemůže vymyslet svůj vlastní časovač.AllowPermanentpřidává vedle předvoleb možnost Permanentní.SelfDefaultse používá pro poznámky, které si hráči píší sami na sebe –0znamená permanentní.CleanupIntervalurčuje, jak často server čistí vypršené řádky z databáze a ze statebagu každého hráče. Minimální vynucená hodnota je 10 sekund.
Nastavení Enabled = false učiní každou poznámku permanentní, dokud ji někdo neodstraní; výběr doby trvání z panelu zmizí a čisticí vlákno se nikdy nespustí.
Limity
Config.Limits = {
MaxPerPlayer = 4,
MaxTextLength = 48,
class="hljs-literal">true,
WriteCooldown = 2, -- sekund mezi zápisy
}Text je na serveru před uložením oříznut, zbaven znaků <, > a ~ a zkrácen na MaxTextLength, takže cokoliv hráč napíše, nemůže rozbít vykreslování.
Čtení poznámek z jiného resource
local list = exports['bupa-syncstatus']:GetStatuses(source)Vrací uložený seznam pro daného hráče: id, bodypart, text, type, severity, locked, expires a remaining. Stejný seznam je čitelný na klientovi ze statebagu jako Player(serverId).state.bupaStatuses.