Exports y compatibilidad

Reemplazar tu script de gasolina

Tus otros recursos siguen llamando a la API que ya usan, sin tocar nada:

exports['LegacyFuel']:GetFuel(vehicle)          -- answered by hz_fuel
exports['LegacyFuel']:SetFuel(vehicle, 75.0)
exports['qb-fuel']:GetFuel(vehicle)              -- also cdn-fuel, ps-fuel
exports.ox_fuel:setPaymentMethod(fn)             -- server, and setMoneyCheck client side
Entity(vehicle).state.fuel                       -- ox_fuel-compatible statebag
GetResourceState('LegacyFuel')                   -- 'started' (also qb-fuel, ox_fuel, cdn-fuel, ps-fuel)

  • Los scripts que comprueban si su recurso de gasolina está en marcha antes de usarlo (control de crucero, HUD, garajes) lo encuentran.
  • Un script con uno de estos nombres que mantengas en marcha responde por sí mismo. Pon su línea en false en compatExports.
  • compatStateBags lista los statebags adicionales que se rellenan con el nivel (qb-fuel por defecto).
  • Tras una actualización, reinicia el servidor entero: consulta Actualizar.

Nivel de combustible

El nivel está en el statebag fuel del vehículo, de 0 a 100. El tipo con el que se llenó está en fuelType.

-- read
local fuel = Entity(vehicle).state.fuel

-- write (client)
exports.hz_fuel:SetFuel(vehicle, 50.0)

El combustible añadido por otro script, un garaje o una reparación se tiene en cuenta, no se sobrescribe.


Exports del cliente

ExportDevuelve
exports.hz_fuel:GetFuel(vehicle)Nivel, de 0 a 100
exports.hz_fuel:SetFuel(vehicle, level)Fija el nivel, de 0 a 100
exports.hz_fuel:GetFuelType(vehicle)Tipo de combustible, p. ej. 'regular'
exports.hz_fuel:setMoneyCheck(fn)Reemplaza la comprobación de dinero que se hace antes de un repostaje. Ver abajo

Exports del servidor

ExportDevuelve
GetVehicleFuelType(netId)Tipo de combustible del vehículo
SetVehicleFuelType(netId, fuelType)true si se ha fijado. Se rechaza para un tipo que el vehículo no admite
GetFuelPrice(fuelType)Precio por litro
GetFuelTypes()La tabla fuelTypes
GetStations()La lista de gasolineras
IsElectricVehicle(netId)true para un modelo eléctrico
GetChargePrice(chargeType)Precio por 1 % en un cargador
GetChargeTypes()La tabla electric.chargeTypes
GetStationStock(stationId)Litros que quedan por combustible, p. ej. { regular = 5200, diesel = 1800 }
SetStationStock(stationId, fuelType, litres)Fija un nivel, limitado por el depósito
AddStationStock(stationId, fuelType, litres)Añade litros, devuelve lo que ha entrado
IsOnDeliveryShift(playerId)true mientras el jugador está en un turno de reparto
GetDeliveryCargo(playerId)Litros en la cisterna del jugador por combustible, o nil
Todos se llaman como exports.hz_fuel:Name(...) en el servidor.

Hooks de pago

Por defecto, HZ-Fuel cobra con el dinero de tu framework, o con un objeto de efectivo de ox_inventory. Para usar tu propia economía:

-- server: return true if the player paid, false/nil otherwise
exports.hz_fuel:setPaymentMethod(function(playerId, amount)
    return exports['my_bank']:Charge(playerId, amount)
end)

-- client: the money the player can spend, checked before a fill starts
exports.hz_fuel:setMoneyCheck(function()
    return exports['my_bank']:GetBalance()
end)

El servidor siempre recalcula el precio según el combustible realmente servido; la comprobación del cliente solo evita empezar un repostaje que el jugador no puede pagar.


Prompts, diálogos y menús

QuéConSin
Prompts en los surtidores, los cargadores y los puntos de repartoPrompts 3D de HZ-TextUiText UI de ox_lib
Frases y opciones de los NPCCuadro de diálogo de hz_libMenús y notificaciones de ox_lib
Pasos del turno de repartoObjetivos en pantalla de hz_libNotificaciones
Tablet de despacho con el mapa de las rutashz_libMenú de ox_lib
No hace falta ningún script de target. HZ-Fuel funciona junto a ox_target o qb-target.

Llaves del vehículo

Las llaves del camión de reparto pasan por qbx_vehiclekeys, qb-vehiclekeys, qs-vehiclekeys, wasabi_carlock, mono_carkeys, MrNewbVehicleKeys, cd_garage o vehicles_keys cuando uno de ellos está en marcha. ESX por sí solo no tiene llaves: el camión se queda abierto. Otro script de llaves:

-- config.lua > delivery
giveKeys = function(vehicle, plate) exports['my_keys']:GiveKey(plate) end,                -- client
giveKeysServer = function(source, vehicle, plate) exports['my_keys']:GiveKeys(source, plate) end, -- server