Emprego de entrega de combustível
Cada posto tem um estoque de cada combustível que vende. Os abastecimentos dos jogadores e os clientes NPC o consomem; os motoristas o repõem a partir de uma refinaria com uma carreta-tanque. As configurações ficam em config.delivery, os locais em data/delivery.lua.
Quem pode trabalhar
Os membros do emprego fueldelivery (delivery.jobs). Só eles veem os depósitos no mapa e podem pegar um turno. O HZ-Fuel cria o emprego quando o seu framework não o tem, veja Instalação. jobs = false deixa todo mundo trabalhar; vários empregos também funcionam: { 'fueldelivery', 'trucker' }.
Um turno
- Fale com o despachante (E). Há um em cada refinaria: El Burro Heights, Elysian Island, Palmer-Taylor, Grand Senora e Paleto Bay.
- Abra as Rotas: os postos com falta de um combustível, agrupados por região, com os litros a entregar, a distância e o pagamento estimado. Com o hz_lib, o seu personagem pega um tablet com um mapa das rotas; sem ele, um menu do ox_lib as mostra.
- Pegue uma rota. A caução ($1,000) é cobrada, o seu caminhão e a sua carreta saem, e você veste roupas de trabalho durante o turno. Os postos da rota ficam reservados para você.
- Carregue. Na válvula de carregamento da refinaria, puxe a mangueira da traseira da carreta e conecte-a. O operador de pátio avisa quando você está conectado e quando a carreta está cheia.
- Entregue. Dirija até cada posto da rota: o GPS vai para o próximo depois de cada descarga. Conecte a mangueira nas bocas de descarga do posto, uma por combustível. Cada descarga soma ao seu contracheque.
- Devolva o caminhão em qualquer refinaria. A caução volta, proporcional ao estado do caminhão, e o seu contracheque é pago, +15 % quando a carreta volta vazia.
/hzfuelordersabre as rotas de novo. Uma nova rota pode ser pega quando a carreta estiver vazia ou tiver o mesmo combustível.- O combustível que sobrar na carreta pode ir para qualquer outro posto que precise.
- Você é avisado quando um posto está com pouco combustível e quando ele seca.
- Com um hz_lib atualizado, as etapas do turno aparecem nos objetivos na tela (encher a carreta, cada posto da rota, devolver o caminhão, o contracheque até agora). Sem ele, a etapa atual chega como notificação.
- Quando a carreta está cheia ou vazia, a mangueira continua conectada: desconecte-a você mesmo.
- Uma carreta danificada perde parte da carga (
damageLoss).
| Caminhão | Valor |
|---|---|
| Caminhão / carreta | phantom / tanker |
| Capacidade da carreta | 12.000 L, todos os combustíveis juntos |
| Carga / descarga | 150 L/s em uma refinaria, 100 L/s em um posto |
| Mangueira de entrega | 12 m |
As chaves do caminhão
Entregues por meio de 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. Para outro script de chaves, preencha delivery.giveKeys (cliente) ou delivery.giveKeysServer (servidor).
Como um turno termina
| Fim | Caução | Contracheque |
|---|---|---|
| Caminhão devolvido em uma refinaria | Devolvida, conforme o estado do caminhão | Pago, +15 % com a carreta vazia |
Saída do emprego, ou fora de serviço com requireDuty | Devolvida só se você estiver em um depósito com o caminhão | Pago, sem bônus |
Inatividade: nenhuma transferência e o caminhão parado por 20 min (shift.idleMinutes) | Perdida | Pago, sem bônus |
| O jogo do jogador fecha no meio do turno | Perdida | Pago na próxima conexão |
Pagamento
Cada descarga soma ao contracheque do motorista:
pay = (litres x perLiter + perKm x km x litres / trailerCapacity)
x (1 + gradeBonus[grade]) x (1 + urgentBonus.bonus if the station was low)
x (1 - tax)
km é a distância da refinaria de onde veio a carga. Com os valores padrão, uma carreta cheia de Regular entregue a 6 km paga $1,350, $1,552 com o bônus de carreta vazia, e $1,940 para postos abaixo de 20 %. Uma carreta cheia de Diesel paga $1,690 com o bônus de carreta vazia. Uma rodada leva cerca de 15 minutos, então um motorista ganha até cerca de $6,200 por hora se houver demanda suficiente.
| Configuração | Efeito |
|---|---|
pay.account | 'bank' ou 'cash' |
pay.perLiter | Pagamento base por litro: Regular 0.10, Plus 0.12, Premium 0.14, Diesel 0.11 |
pay.perKm | 25 por km a partir da refinaria, para uma carreta cheia (proporcional aos litros) |
pay.gradeBonus | Parte extra por cargo no emprego, ex. { [1] = 0.05, [2] = 0.10 } |
pay.urgentBonus | +25 % para um combustível em 20 % ou menos do tanque |
pay.emptyBonus | +15 % no contracheque quando a carreta volta vazia |
pay.tax | Parte retida de cada pagamento, removida da economia |
pay.maxPerHour | O máximo que um motorista ganha em 60 minutos. 0 = sem limite |
pay.payout | A sua própria função de pagamento, ex. pago a partir da conta de uma empresa |
deposit | 1000, cobrada no início, devolvida com o caminhão |
pay.maxPerHour. Não há nenhum por padrão.Estoque e demanda
| Configuração | Padrão | Efeito |
|---|---|---|
stock.enabled | true | false = os postos nunca ficam sem combustível |
stock.capacity | Regular 8.000 L, Plus 5.000 L, Premium 4.000 L, Diesel 6.000 L | Tamanho do tanque por posto |
stock.startLevel | 30 a 70 % | Nível aleatório de cada combustível na primeiríssima inicialização |
stock.drainPerHour | Regular 400, Plus 200, Premium 150, Diesel 250 | Litros por hora comprados pelos clientes NPC, por posto |
stock.drainFloor | 0.15 | Os clientes NPC param de comprar abaixo desta fração do tanque |
stock.drainOnlyWithPlayers | true | Os clientes NPC só compram enquanto há jogadores conectados |
stock.stationWeight | {} | Multiplicador por id de posto, ex. { ls_ltd_grove = 1.5 } |
stock.perPlayer / maxPlayerFactor | 0.02 / 2.0 | +2 % de vendas por jogador conectado, no máximo o dobro |
stock.perDriver | 0 | Litros extras por hora por motorista em turno, para sempre haver trabalho. Isso cria dinheiro |
stock.lowLevel | 0.5 | Abaixo de 50 %, um combustível vira um pedido |
orders.maxStops / orders.maxHop | 5 / 4000 | Postos em uma rota, e metros no máximo entre dois deles |
orders.reserveMinutes | 30 | Os postos de uma rota ficam reservados por esse tempo depois da última transferência do motorista |
orders.noWorkWhenFull | true | Nenhum turno novo enquanto todos os postos estiverem acima de lowLevel |
shift.maxDrivers / cooldownMinutes / minGrade | 0 / 5 / 0 | Motoristas ao mesmo tempo (0 = sem limite), minutos entre dois turnos, cargo mínimo permitido |
Quando ninguém entrega
stock.autoRestock: um combustível que fica em 20 % ou menos (below) por 60 minutos (afterMinutes) volta a 45 % (to, ainda um pedido), só enquanto nenhum motorista está em turno (onlyWithoutDrivers). Os postos sem ponto de entrega em data/delivery.lua se reabastecem assim, haja ou não alguém em turno.
Admin: estoque dos postos
/hzfuelstock lista cada posto com o nível de cada combustível. Encha um combustível, um posto ou todos os postos, ou defina um nível. Permitido com o ACE command, admin ou group.admin.
Log no Discord
Turnos, entregas com o pagamento, reabastecimentos automáticos e alterações dos admins. Coloque o webhook no server.cfg, nunca no config.lua (os jogadores podem ler esse arquivo):
set hzf_delivery_webhook "https://discord.com/api/webhooks/..."
Locais
data/delivery.lua guarda os locais do emprego:
| Seção | O que contém |
|---|---|
depots | Onde um turno começa e termina: a posição do despachante e as vagas do caminhão e da carreta |
refineries | Onde a carreta é enchida: a válvula de carregamento (valve), ou uma válvula do próprio mapa (arm), a baia onde a carreta estaciona e, opcionalmente, os combustíveis vendidos ali |
stationTanks | Por id de posto de data/stations.lua: as bocas de descarga (tank, de costas para uma parede) e a baia onde a carreta estaciona |
stationTanks.
As roupas de trabalho usadas durante um turno ficam em delivery.outfit (só peds freemode), as vozes do despachante e do operador de pátio em delivery.voice ('en', 'fr' ou 'auto'), e o próprio operador de pátio em delivery.yardWorker.
