DRS Scoreboard
Lista de jogadores moderna, com tudo o que os jogadores veem escolhido no config:
- jogadores online com pesquisa e ordenação (ID, nome, ping);
- polícia e serviços de serviço (INEM, mecânicos, táxi, staff…), com o número ou só Online/Offline;
- atividades ilegais com o estado: disponível, a decorrer ou faltam polícias;
- o teu ID, ping e tempo de sessão;
- IDs (ou UID) por cima das cabeças enquanto está aberta;
- vista de staff com o nome da personagem, o emprego e o UID de todos.
Funciona com Qbox, QBCore, ESX ou sem framework, e com os eventos dos assaltos do QBCore.
#Requisitos
Nada obrigatório.
#Instalação
- Coloca
drs_scoreboardemresources. - Desliga o
qb-scoreboard. Os assaltos do QBCore continuam a funcionar, porque o DRS Scoreboard ouve o mesmo evento (qb-scoreboard:server:SetActivityBusy). - Adiciona
ensure drs_scoreboardaoserver.cfg. - Staff: os grupos de
Config.StaffGroupsou:
add_ace group.admin drs.scoreboard allowAbre com HOME (o jogador pode mudar em Definições → Teclas → FiveM) ou /scoreboard.
#O que os jogadores veem
| Opção | O que faz |
|---|---|
Config.PlayerList.enabled | false esconde a lista (fica o total, os serviços e as atividades) |
showId | ID do servidor |
showUid | ID único permanente (Config.UID) |
name | 'character' (nome da personagem), 'steam' (nome do FiveM) ou 'none' |
showJob / showPing | Emprego e ping de cada jogador |
staffSeesAll | A staff vê sempre tudo |
#UID
Config.UID usa o export de um recurso (por defeito RufiUniqueID → GetUIDfromID). Se esse recurso não estiver ligado, usa o citizenid (QBCore/Qbox) ou o identifier (ESX).
#Polícia e atividades
Config.Police define os empregos da polícia, se só conta quem está de serviço e se mostra o número. Em Config.Activities cada atividade tem os polícias necessários (minPolice).
#Para programadores
exports.drs_scoreboard:SetActivityBusy('bankrobbery', true)
exports.drs_scoreboard:IsActivityBusy('bankrobbery')
TriggerEvent('qb-scoreboard:server:SetActivityBusy', 'storerobbery', false) -- o mesmo evento do qb-scoreboard#Configuração completa
-- DRS Scoreboard — configuração / configuration
Config = {}
Config.Locale = 'pt' -- 'pt' | 'en'
Config.Framework = 'auto' -- 'auto' | 'qbx' | 'qb' | 'esx' | 'none'
Config.StaffGroups = { 'god', 'admin', 'superadmin', 'mod' }
Config.Key = 'HOME' -- tecla (o jogador pode mudar) / key (players can rebind)
Config.Command = 'scoreboard'
Config.ServerName = 'O Meu Servidor'
Config.Logo = '' -- URL de uma imagem (vazio = inicial do nome) / image URL (empty = name initial)
Config.Accent = '#7c5cff'
Config.MaxPlayers = GetConvarInt('sv_maxclients', 48)
Config.RefreshSeconds = 3 -- de quanto em quanto tempo o servidor refaz a lista / how often the server rebuilds the list
-- ---------------------------------------------------------------- lista de jogadores / player list
-- O que os jogadores normais veem. A staff vê sempre tudo se staffSeesAll = true.
-- What regular players see. Staff always see everything when staffSeesAll = true.
Config.PlayerList = {
enabled = true, -- false = os jogadores não veem a lista (só serviços e atividades) / players don't see the list
showId = true, -- ID do servidor / server ID
showUid = false, -- ID único permanente (ver Config.UID) / permanent unique ID (see Config.UID)
name = 'steam', -- 'character' (nome da personagem) | 'steam' (nome do FiveM) | 'none' (sem nome)
showJob = false, -- emprego de cada jogador / each player's job
showPing = true,
staffSeesAll = true, -- a staff vê a lista, os nomes, o UID e os empregos / staff see list, names, UID and jobs
}
-- De onde vem o UID / where the UID comes from:
-- resource + export (ex.: RufiUniqueID GetUIDfromID). Se esse recurso não estiver ligado usa o fallback:
-- 'citizenid' (QBCore/Qbox citizenid, ESX identifier) ou 'none'.
Config.UID = { resource = 'RufiUniqueID', export = 'GetUIDfromID', fallback = 'citizenid' }
-- ---------------------------------------------------------------- polícia / police
Config.Police = {
jobs = { 'police', 'sheriff', 'bcso', 'sasp', 'lspd' },
onlyDuty = true, -- só conta quem está de serviço / only counts on-duty officers
showCount = true, -- mostrar o número de polícias; false = só "Online/Offline" / false = only "Online/Offline"
label = 'job_police', icon = 'shield', color = '#3b82f6',
}
-- IDs por cima das cabeças enquanto o scoreboard está aberto
-- IDs above heads while the scoreboard is open
Config.OverheadIds = { enabled = true, distance = 20.0 }
-- Outros serviços (a polícia aparece sempre em primeiro, vinda de Config.Police).
-- onlyDuty = só conta quem está de serviço. showCount = false mostra só "Online/Offline".
-- Other services (police always comes first, from Config.Police).
Config.Jobs = {
{ label = 'job_ems', jobs = { 'ambulance', 'ems', 'doctor' }, icon = 'cross', color = '#ef4444', onlyDuty = true, showCount = true },
{ label = 'job_mechanic', jobs = { 'mechanic', 'bennys', 'lscustoms' }, icon = 'wrench', color = '#f97316', onlyDuty = true, showCount = true },
{ label = 'job_taxi', jobs = { 'taxi' }, icon = 'car', color = '#facc15', onlyDuty = true, showCount = true },
{ label = 'job_realestate', jobs = { 'realestate' }, icon = 'home', color = '#22c55e', onlyDuty = false, showCount = true },
{ label = 'job_staff', staff = true, icon = 'star', color = '#a78bfa', showCount = true },
}
-- ---------------------------------------------------------------- atividades / activities
-- Atividades ilegais e quantos polícias (de serviço) são precisos para cada uma.
-- O estado "a decorrer" vem dos scripts de assaltos (evento qb-scoreboard:server:SetActivityBusy, que os
-- assaltos do QBCore já usam, ou o export SetActivityBusy).
-- Illegal activities and how many (on-duty) officers each one needs.
Config.ShowActivities = true
Config.Activities = {
{ id = 'storerobbery', label = 'act_store', minPolice = 1, icon = 'store' },
{ id = 'houserobbery', label = 'act_house', minPolice = 1, icon = 'home' },
{ id = 'jewellery', label = 'act_jewel', minPolice = 2, icon = 'gem' },
{ id = 'bankrobbery', label = 'act_bank', minPolice = 3, icon = 'bank' },
{ id = 'paleto', label = 'act_paleto', minPolice = 4, icon = 'bank' },
{ id = 'pacific', label = 'act_pacific', minPolice = 5, icon = 'vault' },
}