SCRIPT

Documentación de Combustible y gasolineras

Otra Vida Combustible (ov_combustible)

Que hace

ov_combustible agrega un sistema completo de combustible a servidores FiveM con qb-core: consumo realista, gasolineras, cargadores para vehiculos electricos, bidon de emergencia, HUD y un panel de administracion para controlar precios y existencias.

Lo mas importante:

Requisitos

RequisitoDetalle
Frameworkqb-core
Dependencias declaradas en el fxmanifestox_lib, oxmysql, ox_inventory, qb-core
Interaccion con surtidores y vehiculosEl codigo del cliente usa los exports exports.ox_target:addModel y addGlobalVehicle. Necesitas ox_target (o un recurso de apuntado que ofrezca ese mismo nombre de export) iniciado antes
Lua5.4 (lua54 'yes')
Base de datosMySQL o MariaDB, mediante oxmysql

El recurso incluye dos props electricos propios en la carpeta stream/ (prop_electric_01 y prop_eletricpistol), que el fxmanifest registra con DLC_ITYP_REQUEST. No hace falta instalar nada mas para ellos.

Al declarar provide de LegacyFuel, lc_fuel, ps-fuel y cdn-fuel, no debes tener otro script de combustible activo a la vez.

Instalacion

  1. Descarga el recurso desde el Portal de Cfx.re (seccion de assets comprados) con la cuenta Cfx.re con la que hiciste la compra. El recurso viene protegido con Asset Escrow de Cfx.re: solo funciona en servidores cuya clave de licencia pertenece a tu cuenta.
  2. Copia la carpeta ov_combustible dentro de resources.
  3. Declara el item del bidon en ox_inventory. El nombre debe coincidir con Config.JerryCan.item (por defecto petrolcan). El recurso guarda en la metadata del item los litros (litros) y el tipo (tipo).
  4. Agrega en server.cfg, despues de ox_lib, oxmysql, qb-core, ox_inventory y tu recurso de apuntado:
   ensure ov_combustible
  1. Da el permiso de administracion:
   add_ace group.admin command.combustibleadmin allow
  1. Inicia el servidor. No hay archivo .sql: al arrancar el recurso crea solo las tablas ov_combustible_tipos y ov_combustible_estaciones (CREATE TABLE IF NOT EXISTS).

El codigo no lee convars de server.cfg.

Archivos editables: en el fxmanifest.lua el bloque escrow_ignore deja sin cifrar shared/config.lua y la carpeta html/ (interfaz). Los demas archivos de shared/ (vehiculos.lua, idioma.lua), client/ y server/ van cifrados por Asset Escrow.

Configuracion

Todo esta en shared/config.lua. Opciones principales:

ClaveValor por defectoPara que sirve
Config.EnablePumpRopetrueActiva la cuerda de la manguera
Config.DefaultRopeLength7.5Largo de la cuerda
Config.RefuelTick300Milisegundos por cada 0.5 L repostados (menos = mas rapido)
Config.FuelTypeCommand"fuel_type"Comando que muestra el tipo de combustible del vehiculo
Config.SaveAllVehicleFuelTypestrueGuarda en base de datos el tipo de combustible de todos los vehiculos (o solo los de jugadores si es false)
Config.ReturnNozzleRefundtrueDevuelve el dinero del combustible no usado al devolver la manguera
Config.FuelConsumptionChartenabled = true, command = "fuel_chart", focusShortcut = "F3", position = "left"Grafico informativo de consumo
Config.JerryCanenabled = true, price = 300, requiredStock = 10, item = "petrolcan", liters = 20Bidon: precio, item de ox_inventory y litros al comprarlo
Config.Accountsaccount1 = "cash", account2 = "bank"Cuentas con las que se puede pagar
Config.JobDiscountspolice = 90, ambulance = 80Descuento en % por trabajo (solo en servicio)
Config.DefaultValues.fuelPriceregular 2.02, plus 2.20, premium 2.57, diesel 1.94Precio por litro por defecto
Config.DefaultValues.fuelStocktodos trueSi hay existencias de cada tipo por defecto
Config.FuelConsumptionPerFuelTyperegular 1.0, plus 0.9, premium 0.8, diesel 1.0Multiplicador de consumo por tipo
Config.FuelTankSizepor clase y por vehiculoLitros del tanque; perVehicle tiene prioridad sobre perClass
Config.FuelConsumptionPerClasspor clase de vehiculoMultiplicador de consumo por clase
Config.FuelUsagecurva por RPMConsumo segun revoluciones
Config.DieselVehicleslista de modelosVehiculos que usan diesel
Config.BlacklistedVehiclesbicicletasVehiculos que no gastan combustible
Config.GasPumpProps7 modelos de surtidorProps reconocidos como surtidor y desplazamiento de la cuerda
Config.CustomGasPumpLocations18 posicionesSurtidores extra que el recurso crea en el mapa
Config.CustomVehicleParametersdefault y ejemplosDistancia y posicion de la boquilla por vehiculo
Config.DebugNozzleOffsetfalseAyuda para calibrar la posicion de la boquilla en vehiculos nuevos
Config.Blipsenabled = true, blipId = 361, color = 41, scale = 0.6, lista de ubicacionesMarcas de gasolineras en el mapa
Config.Electricenabled = true, cargadores, chargeTypes (rapida price = 2.5, time = 0.8; normal price = 1.8, time = 2), vehiclesListSeccion de vehiculos electricos
Config.Estacioneslas estaciones de Config.PlayerOwnedGasStations.gasStations (27)Estaciones (centro y radio) para precios por estacion
Config.AdminAce'command.combustibleadmin'Permiso ACE del panel
Config.AdminCommand'combustibleadmin'Comando del panel
Config.HUDmodo = 'auto', umbralBajo = 15.0, umbralCritico = 5.0, posicion = 'abajo-derecha'HUD: 'siempre', 'auto' o 'nunca'
Config.MaxLitrosPorCompra600Maximo de litros por compra (validacion del servidor)
Config.VigenciaApertura180Segundos que vale una apertura del panel antes de comprar

