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.
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.
| Campo | Tipo | Obligatorio | Qué es |
|---|---|---|---|
label | string · number | Sí | Texto principal del aviso. text y title valen como alias. |
id | string · number | No | Identificador estable para actualizarlo o quitarlo luego. Si no lo pones, se asigna uno único. |
key | string · number | No | Tecla que muestra el HUD. Por defecto, Config.DefaultKey. Es solo una etiqueta: no registra ni escucha el control. |
hint | string · number | No | Texto secundario, opcional. |
state | string | No | Estado visual: ok, warn o bad. Si falta o no es válido, se usa ok. |
priority | number | No | Prioridad de aparición: los valores altos van antes. Por defecto, 0. |
duration | number | No | Duració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:
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.
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:
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.
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.
local removed = exports.jex_interactions:hideAll()
has(ref)
Dice si el aviso referenciado está registrado ahora mismo.
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.
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 ejemplomy_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.