Inicio › Documentación › Personalización · origen_pausemenu
La carpeta custom/ es de código abierto y es el lugar previsto para adaptar el recurso a tu framework y a la lógica de tu servidor. Estos ficheros figuran en escrow_ignore.
custom/
├── client.lua
└── server.luaSendNUIData()Se llama cuando Config.CustomNUIData = true y el jugador abre el menú. Sobrescribe esta función para enviar datos totalmente personalizados a la NUI en lugar de la carga por defecto.
La función debe llamar a SendNUIMessage con al menos la clave action = "OpenMenu". El resto de campos son opcionales y dependen de lo que use tu plantilla NUI.
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 se rellena con el callback de servidor origen_pauseMenu:server:getInfo. Las variables lastInfoUpdated y updateInfo() están definidas en client/main.lua: no las redefinas aquí.
CanBeOpened() → booleanSe llama cada vez que un jugador intenta abrir el menú de pausa. Devuelve false para bloquearlo.
La implementación por defecto lee el indicador interno canOpen, que se puede activar o desactivar desde otros recursos mediante el export SetCanOpen.
local canOpen = true
function CanBeOpened()
return canOpen
end
exports("SetCanOpen", function(value)
canOpen = value
end)getPolice() → numberDevuelve el número de jugadores de servicio en cualquiera de los trabajos listados en Config.PoliceJobs.
Si origen_police está en marcha, delega en exports["origen_police"]:GetPlayersInDuty() para un seguimiento preciso del servicio. Si no, recurre a la consulta nativa del framework de jugadores por trabajo.
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() → numberDevuelve el número total de jugadores conectados al servidor en ese momento.
function getOnlinePlayers()
if Config.Framework == 'esx' or Config.Framework == 'newesx' then
playerCount = #(ESX.GetPlayers())
else
playerCount = #(QBCore.Functions.GetPlayers())
end
return playerCount
end