Inicio › Documentación › Personalización · origen_pausemenu

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.

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

custom/client.lua

SendNUIData()

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.

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 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() → boolean

Se 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.

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

custom/server.lua

getPolice() → number

Devuelve 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.

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

Devuelve el número total de jugadores conectados al servidor en ese 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