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
falseencompatExports. compatStateBagslista los statebags adicionales que se rellenan con el nivel (qb-fuelpor 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
| Export | Devuelve |
|---|---|
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
| Export | Devuelve |
|---|---|
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 |
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é | Con | Sin |
|---|---|---|
| Prompts en los surtidores, los cargadores y los puntos de reparto | Prompts 3D de HZ-TextUi | Text UI de ox_lib |
| Frases y opciones de los NPC | Cuadro de diálogo de hz_lib | Menús y notificaciones de ox_lib |
| Pasos del turno de reparto | Objetivos en pantalla de hz_lib | Notificaciones |
| Tablet de despacho con el mapa de las rutas | hz_lib | Menú de ox_lib |
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