Instalación
Esta guía utiliza el paquete de distribución con la interfaz ya compilada. No necesitas Node.js ni recompilar la UI para instalarlo.
Requisitos
| Componente | Cuándo lo necesitas |
|---|---|
oxmysql y una conexión de base de datos operativa | Obligatorio para guardar los datos del recurso. |
| Qbox, QBCore o ESX | Si utilizas su economía y permisos. Puedes conectar otra economía mediante callbacks standalone. |
| Packs de tatuajes | Opcionales. Puedes instalar ninguno, algunos o todos. |
ox_lib | Opcional para el aviso TextUI; existe una alternativa nativa. |
| Sistema de apariencia | Si tu servidor lo utiliza, revisa el bridge de apariencia. |
Los blueprints se comparten mediante códigos. No necesitas añadir un objeto de inventario para utilizar la configuración incluida.
Coloca el recurso
- Descomprime el paquete en una carpeta de recursos de tu servidor.
- En estas guías usamos
cxg-tattooscomo nombre de carpeta. Si tu carpeta se llama de otra forma, utiliza su nombre real en los comandosensureyrestart. - Conserva la estructura suministrada. Comprueba que están
config.lua,shared/tattoos.json,bridge/yui/dist/index.htmljunto con los archivos del paquete. - Configura tu conexión de base de datos y asegúrate de que
oxmysqlarranca correctamente.
Orden de inicio
Ejemplo con Qbox y sin packs externos:
ensure oxmysql
ensure qbx_core
ensure cxg-tattoos
Con QBCore o ESX, sustituye qbx_core por qb-core o es_extended. Inicia tu sistema de apariencia antes del recurso si lo utilizas. Para standalone, configura primero los callbacks de pagos y permisos.
Si tienes packs, inicia únicamente los instalados antes del recurso. Por ejemplo:
ensure oxmysql
ensure qbx_core
ensure xgc_TattooClasic
ensure xgc_TattooGangs
ensure cxg-tattoos
No añadas líneas ensure para packs que no tengas. Las fuentes predeterminadas pueden permanecer en Config.TattooCatalog.sources: los packs que no estén iniciados se omiten.
Primer arranque
El recurso prepara automáticamente su almacenamiento. No necesitas importar manualmente un esquema para una instalación nueva.
Antes de probarlo, revisa en config.lua:
Config.Locale: idioma global.Config.Purchases: economía y cuentas de cobro.Config.Permissions: acceso administrativo.Config.Identity: sistema de identidades del servidor e identificador utilizado para guardar y recuperar los datos del jugador. Consulta Sistema de identidades.Config.Shops: ubicaciones iniciales de las tiendas.
Acércate a una tienda configurada y utiliza su interacción. Comprueba el catálogo, una previsualización y una compra con un personaje de prueba. Vuelve a cargar el personaje para comprobar que conserva el tatuaje.
El comando administrativo incluido se configura en Config.AdminCommand; su nombre inicial es /tattooadmin. Revisa permisos y pagos antes de utilizarlo.
Aplicar cambios
Después de modificar config.lua o un bridge, guarda el archivo y reinicia el recurso:
restart cxg-tattoos
Las fuentes de catálogo se vuelven a leer al iniciar y pueden sincronizarse desde el panel administrativo. Los ajustes guardados desde ese panel se conservan; revisa configuración y catálogo antes de esperar que un valor del archivo los reemplace.
Problemas frecuentes
| Síntoma | Qué comprobar |
|---|---|
| El recurso no inicia | Que oxmysql esté iniciado, la conexión funcione y el paquete esté completo. |
| Falta un pack en la tienda | Que su recurso esté iniciado, enabled no sea false y la ruta JSON coincida con la del pack. |
| La interfaz aparece vacía | Que ui/dist/index.html y los archivos referenciados de ui/dist/assets/ se hayan copiado juntos. |
| El panel deniega acceso | Config.AdminCommand.permission, bindings de permisos y roles o ACE configurados. |
| Se rechaza el pago | Framework elegido, nombres de recursos, saldo y callbacks standalone, si corresponden. |
| Hay dos interacciones de tatuajes en el mismo lugar | Que otro recurso de apariencia o tiendas no tenga también activa esa ubicación. Mantén un único acceso a la tienda que quieras usar. |
| Un cambio de tienda o nivel no se aplica | Que no exista ya un ajuste guardado desde el panel. Edita allí el valor efectivo. |
Puedes activar temporalmente Config.Debug y Config.Permissions.debug para diagnosticar problemas. Desactívalos al terminar.