Documentación de Garajes Otra Vida
Garajes Otra Vida (ov_garages)
Qué hace
ov_garages es un sistema de garajes para servidores de FiveM con QBCore. Permite que los jugadores guarden sus vehículos en un garaje, los retiren desde un panel visual y los lleven a otro garaje sin tener que conducirlos hasta allí.
- Guardar y retirar: al acercarte a un garaje a pie aparece el aviso
[E] Abrir <garaje>; al acercarte conduciendo,[E] Guardar en <garaje>. Al guardar se conservan las modificaciones, el combustible, el estado del motor y de la carrocería. - Panel de retiro: muestra la foto del vehículo, la matrícula, el combustible, el motor y la carrocería, y la lista de todos tus vehículos guardados en ese garaje.
- Traslado entre garajes: mueve un vehículo guardado a otro garaje desde el propio panel.
- Traer vehículo aquí: trae a este garaje un vehículo guardado en otro, pagando una tarifa en efectivo.
- Cinco categorías de garaje: público, trabajo (job), banda (gang), depósito (solo administradores) y personal (de un jugador concreto).
- Creación en caliente: los administradores crean y borran garajes desde un panel dentro del juego, sin reiniciar el recurso.
- Llaves de vehículo: entrega la llave al retirar y la retira al guardar, si tienes un sistema de llaves compatible.
El recurso incluye dos pantallas: el panel de retiro (jugador) y el panel de creación de garajes (administrador).
Requisitos
- Servidor FiveM con
fx_version 'cerulean', juegogta5y Lua 5.4 (el recurso lo activa conlua54 'yes'). - Dependencias obligatorias declaradas en
fxmanifest.lua: qb-coreox_liboxmysql- La tabla
player_vehiclesde QBCore, con las columnas que el recurso usa:citizenid,license,vehicle,plate,garage,mods,fuel,engine,body,state,in_garage,impoundydrivingdistance. - Opcional, para las llaves de vehículo:
0r-vehiclekeysoqs-vehiclekeys. Si ninguno está iniciado, el vehículo se puede conducir igualmente, sin sistema de llaves. Puedes cambiar la lista enConfig.KeyResources. - Opcional: la lista
QBCore.Shared.Vehiclesde QBCore. Si el modelo está en ella, el panel muestra marca y nombre; si no, muestra el nombre del modelo. - Conexión a internet del jugador: el panel carga los iconos desde
cdnjs.cloudflare.comy las fotos de los vehículos originales de GTA desdedocs.fivem.net. Para vehículos añadidos puedes colocar tu propia imagen enhtml/creator/img/<modelo>.png.
Instalación
- Descarga el recurso desde el Portal de Cfx.re con la cuenta Cfx.re del comprador. El recurso viene protegido con Asset Escrow de Cfx.re: solo funciona en servidores asociados a la cuenta del comprador. El código Lua va cifrado;
config.luay la interfaz web (carpetahtml) quedan sin cifrar para que puedas editarlos. - Copia la carpeta
ov_garagesa la carpetaresourcesde tu servidor. - Importa el archivo
sql/ov_garages.sqlen tu base de datos. Crea la tablaov_garages(si no existe) con los garajes creados desde el panel: nombre, categoría (publico,job,gang,deposito,personal), trabajo o banda asociados, propietario, tipo de vehículo, icono, coordenadas del punto de interacción, coordenadas y orientación de aparición, radio, quién lo creó y la fecha. - Añade
ensure ov_garagesen tuserver.cfg, después deqb-core,ox_libyoxmysql(y de tu sistema de llaves, si usas uno). - Para usar el panel de creación, el jugador debe tener el grupo
adminogoden QBCore (el recurso leePlayerData.group). Para el comando/darvehiculo, el permisoadminde QBCore. - Reinicia el servidor y comprueba en la consola el mensaje
[ov_garages] Cargados N garages dinamicos desde la base de datos.
Configuración
Todo se configura en config.lua, que no está cifrado.
| Clave | Valor por defecto | Para qué sirve |
|---|---|---|
Config.Garages | 2 garajes de ejemplo (legion_square, sandy_shores) | Lista de garajes "de fábrica". |
Config.SpawnOffset | 6.0 | Metros hacia delante del punto del garaje donde aparece el vehículo (garajes de fábrica). |
Config.TargetIcon | 'fa-solid fa-warehouse' | Icono de objetivo; consulta el archivo de configuración. |
Config.OpenDistance | 15.0 | Distancia, a pie, para abrir el garaje y pedir el vehículo. |
Config.StoreDistance | 6.0 | Distancia, conduciendo, para guardar el vehículo. |
Config.KeyResources | { '0r-vehiclekeys', 'qs-vehiclekeys' } | Recursos de llaves que se prueban en orden; se usa el primero que esté iniciado. |
Cómo añadir un garaje de fábrica. Agrega una entrada a Config.Garages:
{
id = 'mi_garaje',
label = 'Garaje Mi Barrio',
coords = vector4(x, y, z, heading),
radius = 15.0,
blip = { sprite = 357, color = 3, scale = 0.8 },
},
Las coordenadas incluidas en el archivo son de ejemplo (zonas conocidas de GTA V); ajústalas a tu mapa. El id es el valor que se guarda en la columna garage de player_vehicles. Los garajes de fábrica no se pueden borrar desde el panel; para quitarlos, edita el archivo.
Comandos y permisos
| Comando / tecla | Quién | Qué hace |
|---|---|---|
/ovcreargarage | Cualquiera lo escribe, pero solo se abre para admin o god | Abre el panel de creación. Si el panel está minimizado, lo restaura donde estaba. |
/darvehiculo [id] [modelo] [garaje] | Permiso admin de QBCore | Entrega un vehículo al garaje de un jugador. La matrícula se genera de forma aleatoria. |
Tecla E | Jugador | Abre el garaje cercano (a pie) o guarda el vehículo (conduciendo). |
Tecla ESC | Jugador | Cierra el panel de retiro. |
Reglas de acceso por categoría (validadas en el servidor):
publico: cualquier jugador.job: solo jugadores con ese trabajo.gang: solo jugadores de esa banda.deposito: soloadminogod.personal: solo el propietario elegido al crear el garaje.
Para otros scripts:
- Export de servidor:
exports['ov_garages']:GetGarages()devuelve la lista de garajes (de fábrica y creados en el juego). - Callbacks de QBCore (servidor):
ov_garages:server:getAllGarages,ov_garages:server:getVehicles,ov_garages:server:getOtherVehicles,ov_garages:server:transferVehicle,ov_garages:server:bringHere,ov_garages:server:checkAdmin,ov_garages:server:getCreatorData,ov_garages:server:createGarage,ov_garages:server:deleteGarageyov_garages:server:searchPlayer. - Eventos de red del servidor:
ov_garages:server:retrieve,ov_garages:server:confirmRetrieveyov_garages:server:store. - Eventos del cliente:
ov_garages:client:spawnVehicle,ov_garages:client:deleteVehicle,ov_garages:client:garageCreatedyov_garages:client:garageRemoved.
Cómo se usa
Guardar un vehículo
- Conduce hasta el punto del garaje (distancia máxima
Config.StoreDistance). - Pulsa
Ecuando aparezca[E] Guardar en <garaje>. El vehículo desaparece y queda registrado en ese garaje.
Retirar un vehículo
- Acércate a pie al garaje y pulsa
Een[E] Abrir <garaje>. - Elige un vehículo de la lista y revisa su combustible, motor y carrocería.
- Pulsa RETIRAR. El vehículo aparece y te sientas en él; recibes la llave si hay un sistema de llaves compatible.
Trasladar a otro garaje
- En el panel, selecciona el vehículo.
- En "Transferir a otro garaje", elige el destino y pulsa TRANSFERIR. Solo se pueden trasladar vehículos guardados que sean tuyos.
Traer un vehículo aquí
- En la parte inferior del panel, "Traer vehículo aquí" lista tus vehículos guardados en otros garajes.
- Elige uno y pulsa TRAER. Se cobra en efectivo el importe de
Config.TraerVehiculoCosto($1.000 por defecto; el cobro se revierte si no se puede mover el vehículo).
Para administradores
Crear un garaje en el juego
- Escribe
/ovcreargarage. - Elige la categoría: Público, Job, Gang, Depósito o Personal. En Job y Gang aparece un selector con los trabajos o bandas de QBCore; en Personal, un buscador de jugadores conectados (por nombre, citizenid o ID).
- Elige el tipo de vehículo (Carro, Aire o Mar), un icono y un nombre.
- Colócate en el punto de interacción y pulsa Usar mi posición. Muévete al punto de aparición del vehículo y vuelve a pulsarlo (queda registrada la orientación).
- Ajusta el radio (15 metros por defecto) y pulsa Crear garaje.
El garaje se guarda en la base de datos y aparece para todos los jugadores conectados, con su marca en el mapa, sin reiniciar el recurso.
Borrar un garaje: en la lista "Garajes creados", pulsa el icono de papelera. Solo se pueden borrar los creados desde el panel.
Minimizar: el botón con el icono de persona oculta el panel sin perder lo escrito, para que puedas moverte. Vuelve a escribir /ovcreargarage para recuperarlo.
Dar un vehículo a un jugador: /darvehiculo [id] [modelo] [garaje], por ejemplo /darvehiculo 12 sultan legion_square.
Preguntas frecuentes
¿Funciona con otro framework que no sea QBCore? No. Depende de qb-core y de la tabla player_vehicles.
¿Qué llaves de vehículo soporta? 0r-vehiclekeys y qs-vehiclekeys, de serie. Si usas otro sistema, o ninguno, el vehículo sigue siendo conducible. Puedes cambiar la lista en Config.KeyResources.
No veo la foto de un vehículo añadido a mi servidor. Para los vehículos originales de GTA la foto se carga de internet. Para vehículos añadidos, coloca una imagen html/creator/img/<modelo>.png; si no existe, el panel muestra una silueta.
¿Puedo cambiar el precio de "Traer vehículo aquí"? Cambia Config.TraerVehiculoCosto en config.lua. El texto $1.000 que se ve en el panel está en html/creator/index.html (archivo sin cifrar): cámbialo allí para que coincida.
Un jugador no puede abrir el panel de creación. Comprueba que su grupo en QBCore sea admin o god. El servidor valida este grupo antes de enviar ningún dato.
¿Puedo personalizar el aspecto? Sí. La interfaz (html/creator) no está cifrada: puedes editar los textos, los colores y las imágenes.
Actualizaciones y soporte
Las actualizaciones se publican en el Portal de Cfx.re, en la cuenta con la que se compró el recurso. Haz una copia de tu config.lua antes de actualizar y compara los cambios al terminar. Para consultas, incidencias o sugerencias, usa el canal de soporte: [enlace de soporte].
