API para desarrolladores
Exports, eventos, Bridge y entrega de recompensas personalizada
Para tus integraciones usa los archivos abiertos client/cl_custom.lua y server/sv_custom.lua. No están cifrados y se cargan después del núcleo del recurso.
Exports (cliente)
OpenPauseMenu
Abre el menú. Si ya está abierto, lo cierra.
exports['EN-PausaMenu']:OpenPauseMenu()IsOpen
Devuelve true si el menú está abierto.
if exports['EN-PausaMenu']:IsOpen() then
-- el jugador está en el menú de pausa
endEventos (cliente)
| Evento | Parámetros | Cuándo se lanza |
|---|---|---|
EN-PausaMenu:client:opened | — | El menú se abrió. |
EN-PausaMenu:client:closed | — | El jugador cerró el menú. |
EN-PausaMenu:client:onButton | button | Se pulsó un botón que sale del menú. |
Valores de button:
| Valor | Significado |
|---|---|
'map' | Abrió el mapa. |
'settings' | Abrió los ajustes de GTA. |
'report' | Abrió los reportes. |
'store' | Abrió la tablet VIP. |
'report:unavailable' | Pulsó Reportes, pero Config.ReportResource no está iniciado. |
'store:unavailable' | No se pudo abrir la tablet VIP. |
AddEventHandler('EN-PausaMenu:client:opened', function()
-- ocultar tu HUD
exports['mi_hud']:SetVisible(false)
end)
AddEventHandler('EN-PausaMenu:client:closed', function()
exports['mi_hud']:SetVisible(true)
end)Bridge (servidor)
server/sv_custom.lua tiene acceso a Bridge, una API común para ESX, QBCore y Qbox:
| Función | Devuelve |
|---|---|
Bridge.name | 'esx', 'qbcore' o 'qbox' |
Bridge.GetPlayer(src) | El objeto de jugador del framework |
Bridge.GetName(src) | Nombre del personaje |
Bridge.GetIdentifier(src) | identifier (ESX) o citizenid (QBCore/Qbox) |
Bridge.GetJob(src) | { name, label, grade, gradeLabel, salary, onduty } |
Bridge.SetJob(src, name, grade) | true si se cambió |
Bridge.AddMoney(src, account, amount) | true si se entregó |
Bridge.AddItem(src, item, amount) | true si se entregó |
Bridge.IsStaff(src) | true si pertenece a ServerConfig.StaffGroups |
Entrega de recompensas personalizada
Define ServerConfig.GiveTimeReward en server/sv_custom.lua para sustituir la entrega de todos los premios de la recompensa por tiempo:
ServerConfig.GiveTimeReward = function(src, reward)
-- reward = la entrada de ServerConfig.TimeReward.Rewards que ganó el jugador
if reward.type == 'item' then
return exports['mi_inventario']:AddItem(src, reward.item, reward.amount)
end
return Bridge.AddMoney(src, 'bank', reward.amount or 0)
endDevuelve true si se entregó bien. Si devuelve false o da error, no se anuncia el ganador y en la consola aparece no se pudo entregar "<premio>".
