Documentación de Bolso de ropa
OV Bolso de Ropa
Un bolso que guarda hasta 10 conjuntos de ropa dentro del propio ítem y permite cambiarse en cualquier lugar, con animaciones y recordando lo que el jugador lleva puesto.
Que hace
OV Bolso de Ropa añade un ítem de ox_inventory (por defecto ov_outfitbag). Al usarlo, el personaje deja el bolso en el suelo y se abre un panel a un lado de la pantalla.
- Guardar conjuntos: el jugador le pone un nombre (hasta 24 caracteres) y guarda lo que lleva puesto. Se guardan 15 piezas: gorra, lentes, máscara, oído, collar, chaqueta, camiseta, chaleco, brazos, pulsera, reloj, mochila, placa, pantalón y zapatos.
- Hasta 10 conjuntos por bolso (
Config.MaxOutfits). - Ponerse un conjunto completo o solo una pieza de él, con animación.
- Quitarse el conjunto entero o una sola pieza (queda la prenda "vacía" estándar según el género).
- Volver a la ropa de siempre: borra lo que el jugador se puso con el bolso y recarga su apariencia base.
- Borrar un conjunto.
- Los conjuntos viajan dentro del ítem (metadatos de
ox_inventory): si el jugador entrega el bolso, entrega los conjuntos con él. - Recuerda lo puesto: lo que el jugador lleva puesto con el bolso se guarda en base de datos y se vuelve a aplicar al entrar al servidor, sin modificar la apariencia base del personaje.
- Si el jugador se aleja más de 6 metros del bolso, este se recoge y el panel se cierra.
Requisitos
Dependencias declaradas en el fxmanifest.lua:
ox_libox_inventoryoxmysql
Además, el código usa:
qb-core(para obtener elcitizeniddel jugador y detectar cuando carga su personaje).illenium-appearance: el recurso escucha sus eventos (illenium-appearance:client:reloadSkinyillenium-appearance:server:saveAppearance) y lo usa para volver a la ropa base. No está declarado como dependencia, pero el botón "volver a mi ropa de siempre" se apoya en él.
Lua 5.4 y base de datos MySQL o MariaDB con oxmysql.
Instalacion
- Descarga el recurso del Portal de Cfx.re con la cuenta Cfx con la que lo compraste. Viene protegido con Asset Escrow de Cfx.re y funciona solo en servidores de tu cuenta.
- Copia la carpeta
ov_outfitbagenresources. - Define el ítem en
ox_inventory(data/items.lua). El paquete no modifica tu inventario. El nombre por defecto esov_outfitbag(se cambia enConfig.Item) y debe usar el exportov_outfitbag.useBagcomo acción de uso. Ejemplo:
['ov_outfitbag'] = {
label = 'Bolso de ropa',
weight = 1000,
stack = false,
close = true,
client = { export = 'ov_outfitbag.useBag' },
},
Ajusta el peso y la imagen del ítem a tu servidor.
- Añade en
server.cfg, después de las dependencias:
ensure ox_lib
ensure oxmysql
ensure ox_inventory
ensure ov_outfitbag
- Base de datos: la tabla
ov_outfitbag_wornse crea sola al arrancar (oxmysql). El recurso incluyesql/install.sqlsolo como referencia por si prefieres crearla a mano. Los conjuntos guardados no usan esta tabla: van en los metadatos del ítem. - Reinicia el servidor.
Protección y edición: según el fxmanifest.lua, quedan sin cifrar (escrow_ignore) shared/config.lua y la carpeta web/ (interfaz). El resto del código está cifrado. El recurso no lee convars del server.cfg ni usa permisos ACE.
Configuracion
Se edita en shared/config.lua.
| Clave | Valor por defecto | Para qué sirve |
|---|---|---|
Config.Item | 'ov_outfitbag' | Nombre del ítem del bolso en ox_inventory. |
Config.MaxOutfits | 10 | Conjuntos máximos por bolso. |
Config.MaxLabel | 24 | Largo máximo del nombre de un conjunto. |
Config.Props | prop_cs_duffel_01, prop_big_bag_01, prop_ld_case_01 | Modelos de bolso que se colocan en el suelo. |
Config.PlaceForward | 0.85 | Distancia delante del jugador a la que se deja el bolso. |
Config.CloseDistance | 6.0 | Distancia a la que el bolso se recoge y el panel se cierra. |
Config.WornDelayMs | 7000 | Espera tras cargar el personaje antes de aplicar la ropa recordada. |
Config.ReloadDelayMs | 2500 | Espera tras recargar la apariencia antes de reaplicar la ropa recordada. |
Config.Components / Config.Props_ | índices de componentes y accesorios del juego | Qué piezas se guardan y a qué componente corresponden. |
Config.EmptyDrawable | prendas vacías por pieza | Valor que se considera "sin prenda". |
Config.Off | male / female | Prenda estándar que queda al quitarse cada pieza, por género. |
Config.Order / Config.Labels | 15 piezas con nombre en español | Orden y etiqueta de las piezas en el panel. |
Config.Anim | animaciones por pieza | Diccionario, clip y duración (ms) de las animaciones. |
Config.Text | textos en español | Mensajes que ve el jugador. |
Config.Debug | false | Modo de depuración. |
Los iconos del panel están en web/img/ y son editables.
Comandos y permisos
Este recurso no registra comandos, teclas ni permisos ACE. Se usa exclusivamente desde el ítem.
- Export de cliente (para
ox_inventory):ov_outfitbag.useBag, acción de uso del ítem. - Eventos internos:
ov_outfitbag:close,ov_outfitbag:saveWorn. Están pensados para uso interno del recurso. - Eventos que escucha:
QBCore:Client:OnPlayerLoaded(aplica la ropa recordada),illenium-appearance:client:reloadSkin(reaplica la ropa recordada tras recargar la apariencia) eillenium-appearance:server:saveAppearance(descarta la ropa recordada cuando el jugador guarda su apariencia en una tienda de ropa o peluquería).
Como se usa
- El jugador usa el ítem desde su inventario (no se puede dentro de un vehículo ni estando muerto). El personaje deja el bolso en el suelo con una animación.
- En el panel:
- Guardar: escribe un nombre y guarda la ropa que lleva puesta.
- Ponerse: elige un conjunto y pulsa para vestirlo completo, o elige una sola pieza.
- Quitarse: quita el conjunto entero o una pieza.
- Borrar: elimina un conjunto.
- Volver a mi ropa de siempre: borra la ropa recordada y recarga la apariencia base.
- Al alejarse más de 6 metros, el bolso se recoge y el panel se cierra.
Para administradores
- Para cambiar cuántos conjuntos admite un bolso, edita
Config.MaxOutfits. - Para cambiar el aspecto del bolso en el suelo, cambia los modelos de
Config.Propspor modelos válidos del juego. - Si usas un sistema de apariencia distinto de
illenium-appearance, la función de "volver a mi ropa de siempre" y el descarte de la ropa recordada al guardar la apariencia dependen de los eventos de ese sistema; consulta el archivo de configuración y el código visible para adaptarlos. - Las prendas "vacías" que quedan al quitarse una pieza se definen en
Config.Off(por género): ajústalas si tu servidor usa otras prendas base. - Para ver errores, revisa la consola del servidor y la del cliente (F8).
- La tabla
ov_outfitbag_wornguarda una fila por jugador (citizenid) con la ropa recordada.
Preguntas frecuentes
¿Funciona con otro sistema de ropa distinto de illenium-appearance? Los conjuntos se aplican directamente sobre el personaje, así que se pueden guardar y ponerse con otros sistemas, pero el botón de volver a la ropa base y el descarte al guardar apariencia usan eventos de illenium-appearance.
¿Dónde se guardan los conjuntos? Dentro del ítem (metadatos de ox_inventory). Si el jugador pierde o entrega el bolso, los conjuntos van con él.
¿Necesito importar un SQL? No. La tabla ov_outfitbag_worn se crea sola.
¿Cómo cambio el máximo de conjuntos? Config.MaxOutfits en shared/config.lua.
¿Por qué mi personaje recupera la ropa del bolso al conectarse? Es una función del recurso: recuerda lo que el jugador llevaba puesto con el bolso. Para borrarla, el jugador usa "volver a mi ropa de siempre", o se descarta sola al guardar su apariencia en una tienda de ropa.
¿Puedo usar mis propios iconos? Sí, la interfaz (web/) y sus imágenes no están cifradas.
Actualizaciones y soporte
Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Conserva tu shared/config.lua al actualizar. Para soporte, usa el Discord de la tienda: [enlace de soporte].
