Exports et compatibilité

Remplacer votre script d'essence

Vos autres resources continuent d'appeler l'API qu'elles utilisent déjà, sans modification :

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)

  • Les scripts qui vérifient que leur resource de carburant tourne avant de s'en servir (régulateur de vitesse, HUD, garages) la trouvent.
  • Un script de l'un de ces noms que vous gardez démarré répond pour lui-même. Mettez sa ligne à false dans compatExports.
  • compatStateBags liste les statebags supplémentaires à remplir avec le niveau (qb-fuel par défaut).
  • Après une mise à jour, redémarrez tout le serveur : voir Mise à jour.

Niveau de carburant

Le niveau vit dans le statebag fuel du véhicule, de 0 à 100. Le carburant de son plein est dans fuelType.

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

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

Le carburant ajouté par un autre script, un garage ou une réparation est repris, pas écrasé.


Exports client

ExportRenvoie
exports.hz_fuel:GetFuel(vehicle)Niveau, de 0 à 100
exports.hz_fuel:SetFuel(vehicle, level)Fixe le niveau, de 0 à 100
exports.hz_fuel:GetFuelType(vehicle)Carburant, par exemple 'regular'
exports.hz_fuel:setMoneyCheck(fn)Remplace la vérification de l'argent faite avant un plein. Voir plus bas

Exports serveur

ExportRenvoie
GetVehicleFuelType(netId)Carburant du véhicule
SetVehicleFuelType(netId, fuelType)true si c'est fait. Refusé pour un carburant que le véhicule ne prend pas
GetFuelPrice(fuelType)Prix au litre
GetFuelTypes()La table fuelTypes
GetStations()La liste des stations
IsElectricVehicle(netId)true pour un modèle électrique
GetChargePrice(chargeType)Prix pour 1 % à une borne
GetChargeTypes()La table electric.chargeTypes
GetStationStock(stationId)Litres restants par carburant, par exemple { regular = 5200, diesel = 1800 }
SetStationStock(stationId, fuelType, litres)Fixe un niveau, borné par la cuve
AddStationStock(stationId, fuelType, litres)Ajoute des litres, renvoie ce qui est entré
IsOnDeliveryShift(playerId)true pendant que le joueur est en service de livraison
GetDeliveryCargo(playerId)Litres dans la citerne du joueur par carburant, ou nil
Tous s'appellent sous la forme exports.hz_fuel:Nom(...) côté serveur.

Brancher votre économie

Par défaut, HZ-Fuel débite l'argent de votre framework, ou un objet argent liquide d'ox_inventory. Pour utiliser votre propre économie :

-- 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)

Le serveur recalcule toujours le prix d'après le carburant réellement servi ; la vérification côté client évite seulement de lancer un plein que le joueur ne peut pas payer.


Invites, dialogues et menus

QuoiAvecSans
Invites aux pompes, aux bornes et aux sites de livraisonInvites 3D de HZ-TextUiTexte d'interface d'ox_lib
Répliques et choix des PNJBoîte de dialogue de hz_libMenus et notifications d'ox_lib
Étapes du service de livraisonObjectifs à l'écran de hz_libNotifications
Tablette du répartiteur avec la carte des tournéeshz_libMenu ox_lib
Aucun script de target n'est nécessaire. HZ-Fuel tourne à côté d'ox_target ou de qb-target.

Clés de véhicule

Les clés du camion de livraison passent par qbx_vehiclekeys, qb-vehiclekeys, qs-vehiclekeys, wasabi_carlock, mono_carkeys, MrNewbVehicleKeys, cd_garage ou vehicles_keys quand l'un d'eux tourne. ESX seul n'a pas de clés : le camion reste déverrouillé. Pour un autre script de clés :

-- 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