Exports e compatibilidade
Substituir o seu script de combustível
Os seus outros recursos continuam chamando a API que já usam, sem nenhuma edição:
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)
- Os scripts que verificam se o recurso de combustível deles está rodando antes de usá-lo (piloto automático, HUDs, garagens) o encontram.
- Um script com um desses nomes que você mantiver rodando responde por si mesmo. Defina a linha dele como
falseemcompatExports. compatStateBagslista os statebags extras a preencher com o nível (qb-fuelpor padrão).- Depois de uma atualização, reinicie o servidor inteiro: veja Atualizar.
Nível de combustível
O nível fica no statebag fuel do veículo, de 0 a 100. O tipo com que ele foi abastecido fica em fuelType.
-- read
local fuel = Entity(vehicle).state.fuel
-- write (client)
exports.hz_fuel:SetFuel(vehicle, 50.0)
O combustível adicionado por outro script, uma garagem ou um reparo é levado em conta, não sobrescrito.
Exports do cliente
| Export | Retorna |
|---|---|
exports.hz_fuel:GetFuel(vehicle) | Nível, de 0 a 100 |
exports.hz_fuel:SetFuel(vehicle, level) | Define o nível, de 0 a 100 |
exports.hz_fuel:GetFuelType(vehicle) | Tipo, ex. 'regular' |
exports.hz_fuel:setMoneyCheck(fn) | Substitui a verificação de dinheiro feita antes de um abastecimento. Veja abaixo |
Exports do servidor
| Export | Retorna |
|---|---|
GetVehicleFuelType(netId) | Tipo de combustível do veículo |
SetVehicleFuelType(netId, fuelType) | true quando definido. Recusado para um tipo que o veículo não aceita |
GetFuelPrice(fuelType) | Preço por litro |
GetFuelTypes() | A tabela fuelTypes |
GetStations() | A lista de postos |
IsElectricVehicle(netId) | true para um modelo elétrico |
GetChargePrice(chargeType) | Preço por 1 % em um carregador |
GetChargeTypes() | A tabela electric.chargeTypes |
GetStationStock(stationId) | Litros restantes por combustível, ex. { regular = 5200, diesel = 1800 } |
SetStationStock(stationId, fuelType, litres) | Define um nível, limitado pelo tanque |
AddStationStock(stationId, fuelType, litres) | Adiciona litros, retorna o que entrou |
IsOnDeliveryShift(playerId) | true enquanto o jogador está em um turno de entrega |
GetDeliveryCargo(playerId) | Litros na carreta do jogador por combustível, ou nil |
exports.hz_fuel:Name(...) no servidor.
Hooks de pagamento
Por padrão, o HZ-Fuel cobra pelo dinheiro do seu framework, ou por um item de dinheiro do ox_inventory. Para usar a sua própria economia:
-- 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)
O servidor sempre recalcula o preço a partir do combustível realmente entregue; a verificação no cliente só evita começar um abastecimento que o jogador não pode pagar.
Prompts, diálogos e menus
| O quê | Com | Sem |
|---|---|---|
| Prompts nas bombas, nos carregadores e nos locais de entrega | Prompts 3D do HZ-TextUi | Text UI do ox_lib |
| Falas e escolhas dos NPCs | Caixa de diálogo do hz_lib | Menus e notificações do ox_lib |
| Etapas do turno de entrega | Objetivos na tela do hz_lib | Notificações |
| Tablet de despacho com o mapa das rotas | hz_lib | Menu do ox_lib |
Chaves de veículos
As chaves do caminhão de entrega passam por qbx_vehiclekeys, qb-vehiclekeys, qs-vehiclekeys, wasabi_carlock, mono_carkeys, MrNewbVehicleKeys, cd_garage ou vehicles_keys quando um deles está rodando. O ESX sozinho não tem chaves: o caminhão fica destrancado. Outro script de chaves:
-- 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