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 à
falsedanscompatExports. compatStateBagsliste les statebags supplémentaires à remplir avec le niveau (qb-fuelpar 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
| Export | Renvoie |
|---|---|
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
| Export | Renvoie |
|---|---|
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 |
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
| Quoi | Avec | Sans |
|---|---|---|
| Invites aux pompes, aux bornes et aux sites de livraison | Invites 3D de HZ-TextUi | Texte d'interface d'ox_lib |
| Répliques et choix des PNJ | Boîte de dialogue de hz_lib | Menus et notifications d'ox_lib |
| Étapes du service de livraison | Objectifs à l'écran de hz_lib | Notifications |
| Tablette du répartiteur avec la carte des tournées | hz_lib | Menu ox_lib |
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