Exports de cliente

Todos los exports principales son de cliente: llámalos desde un script de cliente, nunca desde el servidor.

show(data)

Crea un aviso. Si el recurso que llama ya tiene uno con ese id, se sustituye por los datos nuevos en vez de duplicarse.

client.lua

local handle = exports.jex_interactions:show({
    id       = 'vehicle_storage',
    key      = 'E',
    label    = 'Store vehicle',
    hint     = 'Backspace to cancel',
    state    = 'ok',
    priority = 10,
    duration = 2500,
})

Devuelve el handle completo del aviso, o nil si los datos no son válidos.

CampoTipoObligatorioQué es
labelstring · numberSíTexto principal del aviso. text y title valen como alias.
idstring · numberNoIdentificador estable para actualizarlo o quitarlo luego. Si no lo pones, se asigna uno único.
keystring · numberNoTecla que muestra el HUD. Por defecto, Config.DefaultKey. Es solo una etiqueta: no registra ni escucha el control.
hintstring · numberNoTexto secundario, opcional.
statestringNoEstado visual: ok, warn o bad. Si falta o no es válido, se usa ok.
prioritynumberNoPrioridad de aparición: los valores altos van antes. Por defecto, 0.
durationnumberNoDuración en milisegundos. Un valor positivo lo retira solo. Sin él, o con 0, el aviso es permanente.

Los límites de entrada son 48 bytes para id, 8 para key y 96 para label y hint. Donde se espera texto, no vale un valor vacío.

Si creas un aviso sin id propio, guarda el handle que devuelve:

client.lua

local handle = exports.jex_interactions:show({
    key      = 'G',
    label    = 'Maletero abierto',
    duration = 2000,
})

if handle then
    -- El mismo handle vale para has, update o hide.
end

update(ref, patch)

Cambia solo los campos que le pases de un aviso que ya existe. Devuelve true si lo encontró y lo actualizó, y false si no. Nunca crea uno que falte.

client.lua

local updated = exports.jex_interactions:update('vehicle_storage', {
    label    = 'Aqui no puedes guardar el vehiculo',
    state    = 'bad',
    priority = 20,
})

Lo que no venga en patch se queda como estaba. Los alias text y title también actualizan el texto principal. Para quitar el texto secundario, pasa hint = false:

client.lua

exports.jex_interactions:update('vehicle_storage', { hint = false })

Si actualizas un aviso con duración y no incluyes duration, conserva la hora de caducidad que tenía. Pon duration = 0 para hacerlo permanente, o una duración nueva para reiniciar la cuenta.

hide(ref)

Quita un aviso del recurso que llama. Devuelve true si existía.

client.lua

exports.jex_interactions:hide('vehicle_storage')

hideAll()

Quita todos los avisos del recurso que llama y devuelve cuántos ha quitado. Los de otros recursos no se tocan.

client.lua

local removed = exports.jex_interactions:hideAll()

has(ref)

Dice si el aviso referenciado está registrado ahora mismo.

client.lua

if exports.jex_interactions:has('vehicle_storage') then
    exports.jex_interactions:update('vehicle_storage', { state = 'warn' })
end

active()

Devuelve la lista de handles completos visibles, en orden de aparición. Como mucho trae Config.MaxVisible elementos.

client.lua

local handles = exports.jex_interactions:active()

for index, handle in ipairs(handles) do
    print(index, handle)
end

Referencias y propiedad

update, hide y has aceptan las dos formas:

  • El id corto que le pusiste tú, por ejemplo vehicle_storage.
  • El handle completo que devolvió show, por ejemplo my_garage:vehicle_storage.

Los ids son propios de cada recurso, así que dos recursos distintos pueden usar el mismo id corto sin pisarse. En uso normal, cada recurso gestiona solo sus avisos y le basta con ids cortos.