Skip to content

Exports y eventos

API pública de Cuxial License: exports y eventos para abrir los paneles y gestionar licencias desde otros recursos.

Abre los paneles desde tus propios targets u objetos, y lee, emite, revoca y restaura licencias desde un MDT o cualquier otro recurso.

Exports de cliente ​

openGetCard ​

Abre la tienda de la oficina de licencias, la misma que abre el NPC.

lua
exports.cuxial_license:openGetCard()

openJobManager ​

Abre el panel de emisión. Las tarjetas que emitir, las licencias emitidas y los jugadores cercanos solo se entregan al staff y a los jugadores de authorizedJobs o revokeJobs; limita en tu propio recurso quién llega al export.

lua
exports.cuxial_license:openJobManager(data)
ParámetroTipoDescripción
data.headingstringTítulo del panel.
data.subHeadingstringTexto bajo el título.
data.logostringImagen que se muestra junto al nombre del trabajo.
data.jobNamestringNombre del trabajo que se muestra en el panel.
lua
exports.cuxial_license:openJobManager({
    heading = 'Departamento de Policía',
    subHeading = 'Ventanilla de licencias',
    logo = 'https://example.com/logo.png',
    jobName = 'police',
})

openIdCheck ​

Abre el panel de verificación de identidad. El escaneo solo devuelve datos a los jugadores de authorizedJobs.

lua
exports.cuxial_license:openIdCheck()

openFakeId ​

Abre el generador de identificaciones falsas. Este export es la única forma de abrirlo; limita el acceso en tu propio recurso.

lua
exports.cuxial_license:openFakeId(data)
ParámetroTipoDescripción
data.headingstringTítulo del panel. Opcional.
data.subHeadingstringTexto bajo el título. Opcional.
lua
exports.ox_target:addBoxZone({
    coords = vec3(0.0, 0.0, 0.0),
    size = vec3(1.0, 1.0, 2.0),
    options = {
        {
            label = 'Falsificar un documento',
            onSelect = function()
                exports.cuxial_license:openFakeId({ heading = 'Falsificador' })
            end,
        },
    },
})

Exports de objeto ​

Son los exports a los que apuntan los objetos de inventario. No los llamas tú; los referencias en la definición del objeto, como se ve en Instalación.

ExportObjetoMuestra
cuxial_license.useLicenseCardlicense_card y cualquier nombre de objeto puesto en el diseñadorUna tarjeta emitida por el script
cuxial_license.useFakeIdfake_idUna tarjeta hecha con el generador de identificaciones falsas
cuxial_license.useJobBadgejob_badgeUna placa de trabajo
cuxial_license.useWorkerIdworker_idUna identificación de trabajador

Objetos de placa y de trabajador ​

El script muestra job_badge y worker_id, pero no los entrega. Da el objeto desde tu propio recurso con estos metadatos:

ObjetoMetadatos
job_badgelayout ('portrait' por defecto), heading, logo, playerPhoto, firstname, rank, issueDate, expireDate, isRevoked, colors (body, bodyText, footer, footerText en hex)
worker_idname, sex, job, rank, logo, isRevoked
lua
exports.ox_inventory:AddItem(source, 'worker_id', 1, {
    name = 'John Doe',
    sex = 'Hombre',
    job = 'Mecánico',
    rank = 'Aprendiz',
    logo = 'https://example.com/logo.png',
})

Exports de servidor ​

GetPlayerLicenses ​

Devuelve las licencias de un personaje que no están revocadas. Las vencidas sí se incluyen.

lua
exports.cuxial_license:GetPlayerLicenses(citizenId)
ParámetroTipoDescripción
citizenIdstringIdentificador del personaje.

Devuelve: table[]. Cada entrada tiene id (id de la licencia), type (id del diseño de tarjeta), label (título de la tarjeta), issueDate y expireDate ('YYYY-MM-DD', o vacío cuando no vence). Una tabla vacía si no hay ninguna.

