Cómo funcionan las integraciones#
Nada dentro de Advanced Garages está ligado a un framework, sistema de llaves o script de combustible concreto. Cada llamada a otro recurso está en un pequeño archivo puente sin cifrar en client/custom/ o server/custom/. La mayoría de las capas se detectan al iniciar buscando un recurso iniciado de una lista; el menú y el target los eliges tú.
Capa | Compatibles | Sin ella |
|---|---|---|
Framework (automático) | es_extended · qb-core · qbx_core | Obligatorio. Los vehículos se guardan en |
Llaves de vehículos (automático) | qs-vehiclekeys · qb-vehiclekeys · qbx_vehiclekeys · wasabi_carlock · MrNewbVehicleKeys · F_RealCarKeysSystem · fivecode_carkeys · glfp10_carkeys · jc_vehiclekeys · mono_carkeys · ti_vehicleKeys · vehicles_keys · xd_locksystem | Los coches salen sin que se entreguen llaves. |
Combustible (automático) | qs-fuelstations · LegacyFuel · ox_fuel · cdn-fuel · ps-fuel · lj-fuel · okokGasStation · esx-sna-fuel · ti_fuel · BigDaddy-Fuel | El combustible no se guarda; los coches salen con el depósito lleno. |
Inventario (automático) | qs-inventory · ox_inventory · qb-inventory · ps-inventory · core_inventory · codem-inventory · origen_inventory · tgiann-inventory · inventory (Chezza) | Los muebles de alijo no se pueden abrir. Todo lo demás funciona. |
Ropa (automático) | qs-appearance · illenium-appearance · fivem-appearance · qb-clothing · codem-appearance · ak47_clothing · rcore_clothes · rcore_clothing · raid_clothes · sleek-clothestore · tgiann-clothing · p_appearance | Los muebles de armario no tienen un menú de conjuntos propio que abrir. Todo lo demás funciona. |
Sincronización del clima (automático) | cd_easytime · qb-weathersync · vSync | El menú del garaje mantiene el clima de tu servidor en lugar de un día despejado. |
Menú (lo eliges tú) | ox_lib · qb-menu · nh-context · esx_menu_default · esx_context | Debe configurarse: la gestión, las llaves, la recuperación y las listas de aeronaves lo usan. |
Target / radial (lo eliges tú) | ox_target · qb-target · qb-radialmenu · qs-radialmenu |
|
Bandas | qs-gangs | Las restricciones de banda en los garajes no tienen efecto. |
Text UI · HUD | qs-textui · qs-interface | Texto 3D nativo, y el HUD se deja como está. |
Base de datos | oxmysql | Obligatorio. |
Elegir el menú y el target#
-- config/config.lua
Config.Menu = 'ox_lib' -- 'ox_lib' | 'qb-menu' | 'nh-context' | 'esx_menu_default' | 'esx_context'
Config.UseTarget = 'none' -- 'ox_target' | 'qb-target' | 'qb-radialmenu' | 'qs-radialmenu' | 'none'qb-menu también necesita qb-input para sus campos de texto, y nh-context necesita nh-keyboard. Con qs-radialmenu los garajes se registran como proveedor de elementos al iniciarse, así que los botones de abrir, guardar, entrar, comprar, recuperar, gestión, depósito y garaje de trabajo aparecen solos cerca de un garaje. El botón de mecánico Repair de qs-radialmenu ejecuta /repairvehicle.
Notificaciones y el HUD#
Los mensajes se muestran con las notificaciones propias de la interfaz del garaje. Para enviarlos a otro sistema, edita Notification en client/custom/framework/esx.lua o qb.lua; ya hay ejemplos comentados para qs-interface y ox_lib. ToggleHud en el mismo archivo oculta tu HUD mientras el menú del garaje, el creador o la decoración están abiertos.
SpawnVehicleEvents(vehicle, plate) en ese archivo se ejecuta cada vez que un coche sale de un garaje: el lugar para añadir lo que tu servidor necesite al aparecer un coche.
Logs de Discord#
Cinco tipos de acción pueden publicarse en Discord como embed. Pega una URL de webhook por tipo; si está vacía, simplemente no se envía.
Clave | Se publica cuando |
|---|---|
| Se saca un coche de un garaje. |
| Se guarda un coche. |
| Se recupera un coche perdido en un punto de recuperación. |
| Un agente embarga un coche. |
| Un administrador entrega un vehículo con /givecar, /giveboat o /giveplane. |
-- server/custom/misc/webhooks.lua
Webhooks = {
['take_vehicle'] = 'https://discord.com/api/webhooks/...',
['save_vehicle'] = '',
['recovery_vehicle'] = '',
['impound_vehicle'] = 'https://discord.com/api/webhooks/...',
['give_vehicle'] = '',
}Housing#
Los scripts de housing añaden un garaje a una casa mediante los propios eventos del garaje, de modo que la puerta del garaje de la casa abre un garaje shell en el que solo pueden entrar el propietario y quienes tienen llave. qs-housing lo hace de serie; inícialo después de qs-advancedgarages. Otros scripts de housing pueden usar los mismos eventos, listados en Comandos y exports.
¿Quieres más interiores accesibles a pie? Los shells de Modern Garages Living funcionan como garajes shell: añádelos a Config.Shells y elígelos en el Interior Type → Shell del creador.
Otros recursos con los que funciona#
Recurso | Qué ocurre |
|---|---|
qs-inventory | Se crean cuatro misiones de garaje para cada jugador: guardar un coche, poner una etiqueta personalizada, marcar un favorito y visitar el interior de un garaje. |
qs-vehiclekeys | Llaves en cada salida, y el puente eléctrico se desactiva dentro de los interiores de garaje. Con |
Una grúa plataforma guardada con coches encima los conserva, modificaciones incluidas, y los devuelve cargados. El xenón RGB personalizado configurado en su taller de tuning se guarda con el coche. También se encarga del ítem | |
AdvancedParking | Los coches guardados también se eliminan de AdvancedParking, para que no vuelvan a aparecer. |
nfs-customs · wheel stancers | Los ajustes de stance se guardan y restauran con el coche. |
FiveGuard | Configura |
Tiendas de vehículos | El seguro lee los precios de los coches de qbx_core, de los vehículos compartidos de QBCore o de la tabla |
Añadir un backend#
Dar soporte a algo que no está en la lista requiere un archivo, más una línea cuando la capa se detecta automáticamente.
Copia el puente más parecido
Cada puente es un pequeño archivo en
client/custom/<layer>/:fuel,vehiclekeys,inventory,wardrobe,menu,target,weather. Copia el que más se parezca al tuyo. Todo lo que hay en esa carpeta se carga automáticamente.Cambia la condición y las llamadas
La primera línea hace que el archivo se ejecute solo cuando es el backend elegido. Renómbrala y luego sustituye las llamadas de dentro manteniendo los nombres de las funciones:
lua -- client/custom/fuel/my_fuel.lua if Config.Fuel ~= 'my_fuel' then return end function SetFuel(vehicle, fuel) exports['my_fuel']:SetFuel(vehicle, fuel) end function GetFuel(vehicle) return exports['my_fuel']:GetFuel(vehicle) endLas llaves implementan
AddVehiclekeys/RemoveVehiclekeys, los inventariosopenStash, los armariosopenWardrobe.Regístralo para la detección
Añade tu recurso a la lista correspondiente en
config/config.lua, por ejemplo['my_fuel'] = 'my_fuel'en la tablafuels. Los menús y targets no tienen lista: configuraConfig.MenuoConfig.UseTargetcon tu nuevo nombre.
Idiomas#
Se incluyen 42 traducciones en locales/: ar, bg, bn, ca, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, id, it, ja, ko, lt, lv, ms, nl, no, pl, pt, ro, ru, sk, sl, sv, sw, th, tk, tr, uk, ur, vi y zh. Elige una en Config.Locale, o configúrala una sola vez para todos los recursos de Quasar en server.cfg:
setr qs:locale "es"Una clave que falte en tu idioma usa el inglés, así que una traducción parcial nunca muestra texto en blanco. Los precios y las fechas siguen Config.Intl, por ejemplo locales = 'es-ES' con currency = 'EUR'.



