Documentación de Mochilas con candado y GPS
OV Mochilas
Mochilas con inventario propio por mochila, candado con clave o huella, GPS, tiendas, casilleros y registro policial. Incluye ov_mohilas, la ropa y los modelos que hacen visible la mochila en la espalda del personaje.
Que hace
Cada mochila es un ítem de ox_inventory con su propio inventario (un stash independiente). El inventario viaja con el ítem: si la mochila se entrega o se tira, su contenido va con ella.
- Tres tallas activas (pequeña, mediana, grande) y tres "mochilas especiales" que nacen apagadas y se activan desde el menú de administración.
- Diseños por talla para personaje hombre y mujer, que se eligen al comprar. Para el personaje de cada género se muestra el diseño que corresponda; si no existe para ese género, no se ofrece.
- Mochila visible en la espalda como prenda de ropa (con
ov_mohilas) o, si no se encuentra, como objeto pegado al cuerpo. - Candado con clave de 4 a 6 números (se guarda cifrada) y candado de huella (solo el dueño abre). Tras 5 fallos la mochila se bloquea 300 segundos y el dueño recibe un aviso.
- Forzar el candado con una multiherramienta mediante un minijuego de tiempo (no se puede forzar el de huella por defecto).
- GPS: quien instala el módulo puede rastrear la mochila.
- Tiendas de mochilas (NPC) y casilleros para guardar mochilas enteras, colocados por el staff desde el juego.
- Registro policial de la mochila de un jugador esposado.
- Peso que ralentiza al jugador (apagado por defecto).
- Menú de administración para inspeccionar mochilas, quitar candados, colocar tiendas y casilleros, y editar el catálogo.
- Registro de acciones en base de datos.
ov_mohilas es un recurso de ropa para personajes freemode (hombre y mujer, GTA V Legacy) que define la colección de ropa ovmochilamen con sus modelos y texturas.
Requisitos
Dependencias declaradas en el fxmanifest.lua de ov_mochila:
ox_libox_inventoryoxmysql
Además, el código usa:
qb-core(identificador del ciudadano, trabajo y estado de servicio de la policía, dinero de la tienda).ov_mohilas(incluido en el producto) para que la mochila se vea como ropa. Si no está iniciado, el juego no encuentra la ropa y se usa el objeto en la espalda.- Opcional:
ov_tienda. Si está iniciado, hablar con el NPC de mochilas abre esa tienda en lugar del menú del juego. - Opcional: un sistema de esposas que marque al jugador con
metadata.ishandcuffed/isHandcuffedo con el estadoovTied,isCuffedocuffed(para el registro policial).
Lua 5.4. Base de datos MySQL o MariaDB con oxmysql.
Instalacion
- Descarga los recursos del Portal de Cfx.re con la cuenta Cfx con la que compraste el producto.
ov_mochilayov_mohilasvienen protegidos con Asset Escrow de Cfx.re y funcionan solo en servidores de tu cuenta. - Copia las carpetas
ov_mochilayov_mohilasenresources. - Define los ítems en
ox_inventory(data/items.lua). El paquete no modifica tu inventario. Los nombres que usa por defecto son:ov_mochila_1,ov_mochila_2,ov_mochila_3,ov_mochila_custom_1,ov_mochila_custom_2,ov_mochila_custom_3,ov_candado,ov_candado_huella,ov_gps_moduloyov_multiherramienta. Las mochilas deben usar el exportov_mochila.useBagcomo acción de uso y no deben apilarse. Ejemplo de una mochila:
['ov_mochila_1'] = {
label = 'Mochila pequeña',
weight = 600,
stack = false,
close = true,
client = { export = 'ov_mochila.useBag' },
},
Usa las imágenes de ítem que prefieras en la carpeta de imágenes de ox_inventory. Al arrancar, el recurso imprime en la consola Faltan estos items en ox_inventory/data/items.lua: ... si falta alguno.
- Añade en
server.cfg, después de las dependencias:
ensure ox_lib
ensure oxmysql
ensure ox_inventory
ensure ov_mohilas
ensure ov_mochila
add_ace group.admin ov_mochila.admin allow
- Base de datos: las tablas se crean solas al arrancar (necesita
oxmysql). El recurso incluyesql/install.sqlsolo como referencia, por si prefieres crearlas a mano. Tablas:ov_mochila_bags,ov_mochila_log,ov_mochila_shops,ov_mochila_lockers,ov_mochila_locker_itemsyov_mochila_settings. - Reinicia el servidor por completo (la ropa nueva del jugador necesita que el cliente la cargue de nuevo).
Protección y edición: según el fxmanifest.lua, shared/config.lua y la carpeta web/ quedan sin cifrar (escrow_ignore); el resto del código está cifrado. ov_mohilas solo contiene datos de ropa y modelos. El recurso no lee convars de server.cfg.
Configuracion
Se edita en shared/config.lua.
| Clave | Valor por defecto | Para qué sirve |
|---|---|---|
Config.Backpacks | 3 activas + 3 apagadas | Catálogo: label, slots, weight (kg), itemWeight (g), enabled, prop y cloth. |
ov_mochila_1 | 24 ranuras / 50 kg | Mochila pequeña. |
ov_mochila_2 | 40 ranuras / 100 kg | Mochila mediana. |
ov_mochila_3 | 60 ranuras / 200 kg | Mochila grande. |
Config.Designs | 2 / 3 / 1 diseños | Diseños que se eligen al comprar, por talla y género (index y texture de la colección ovmochilamen). |
Config.ClothBackpacks | true | Muestra la mochila como ropa (ov_mohilas) en lugar de un objeto. |
Config.CustomModels | false | Usa modelos propios de la carpeta stream/ en lugar del objeto. |
Config.Items | ov_candado, ov_candado_huella, ov_gps_modulo, ov_multiherramienta | Nombres de ítem de los accesorios. |
Config.OneBagOnly | false | true impide llevar más de una mochila. |
Config.Blacklist | {} | Ítems que no se pueden guardar dentro de una mochila (las mochilas y los candados nunca entran). |
Config.Pin | minLen 4, maxLen 6, maxAttempts 5, lockoutSeconds 300 | Reglas de la clave y el bloqueo. |
Config.OpenGrantSeconds | 8 | Segundos que dura el permiso de abrir tras validar. |
Config.PanelKey | 'F7' | Tecla por defecto del panel de ajustes. |
Config.AdminAce / Config.AdminCommand | 'ov_mochila.admin' / 'mochilaadmin' | Permiso y comando del menú de administración. |
Config.Crack | enabled true, rounds 4, speed 70.0, zoneSize 24.0, cooldown 90 | Minijuego para forzar un candado. También: requireItem, consumeOnFail, allowFingerprint (false), alertOwner. |
Config.Gps | enabled true, cooldown 60, pingSeconds 45 | Rastreo GPS. |
Config.Shop | NPC s_m_m_strvend_01, cuentas cash y bank | Tienda: precios por ítem en Config.Shop.items (mochilas 2.500 / 5.500 / 9.500; candado 500; huella 750; GPS 1.250; multiherramienta 2.000). |
Config.Lockers | maxPerPlayer 10 | Casilleros de mochilas. |
Config.Police | trabajos police, sheriff; requireDuty true; requireCuffs true; bypassLock true; tecla F6 | Registro policial. |
Config.Encumbrance | enabled false | Ralentización por peso total; con tramos en tiers. |
Config.Text | textos en español | Mensajes mostrados al jugador. |
Comandos y permisos
| Comando / tecla | Quién | Qué hace |
|---|---|---|
/mochilaadmin | ACE ov_mochila.admin | Menú de administración. |
ov_mochila_panel (tecla F7 por defecto) | Jugador | Ajustes de la mochila: candado, GPS y mostrar u ocultar. Se puede cambiar en Ajustes > Teclas > FiveM. |
ov_mochila_search (tecla F6 por defecto) | Policía en servicio | Registra la mochila del jugador esposado más cercano. |
Exports del servidor:
exports['ov_mochila']:hasBackpack(src): indica si el jugador lleva una mochila.exports['ov_mochila']:getBagStash(src, slot): devuelve el identificador del stash de la mochila de ese slot.
Export de cliente (para ox_inventory): ov_mochila.useBag, la acción de uso de las mochilas.
Como se usa
Jugadores
- Compra una mochila en una tienda de mochilas y elige talla y diseño (si hay opciones para tu personaje).
- Usa el ítem desde el inventario: se abre el inventario propio de la mochila (con una breve animación). No se puede abrir dentro de un vehículo ni estando muerto.
- La mochila se ve en la espalda mientras la llevas.
- Pulsa F7 para ajustar la mochila: poner o quitar el candado, instalar un GPS o rastrearla.
- Con un candado de clave, introduce la clave para abrirla. Con un candado de huella, solo el dueño podrá abrirla.
- Para forzar un candado de clave de otra persona necesitas una multiherramienta y superar el minijuego (4 rondas por defecto). Si fallas, se gasta la herramienta.
- En un casillero puedes guardar mochilas enteras (hasta 10 por jugador por defecto) y retirarlas después.
Policía: con el trabajo police o sheriff en servicio, cerca de un jugador esposado, pulsa F6 para registrar su mochila sin necesidad de abrir el candado.
Para administradores
- Concede
ov_mochila.admina tu equipo y ejecuta/mochilaadmin. - El menú permite:
- Ver las mochilas de un jugador, ver su contenido y quitar el candado (útil si un jugador olvida la clave).
- Editar mochilas: cambia ranuras, peso y si están activas; los cambios se guardan en la tabla
ov_mochila_settingsy se aplican sin reiniciar. - Tiendas y Casilleros: colocar uno en tu posición o quitar los existentes. Los puntos se guardan en base de datos.
- Probar el objeto de la espalda y la ropa de la espalda, para comprobar cómo queda.
- Para ajustar cómo se ve el objeto en la espalda, revisa
Config.Backpacks[...].prop(hueso, posición y rotación). - Si cambias el nombre de un ítem o añades mochilas nuevas al catálogo, recuerda definir el ítem en
ox_inventory. - Para ver errores revisa la consola del servidor y F8 en el cliente.
Config.Debugactiva información adicional.
Preguntas frecuentes
¿Mi mochila no se ve en la espalda? Comprueba que ov_mohilas está iniciado antes que ov_mochila y que Config.ClothBackpacks está en true. Si el juego no encuentra la ropa, se usa el objeto de respaldo.
¿Cómo cambio la capacidad de una mochila? Con /mochilaadmin > Editar mochilas, o directamente en Config.Backpacks.
¿Cómo limito a una mochila por jugador? Pon Config.OneBagOnly = true.
¿Un jugador olvidó su clave? Un administrador puede quitar el candado desde /mochilaadmin > Ver las mochilas de un jugador.
¿Funciona con otro inventario? No: usa funciones de ox_inventory (stashes, metadatos y filtros).
¿Puedo cambiar los precios? Sí, en Config.Shop.items.
Actualizaciones y soporte
Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Conserva tu shared/config.lua al actualizar; los datos de las mochilas están en la base de datos. Para soporte, usa el Discord de la tienda: [enlace de soporte].
