Início › Documentação › 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.
custom/
├── client.lua
└── server.luaSendNUIData()É 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.
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,
})
endpInfo é 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.
local canOpen = true
function CanBeOpened()
return canOpen
end
exports("SetCanOpen", function(value)
canOpen = value
end)getPolice() → numberDevolve 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.
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
endgetOnlinePlayers() → numberDevolve o número total de jogadores ligados ao servidor nesse momento.
function getOnlinePlayers()
if Config.Framework == 'esx' or Config.Framework == 'newesx' then
playerCount = #(ESX.GetPlayers())
else
playerCount = #(QBCore.Functions.GetPlayers())
end
return playerCount
end