Início › Documentação › Personalização · origen_pausemenu

Personalização · origen_pausemenu

A pasta custom/ é de código aberto e é o sítio previsto para adaptar o recurso à tua framework e à lógica do teu servidor. Estes ficheiros constam de escrow_ignore.

text
custom/
├── client.lua
└── server.lua

custom/client.lua

SendNUIData()

É chamada quando Config.CustomNUIData = true e o jogador abre o menu. Substitui esta função para enviar dados totalmente personalizados à NUI em vez da carga por omissão.

A função tem de chamar SendNUIMessage com pelo menos a chave action = "OpenMenu". Os restantes campos são opcionais e dependem do que o teu modelo NUI utilizar.

lua
function SendNUIData()
    -- refresh player info if stale (>10 seconds old)
    if GetGameTimer() - lastInfoUpdated > 10000 then
        updateInfo()
    end
    pInfo = pInfo or {}
 
    SendNUIMessage({
        action       = "OpenMenu",
        usersOnline  = pInfo.usersOnline or 0,
        maxPlayers   = pInfo.maxPlayers or 32,
        name         = pInfo.name or "Loading...",
        job          = pInfo.job or "Loading...",
        cash         = pInfo.cash or 0,
        bank         = pInfo.money or 0,
        discord      = Config.Discord,
        website      = Config.Website,
        twitter      = Config.Twitter,
        instagram    = Config.Instagram,
        youtube      = Config.Youtube,
        PoliceAvailable = pInfo.PoliceAvailable and true or false,
        other        = Config.ExtraData,
    })
end

pInfo é preenchido pelo callback de servidor origen_pauseMenu:server:getInfo. As variáveis lastInfoUpdated e updateInfo() estão definidas em client/main.lua: não as redefinas aqui.


CanBeOpened() → boolean

É chamada sempre que um jogador tenta abrir o menu de pausa. Devolve false para o bloquear.

A implementação por omissão lê o indicador interno canOpen, que pode ser ativado ou desativado a partir de outros recursos através do export SetCanOpen.

lua
local canOpen = true
 
function CanBeOpened()
    return canOpen
end
 
exports("SetCanOpen", function(value)
    canOpen = value
end)

custom/server.lua

getPolice() → number

Devolve o número de jogadores em serviço em qualquer um dos trabalhos listados em Config.PoliceJobs.

Se origen_police estiver em execução, delega em exports["origen_police"]:GetPlayersInDuty() para um acompanhamento preciso do serviço. Caso contrário, recorre à consulta nativa da framework de jogadores por trabalho.

lua
function getPolice()
    if Config.Framework == 'esx' or Config.Framework == 'newesx' then
        Police = ESX.GetExtendedPlayers("job", Config.PoliceJobs[1])
        if GetResourceState("origen_police") ~= "missing" then
            Police = exports["origen_police"]:GetPlayersInDuty(Config.PoliceJobs[1])
        end
    else
        Police = #(QBCore.Functions.GetPlayersOnDuty(Config.PoliceJobs[1]))
    end
    return Police
end

getOnlinePlayers() → number

Devolve o número total de jogadores ligados ao servidor nesse momento.

lua
function getOnlinePlayers()
    if Config.Framework == 'esx' or Config.Framework == 'newesx' then
        playerCount = #(ESX.GetPlayers())
    else
        playerCount = #(QBCore.Functions.GetPlayers())
    end
    return playerCount
end