Resource Integration
Base de datos y cache
cold_blipscreator se apoya en una integracion simple con oxmysql:
- Ejecuta
CREATE TABLE IF NOT EXISTS acv_blips. - Hace
SELECT * FROM acv_blipsal iniciar. - Guarda el resultado en
blipsCache. - 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:
onClientResourceStartplayerSpawned
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:
opencloseupdateListescapePressed
Y estos callbacks hacia el cliente:
closesaveBlipupdateBlipdeleteBlip
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