lua
local licenses = exports.cuxial_license:GetPlayerLicenses(citizenId)
for _, license in ipairs(licenses) do
    print(license.label, license.expireDate)
end

GetAvailableCards ​

Devuelve todos los diseños de tarjeta creados en el servidor.

lua
exports.cuxial_license:GetAvailableCards()

Devuelve: table[]. Cada entrada tiene type (id del diseño de tarjeta), label, restrictJob (boolean) y restrictJobNames (lista de nombres de trabajo).

IssueLicense ​

Emite una tarjeta a un personaje, conectado o no. No comprueba permisos: hazlo en tu recurso antes de llamar.

lua
exports.cuxial_license:IssueLicense(issuerSrc, cardId, citizenId, opts)
ParámetroTipoDescripción
issuerSrcnumber | nilId de servidor del jugador que emite. Con nil el emisor queda registrado como SYSTEM.
cardIdstringId del diseño de tarjeta, el type de GetAvailableCards.
citizenIdstringPersonaje que la recibe.
opts.expireDatestringFecha de vencimiento como 'YYYY-MM-DD'. Omítela para que no venza.
opts.metadatatableDatos extra que se guardan con la licencia. playerPhoto (un enlace https) se usa como foto de la tarjeta.

Devuelve: table. { success = true, id = licenseId }, o { success = false, reason = 'invalid_args' } / { success = false, reason = 'card_not_found' }.

Si el personaje está conectado recibe el objeto y una notificación. Si no lo está, solo se guarda el registro, sin objeto. Si el personaje ya tiene esa tarjeta, se actualiza el registro existente y se devuelve su id.

lua
local result = exports.cuxial_license:IssueLicense(source, cardId, citizenId, {
    expireDate = '2027-01-01',
})

if result.success then
    print('Emitida', result.id)
end

RevokeLicense ​

lua
exports.cuxial_license:RevokeLicense(licenseId)
ParámetroTipoDescripción
licenseIdstringEl id de GetPlayerLicenses o de IssueLicense.

Devuelve: boolean. true cuando la licencia se revocó; false si no existe o ya estaba revocada.

RestoreLicense ​

lua
exports.cuxial_license:RestoreLicense(licenseId)

Devuelve: boolean. true cuando una licencia revocada vuelve a estar activa.

GetCardTemplate ​

Devuelve el diseño de una tarjeta con los campos en blanco, para un recurso que quiera dibujar la tarjeta y rellenarla por su cuenta.

lua
exports.cuxial_license:GetCardTemplate(query)
ParámetroTipoDescripción
query.idstringId del diseño de tarjeta.
query.itemstringAlternativa a id: la primera tarjeta cuyo nombre de objeto sea este.

Devuelve: table | nil. id, display (formato, colores, logo, título, pie y la lista de campos) y fields (las claves con las que se puede rellenar una tarjeta: first_name, last_name, citizenid, birthdate, gender, nationality, issue_date, expiry_date). nil cuando ninguna tarjeta coincide.

lua
local template = exports.cuxial_license:GetCardTemplate({ item = 'license_card' })

Eventos ​

cuxial_license:client:openPanel ​

Abre un panel a un jugador desde el servidor.

lua
TriggerClientEvent('cuxial_license:client:openPanel', source, panel, data)
ParámetroTipoDescripción
panelstring'admin' (gestión), 'purchase' (tienda), 'manager' (emisión), 'idcheck' (verificación) o 'fakeid' (generador de identificaciones falsas).
datatableLa misma tabla que el export de cliente equivalente. Para 'idcheck', { scanId = serverId } escanea a ese jugador al abrir.
lua
TriggerClientEvent('cuxial_license:client:openPanel', source, 'idcheck', { scanId = targetId })

Abrir un panel no da derechos extra. Cada acción de dentro se vuelve a comprobar en el servidor contra admin.permission y authorizedJobs.

© Cuxial