SCRIPT

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.

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:

Además, el código usa:

Lua 5.4. Base de datos MySQL o MariaDB con oxmysql.

Instalacion

  1. Descarga los recursos del Portal de Cfx.re con la cuenta Cfx con la que compraste el producto. ov_mochila y ov_mohilas vienen protegidos con Asset Escrow de Cfx.re y funcionan solo en servidores de tu cuenta.
  2. Copia las carpetas ov_mochila y ov_mohilas en resources.
  3. 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_modulo y ov_multiherramienta. Las mochilas deben usar el export ov_mochila.useBag como 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.

  1. 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
  1. Base de datos: las tablas se crean solas al arrancar (necesita oxmysql). El recurso incluye sql/install.sql solo como referencia, por si prefieres crearlas a mano. Tablas: ov_mochila_bags, ov_mochila_log, ov_mochila_shops, ov_mochila_lockers, ov_mochila_locker_items y ov_mochila_settings.
  2. 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.

ClaveValor por defectoPara qué sirve
Config.Backpacks3 activas + 3 apagadasCatálogo: label, slots, weight (kg), itemWeight (g), enabled, prop y cloth.
ov_mochila_124 ranuras / 50 kgMochila pequeña.
ov_mochila_240 ranuras / 100 kgMochila mediana.
ov_mochila_360 ranuras / 200 kgMochila grande.
Config.Designs2 / 3 / 1 diseñosDiseños que se eligen al comprar, por talla y género (index y texture de la colección ovmochilamen).
Config.ClothBackpackstrueMuestra la mochila como ropa (ov_mohilas) en lugar de un objeto.
Config.CustomModelsfalseUsa modelos propios de la carpeta stream/ en lugar del objeto.
Config.Itemsov_candado, ov_candado_huella, ov_gps_modulo, ov_multiherramientaNombres de ítem de los accesorios.
Config.OneBagOnlyfalsetrue 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.PinminLen 4, maxLen 6, maxAttempts 5, lockoutSeconds 300Reglas de la clave y el bloqueo.
Config.OpenGrantSeconds8Segundos 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.Crackenabled true, rounds 4, speed 70.0, zoneSize 24.0, cooldown 90Minijuego para forzar un candado. También: requireItem, consumeOnFail, allowFingerprint (false), alertOwner.
Config.Gpsenabled true, cooldown 60, pingSeconds 45Rastreo GPS.
Config.ShopNPC s_m_m_strvend_01, cuentas cash y bankTienda: 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.LockersmaxPerPlayer 10Casilleros de mochilas.
Config.Policetrabajos police, sheriff; requireDuty true; requireCuffs true; bypassLock true; tecla F6Registro policial.
Config.Encumbranceenabled falseRalentización por peso total; con tramos en tiers.
Config.Texttextos en españolMensajes mostrados al jugador.

Comandos y permisos

Comando / teclaQuiénQué hace
/mochilaadminACE ov_mochila.adminMenú de administración.
ov_mochila_panel (tecla F7 por defecto)JugadorAjustes 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 servicioRegistra la mochila del jugador esposado más cercano.

Exports del servidor:

Export de cliente (para ox_inventory): ov_mochila.useBag, la acción de uso de las mochilas.

Como se usa

Jugadores

  1. Compra una mochila en una tienda de mochilas y elige talla y diseño (si hay opciones para tu personaje).
  2. 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.
  3. La mochila se ve en la espalda mientras la llevas.
  4. Pulsa F7 para ajustar la mochila: poner o quitar el candado, instalar un GPS o rastrearla.
  5. Con un candado de clave, introduce la clave para abrirla. Con un candado de huella, solo el dueño podrá abrirla.
  6. 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.
  7. 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

  1. Concede ov_mochila.admin a tu equipo y ejecuta /mochilaadmin.
  2. El menú permite:
  3. Ver las mochilas de un jugador, ver su contenido y quitar el candado (útil si un jugador olvida la clave).
  4. Editar mochilas: cambia ranuras, peso y si están activas; los cambios se guardan en la tabla ov_mochila_settings y se aplican sin reiniciar.
  5. Tiendas y Casilleros: colocar uno en tu posición o quitar los existentes. Los puntos se guardan en base de datos.
  6. Probar el objeto de la espalda y la ropa de la espalda, para comprobar cómo queda.
  7. Para ajustar cómo se ve el objeto en la espalda, revisa Config.Backpacks[...].prop (hueso, posición y rotación).
  8. Si cambias el nombre de un ítem o añades mochilas nuevas al catálogo, recuerda definir el ítem en ox_inventory.
  9. Para ver errores revisa la consola del servidor y F8 en el cliente. Config.Debug activa 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].