Skip to main content

Resource Integration

Base de datos y cache

cold_blipscreator se apoya en una integracion simple con oxmysql:

  1. Ejecuta CREATE TABLE IF NOT EXISTS acv_blips.
  2. Hace SELECT * FROM acv_blips al iniciar.
  3. Guarda el resultado en blipsCache.
  4. Reenvia esa cache a los clientes con acv_blips:setBlips.

Esto significa que cualquier cambio externo en SQL no se refleja en juego hasta que reinicies el recurso o ejecutes acv_reload_blips.

Modelo de permisos

No hay integracion con framework para permisos. Todo pasa por ACE:

  • abrir creador
  • crear blip
  • editar blip
  • borrar blip
  • recargar tabla

El gate real es unico:

IsPlayerAceAllowed(source, Config.AcePermission)

Si decides desactivar ACE en config, desaparece toda capa de control.

Integracion con cliente y ciclo de vida

El cliente pide blips en dos momentos automaticos:

  • onClientResourceStart
  • playerSpawned

Con esto el recurso intenta recuperar el estado tanto al iniciar como tras el spawn del jugador.

NUI y sincronizacion

La NUI usa estos mensajes internos:

  • open
  • close
  • updateList
  • escapePressed

Y estos callbacks hacia el cliente:

  • close
  • saveBlip
  • updateBlip
  • deleteBlip

La tabla del creador solo se refresca al jugador que tiene el panel abierto, pero los blips del mapa se resincronizan para toda la sesion.

Namespace interno heredado

Aunque la documentacion lo presente como cold_blipscreator, la implementacion actual mantiene nombres internos heredados:

  • tabla SQL acv_blips
  • eventos acv_blips:*
  • fallback NUI acv_blips_creator
  • logs [ACV_BLIPS]

Si en el futuro renombras esos prefijos, tendras que revisar client/main.lua, server/main.lua y html/app.js.

Lo que no integra esta version

  • no filtra blips por trabajo
  • no usa PlayerData
  • no consulta framework activo
  • no expone exports
  • no usa rutas de migracion ni datos por personaje