Cómo funcionan las integraciones#
Fuel Stations se comunica con el resto de tu servidor mediante pequeños archivos puente en client/custom/ y server/custom/. No están cifrados, así que puedes leer exactamente qué hace cada uno y adaptarlo. Al iniciarse, cada capa comprueba qué recursos ya están en ejecución y elige su puente:
Capa | Compatibles | Sin ella |
|---|---|---|
Framework |
| Recurre al puente de ESX: se necesita un framework. |
Target |
|
|
Llaves de vehículos |
| El camión y la cisterna del trabajo de reparto se entregan sin llaves. |
Inventario |
| El bidón es un ítem o arma normal del framework. |
Notificaciones · progreso |
|
|
Avisos 3D |
| Texto nativo de GTA con fondo oscuro. |
Teléfono · mapa | Cualquier app de teléfono o script de mapa que lea los exports | Nada: los blips del mapa siguen funcionando. |
La detección solo ve los recursos que se iniciaron antes de
qs-fuelstations. Si algo que usas se ignora, muévelo por encima deensure qs-fuelstationsenserver.cfg.
Frameworks#
El framework decide de dónde sale el dinero y quién cuenta como administrador. Se detecta en este orden y puede forzarse en config.lua si has renombrado el recurso de tu framework:
-- Auto-detected. Only set by hand if you renamed your framework resource.
Config.Framework = esxHas and 'esx' or qbHas and 'qb' or vrpHas and 'vrpex' or 'esx'
-- Forced:
-- Config.Framework = 'qb'Cuenta | ESX | QBCore |
|---|---|---|
Efectivo en el surtidor, bidones |
|
|
Tarjeta en el surtidor |
|
|
Fianza y salario del trabajo |
|
|
Los servidores Qbox funcionan mediante el puente de QBCore gracias a la compatibilidad qb-core de Qbox, y qbx_vehiclekeys tiene su propio puente de llaves.
Target#
Establece Config.UseTarget = true para reemplazar los avisos [E] por opciones de target. ox_target se usa cuando está en ejecución; si no, qb-target. Cada modelo de surtidor y cargador de Config.PumpModels recibe:
En el surtidor: abrir el surtidor, comprar un bidón, rellenar un bidón, guardar la manguera.
En cualquier vehículo: colocar la manguera, recoger la manguera, detener el repostaje, usar un bidón.
Para el trabajo: el capataz, el tanque de almacenamiento del almacén, la cisterna y el punto de entrega de la estación.
Cada opción solo aparece cuando tiene sentido: un cargador nunca ofrece un bidón, y la opción de la manguera solo aparece en un vehículo que admite el tipo de combustible de ese surtidor.
Llaves de vehículos#
Las llaves solo las necesita el trabajo de reparto, para que el conductor pueda arrancar el camión y la cisterna que genera. Se usa el primer sistema de llaves compatible que se encuentre en ejecución; 'none' cuando no hay ninguno. Si hay dos en ejecución a la vez, elige uno a mano:
-- config.lua
Config.Vehiclekeys = 'wasabi_carlock'Cada sistema tiene su propio archivo en client/custom/vehiclekeys/ con dos funciones, AddVehiclekeys y RemoveVehiclekeys. Para un recurso de llaves que no aparece, copia none.lua, cambia el nombre de la comprobación del principio, rellena las dos funciones y añade el recurso a la tabla vehicleKeys de la configuración.
Inventarios y el bidón#
El bidón es el weapon_petrolcan del juego, y su combustible es la munición del arma. Tu inventario debe tener ese ítem definido: QBCore, qs-inventory y ox_inventory lo incluyen.
Inventario | Cómo se gestiona el bidón |
|---|---|
| Se entrega lleno, con su combustible y calidad en los metadatos del ítem; los rellenos reescriben esos metadatos, y lo que se vierte se vuelve a guardar. Comprar un bidón también completa la misión Fuel Collector, definida en |
| En ESX, la durabilidad y la munición del bidón se mantienen sincronizadas con lo que se vierte. |
Solo framework | Se añade y se elimina a través del framework. En ESX, |
Notificaciones, avisos y barras de progreso#
Todos los mensajes, todos los avisos [E] y la barra de progreso del trabajo de reparto pasan por tres funciones del puente de cliente de tu framework, client/custom/framework/<framework>.lua:
Función | Predeterminado |
|---|---|
|
|
|
|
|
|
Para usar otro recurso de notificaciones o de text UI, edita esas funciones: no hace falta cambiar nada más en el script. Los scripts del lado del servidor pueden mostrar las mismas notificaciones con el evento de cliente fuelstation:notification:
TriggerClientEvent('fuelstation:notification', source, 'Station closed for maintenance', 'error')Teléfonos y mapas#
Una app de teléfono o un script de mapa puede listar todas las estaciones con sus precios y stock en vivo, y trazar una ruta GPS hasta una, mediante dos exports de cliente:
local data = exports['qs-fuelstations']:getFuelStations()
-- data.stations { id, type = 'gas' | 'charge', name, x, y, z, level, prices }
-- data.counts { gas, charge, total }
-- data.prices current base price per grade
-- data.priceSymbol '€'
exports['qs-fuelstations']:setFuelWaypoint(x, y)Una estación que vende tanto combustible como electricidad aparece dos veces: una como gas en su centro y otra como charge en su primer cargador, para que un mapa pueda mostrar ambas con iconos diferentes. Los dos exports están en client/custom/phone/app.lua.
Garajes, HUD y mecánicos#
Los scripts que guardan, muestran o reparan vehículos necesitan leer y establecer el combustible. Hay dos formas:
Los exports
GetFuelySetFuel: un garaje guardaGetFuelcuando se guarda un coche y llama aSetFuelcuando se saca.El state bag
Entity(vehicle).state.fuel, replicado en todos los clientes y en el servidor: ideal para un HUD, y legible desde el servidor sin preguntar al cliente del conductor.
Los scripts escritos para LegacyFuel no necesitan ningún cambio. Consulta Comandos y exports para ver todas las firmas.
Añadir un framework o recurso#
Dar soporte a algo que no está en la lista es un solo archivo. Cada puente es corto y no está cifrado:
Carpeta | Qué aporta un puente |
|---|---|
| El dinero del jugador, las notificaciones, los avisos 3D y las barras de progreso. |
| Jugadores, ítems y cuentas: |
| Las opciones de target en surtidores y vehículos. |
|
|
| Los exports de la lista de estaciones y del waypoint. |
Copia el archivo existente más parecido, cambia la comprobación del principio para que se cargue con tu recurso y rellena las funciones. config.lua, locales/, client/custom/ y server/custom/ son la parte editable del recurso.
Idiomas#
Se incluyen 41 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 tr uk ur vi zh. Elige una en la configuración o establécela una sola vez en server.cfg para todos los recursos de Quasar:
-- config.lua
Config.Language = 'es'# server.cfg — applies to every Quasar resource
setr qs:locale "es"Si a un idioma le falta una línea, se usa el inglés para esa línea y se indica la clave que falta en la consola, así que una traducción parcial nunca rompe el script. Para añadir un idioma, copia en.json, traduce los valores, mantén {{placeholders}} tal como están y establece el nombre de su archivo como idioma.



