API

Exports, State-Bags und ein Event. Nur der Server entscheidet.

State-Bags

Ob jemand im Dienst ist, liest du ohne Export, auf dem Server und auf jedem Client. Nur der Server schreibt sie. Schreibt ein Client seine eigenen, setzt der Server sie zurück.

Lua
Player(source).state['cs_aduty:duty']     -- the group name while on duty
Player(source).state['cs_aduty:hidden']   -- flying, invisible or spectating
Player(source).state['cs_aduty:frozen']   -- frozen by staff

Client

IsOnDuty

Client
exports.cs_aduty:IsOnDuty()

Gibt zurückboolean

GetGroup

Client
exports.cs_aduty:GetGroup()

Die Gruppe, als die der Spieler im Dienst ist.

Gibt zurückstring | nil

Server

IsOnDuty

Server
exports.cs_aduty:IsOnDuty(source)

Gibt zurückboolean

GetGroup

Server
exports.cs_aduty:GetGroup(source)

Die Gruppe aus Config.Groups, frisch vom Framework gefragt, im Dienst oder nicht.

Gibt zurückstring | nil nil für jemanden, der nicht zum Team gehört

HasPerm

Server
exports.cs_aduty:HasPerm(source, perm)

Ob die Gruppe ein Recht hat. Der Dienst wird nicht gefragt, dafür IsOnDuty dazu nehmen.

Gibt zurückboolean

Beispiel
if exports.cs_aduty:IsOnDuty(src) and exports.cs_aduty:HasPerm(src, 'revive') then ... end

SetDuty

Server
exports.cs_aduty:SetDuty(source, on)

In oder aus dem Dienst, als hätte der Spieler den Befehl getippt. In den Dienst braucht eine Gruppe, das Recht wird nicht gefragt.

Gibt zurückboolean true, wenn der Spieler danach im gewünschten Zustand ist

GetOnDuty

Server
exports.cs_aduty:GetOnDuty()

Gibt zurücktable { source, group, since, name }[], since ist os.time() des Dienstantritts

Events

cs_aduty:dutyChanged

Server
AddEventHandler('cs_aduty:dutyChanged', function(source, onDuty, group) end)

Jemand ging in oder aus dem Dienst, auch durch einen Disconnect.

Beispiel
AddEventHandler('cs_aduty:dutyChanged', function(src, onDuty, group)
    exports.my_hud:SetAdminBadge(src, onDuty and group or nil)
end)

Config.OnDutyStart und Config.OnDutyStop unten in der config.lua laufen auf dem Client dessen, der in oder aus dem Dienst geht. Der Platz für ein eigenes HUD.

Frage offen geblieben?

Schreib uns im Discord. Mit Konsolen-Auszug, Framework und Script-Version ist die erste Antwort meistens schon die Lösung.

Zum Support