Los textos que ve el jugador estan en shared/idioma.lua, que va cifrado con el recurso. Consulta el archivo de configuracion y con el soporte de la tienda si necesitas traducciones personalizadas.

Comandos y permisos

ElementoDetalle
/fuel_typeMuestra el tipo de combustible del vehiculo (nombre en Config.FuelTypeCommand)
/fuel_chartAbre el grafico de consumo (nombre en Config.FuelConsumptionChart.command)
F3Atajo para enfocar el grafico de consumo (/fuel_focus, configurable por el jugador en Teclas de FiveM)
/combustibleadminAbre el panel de administracion; exige el permiso ACE command.combustibleadmin
Tecla XDetiene el repostaje en curso

Exports del cliente

ExportUso
GetFuel(vehiculo) / getFuelNivel de combustible del vehiculo (0 a 100)
SetFuel(vehiculo, nivel) / setFuelFija el nivel (0 a 100)
SetFuelType(vehiculo, tipo) / setFuelTypeFija el tipo de combustible del vehiculo

Export del servidor

ExportUso
SetVehicleFuelType(placa, tipo)Guarda el tipo de combustible de una placa en base de datos
-- Cliente: llenar el tanque al sacar un vehiculo
exports.ov_combustible:SetFuel(vehiculo, 100.0)

Como se usa

Repostar

  1. Acercate a un surtidor y usa el ojo de interaccion: Abrir menu de repostaje.
  2. En el panel elige el combustible, los litros (deslizador o atajos) y la cuenta de pago. Ves el total antes de pagar.
  3. Pulsa Comprar. Recibes la manguera en la mano.
  4. Con el motor apagado, acercate al deposito del vehiculo y elige Repostar vehiculo.
  5. Para detener antes, pulsa X o elige Detener repostaje.
  6. Vuelve al surtidor y elige Devolver la manguera. Si sobro combustible, se devuelve el dinero.

Vehiculos electricos: se cargan en los cargadores con Abrir menu de carga, con modo normal (mas barato y lento) o rapido.

Bidon: se compra en el panel del surtidor. Con el bidon en el inventario, apunta al deposito de un vehiculo y elige Rellenar con bidon. Lleva la cuenta de los litros restantes.

HUD: con Config.HUD.modo = 'auto' aparece al repostar o cuando el combustible baja del umbral. Con poco combustible el recurso muestra un aviso.

Para administradores

  1. Escribe /combustibleadmin (con el permiso asignado).
  2. Elige una estacion o la opcion global.
  3. Para cada tipo de combustible puedes cambiar el precio (de 0 a 1000), activar o apagar la disponibilidad o restablecer a los valores base.
  4. La prioridad es: ajuste de la estacion, luego ajuste global, luego valores de shared/config.lua.
  5. El panel permite teletransportarte a la estacion elegida.
  6. Los cambios se guardan en ov_combustible_estaciones y la consola muestra quien los hizo.
  7. Para agregar un surtidor, anade una linea en Config.CustomGasPumpLocations; para un cargador, en Config.Electric.chargersLocation. Para ajustar el tanque de un modelo concreto, usa Config.FuelTankSize.perVehicle.

Preguntas frecuentes

Es compatible con scripts que llaman a LegacyFuel o lc_fuel? El recurso expone GetFuel, SetFuel y SetFuelType con los nombres habituales y declara provide de esos recursos. Los scripts que usen esos exports deberian funcionar; verifica con tu script concreto.

Los surtidores no responden al apuntar. Comprueba que tu recurso de apuntado este iniciado antes y ofrezca el export ox_target, y que el modelo del surtidor este en Config.GasPumpProps.

Como cambio el precio del combustible? Desde /combustibleadmin (por estacion o global) o editando Config.DefaultValues.fuelPrice.

Como cambio el tamano del tanque? En Config.FuelTankSize: por clase en perClass y por modelo en perVehicle.

Un vehiculo diesel deja de funcionar al repostar. Revisa que el modelo este en Config.DieselVehicles y que se uso diesel. El combustible equivocado averia el motor.

Donde veo los errores? En la consola del servidor (mensajes [ov_combustible]) y en la consola F8 del cliente.

Actualizaciones y soporte

Las versiones nuevas aparecen en el Portal de Cfx.re (en tus recursos comprados) y en la tienda. Descargalas con la misma cuenta Cfx.re de la compra y reemplaza la carpeta, conservando tus cambios en shared/config.lua. Para soporte, abre un ticket en el Discord de la tienda: [enlace de soporte]. Indica la version del recurso, el error de consola y los pasos para reproducirlo.