Accueil › Documentation › Personnalisation · origen_pausemenu
Le dossier custom/ est open source et c’est l’endroit prévu pour adapter la ressource à ton framework et à la logique de ton serveur. Ces fichiers figurent dans escrow_ignore.
custom/
├── client.lua
└── server.luaSendNUIData()Appelée quand Config.CustomNUIData = true et que le joueur ouvre le menu. Surcharge cette fonction pour envoyer des données entièrement personnalisées à la NUI à la place de la charge par défaut.
La fonction doit appeler SendNUIMessage avec au moins la clé action = "OpenMenu". Tous les autres champs sont facultatifs et dépendent de ce qu’utilise ton modèle 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 est alimenté par le callback serveur origen_pauseMenu:server:getInfo. Les variables lastInfoUpdated et updateInfo() sont définies dans client/main.lua : ne les redéfinis pas ici.
CanBeOpened() → booleanAppelée chaque fois qu’un joueur tente d’ouvrir le menu pause. Renvoie false pour l’en empêcher.
L’implémentation par défaut lit l’indicateur interne canOpen, qui peut être activé ou désactivé depuis d’autres ressources via l’export SetCanOpen.
local canOpen = true
function CanBeOpened()
return canOpen
end
exports("SetCanOpen", function(value)
canOpen = value
end)getPolice() → numberRenvoie le nombre de joueurs actuellement en service dans l’un des métiers listés dans Config.PoliceJobs.
Si origen_police tourne, elle délègue à exports["origen_police"]:GetPlayersInDuty() pour un suivi précis du service. Sinon, elle se rabat sur la requête native du framework par métier.
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() → numberRenvoie le nombre total de joueurs actuellement connectés au serveur.
function getOnlinePlayers()
if Config.Framework == 'esx' or Config.Framework == 'newesx' then
playerCount = #(ESX.GetPlayers())
else
playerCount = #(QBCore.Functions.GetPlayers())
end
return playerCount
end