DRS Scoreboard

v2.0.6 drs_scoreboard Grátis
Ver na loja

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

  1. Coloca drs_scoreboard em resources.
  2. Desliga o qb-scoreboard. Os assaltos do QBCore continuam a funcionar, porque o DRS Scoreboard ouve o mesmo evento (qb-scoreboard:server:SetActivityBusy).
  3. Adiciona ensure drs_scoreboard ao server.cfg.
  4. Staff: os grupos de Config.StaffGroups ou:
server.cfg
add_ace group.admin drs.scoreboard allow

Abre com HOME (o jogador pode mudar em Definições → Teclas → FiveM) ou /scoreboard.

#O que os jogadores veem

OpçãoO que faz
Config.PlayerList.enabledfalse esconde a lista (fica o total, os serviços e as atividades)
showIdID do servidor
showUidID único permanente (Config.UID)
name'character' (nome da personagem), 'steam' (nome do FiveM) ou 'none'
showJob / showPingEmprego e ping de cada jogador
staffSeesAllA 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

servidor
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

config.lua
-- 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' },
}