Job de livraison

Chaque station a un stock de chaque carburant qu'elle vend. Les pleins des joueurs et les clients PNJ le vident ; les livreurs le remplissent depuis une raffinerie, avec une citerne. Les réglages sont dans config.delivery, les sites dans data/delivery.lua.

Le travail vient de la demande. Une tournée n'existe que quand des stations sont basses : l'argent créé par le job reste borné par ce que votre serveur consomme.

Qui peut travailler

Les membres du métier fueldelivery (delivery.jobs). Eux seuls voient les dépôts sur la carte et peuvent prendre un service. HZ-Fuel crée le métier quand votre framework ne l'a pas, voir Installation. jobs = false laisse tout le monde travailler ; plusieurs métiers marchent aussi : { 'fueldelivery', 'trucker' }.


Un service

  1. Parlez au répartiteur (E). Il y en a un à chaque raffinerie : El Burro Heights, Elysian Island, Palmer-Taylor, Grand Senora et Paleto Bay.
  2. Ouvrez les Tournées : les stations à court d'un carburant, regroupées par zone, avec les litres à livrer, la distance et la paie estimée. Avec hz_lib, votre personnage sort une tablette avec la carte des tournées ; sans lui, un menu ox_lib les affiche.
  3. Prenez une tournée. La caution ($1,000) est prélevée, votre camion et votre citerne sortent, et vous portez une tenue de travail pendant le service. Les stations de la tournée vous sont réservées.
  4. Chargez. À la colonne de chargement de la raffinerie, sortez le flexible de l'arrière de la citerne et branchez-le. L'employé du quai vous dit quand c'est branché et quand c'est plein.
  5. Livrez. Roulez jusqu'à chaque station de la tournée : le GPS passe à la suivante après chaque livraison. Branchez le flexible sur les colonnes de remplissage de la station, une par carburant. Chaque livraison s'ajoute à votre fiche de paie.
  6. Rendez le camion dans n'importe quelle raffinerie. La caution revient, selon l'état du camion, et votre fiche de paie est payée, +15 % quand la citerne revient vide.
En service :
  • /hzfuelorders rouvre les tournées. Une nouvelle tournée se prend une fois la citerne vide, ou si elle contient le même carburant.
  • Le carburant qui reste dans la citerne peut aller à n'importe quelle autre station qui en a besoin.
  • Vous êtes prévenu quand une station devient basse et quand elle est à sec.
  • Avec un hz_lib à jour, les étapes du service s'affichent dans les objectifs à l'écran (remplir, chaque station de la tournée, rendre le camion, la fiche de paie en cours). Sans lui, l'étape en cours arrive en notification.
  • Quand la citerne est pleine ou vide, le flexible reste branché : débranchez-le vous-même.
  • Une citerne abîmée perd une partie de sa cargaison (damageLoss).
CamionValeur
Camion / remorquephantom / tanker
Capacité de la citerne12 000 L, tous carburants confondus
Chargement / livraison150 L/s à la raffinerie, 100 L/s dans une station
Flexible de livraison12 m

Les clés du camion

Données 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, remplissez delivery.giveKeys (client) ou delivery.giveKeysServer (serveur).

Comment un service se termine

FinCautionFiche de paie
Camion rendu dans une raffinerieRendue, selon l'état du camionPayée, +15 % avec une citerne vide
Départ du métier, ou hors service avec requireDutyRendue seulement si vous êtes à un dépôt avec le camionPayée, sans bonus
Inactivité : aucun transfert et le camion garé pendant 20 min (shift.idleMinutes)PerduePayée, sans bonus
Le jeu du joueur se ferme en plein servicePerduePayée à la connexion suivante
Attendre à une raffinerie ou à un dépôt, ou quand il n'y a aucune commande, ne compte pas comme de l'inactivité.

Paie

Chaque livraison s'ajoute à la fiche de paie du livreur :

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 est la distance depuis la raffinerie d'où vient la cargaison. Avec les réglages par défaut, une citerne pleine de Regular livrée à 6 km rapporte $1,350, $1,552 avec le bonus de citerne vide, et $1,940 à des stations sous 20 %. Une citerne pleine de Diesel rapporte $1,690 avec le bonus de citerne vide. Une tournée prend environ 15 minutes : un livreur gagne jusqu'à environ $6,200 de l'heure s'il y a assez de demande.

RéglageEffet
pay.account'bank' ou 'cash'
pay.perLiterPaie de base au litre : Regular 0.10, Plus 0.12, Premium 0.14, Diesel 0.11
pay.perKm25 par km depuis la raffinerie, pour une citerne pleine (au prorata des litres)
pay.gradeBonusPart en plus par grade du métier, par exemple { [1] = 0.05, [2] = 0.10 }
pay.urgentBonus+25 % pour un carburant à 20 % ou moins de sa cuve
pay.emptyBonus+15 % sur la fiche de paie quand la citerne revient vide
pay.taxPart retenue sur chaque paie, retirée de l'économie
pay.maxPerHourLe maximum qu'un livreur gagne en 60 minutes. 0 = sans plafond
pay.payoutVotre propre fonction de paiement, par exemple payée depuis un compte de société
deposit1000, prélevée au début, rendue avec le camion
Serveur public ? Mettez un plafond pay.maxPerHour. Il n'y en a pas par défaut.

Stock et demande

RéglageDéfautEffet
stock.enabledtruefalse = les stations ne sont jamais à sec
stock.capacityRegular 8 000 L, Plus 5 000 L, Premium 4 000 L, Diesel 6 000 LTaille de la cuve par station
stock.startLevel30 à 70 %Niveau aléatoire de chaque carburant au tout premier démarrage
stock.drainPerHourRegular 400, Plus 200, Premium 150, Diesel 250Litres achetés par heure par les clients PNJ, par station
stock.drainFloor0.15Les clients PNJ n'achètent plus sous cette part de la cuve
stock.drainOnlyWithPlayerstrueLes clients PNJ n'achètent que quand des joueurs sont connectés
stock.stationWeight{}Multiplicateur par identifiant de station, par exemple { ls_ltd_grove = 1.5 }
stock.perPlayer / maxPlayerFactor0.02 / 2.0+2 % de ventes par joueur connecté, au plus deux fois plus
stock.perDriver0Litres en plus par heure et par livreur en service, pour qu'il y ait toujours du travail. Crée de l'argent
stock.lowLevel0.5Sous 50 %, un carburant devient une commande
orders.maxStops / orders.maxHop5 / 4000Stations dans une tournée, et mètres au plus entre deux d'entre elles
orders.reserveMinutes30Les stations d'une tournée restent réservées ce temps après le dernier transfert du livreur
orders.noWorkWhenFulltruePas de nouveau service tant que toutes les stations sont au-dessus de lowLevel
shift.maxDrivers / cooldownMinutes / minGrade0 / 5 / 0Livreurs en même temps (0 = sans limite), minutes entre deux services, grade minimum autorisé

Quand personne ne livre

stock.autoRestock : un carburant resté à 20 % ou moins (below) pendant 60 minutes (afterMinutes) remonte à 45 % (to, toujours une commande), seulement quand aucun livreur n'est en service (onlyWithoutDrivers). Les stations sans point de livraison dans data/delivery.lua se remplissent ainsi, qu'il y ait des livreurs ou non.


Admin : stock des stations

/hzfuelstock liste chaque station avec son niveau par carburant. Remplissez un carburant, une station ou toutes les stations, ou fixez un niveau. Autorisé avec l'ACE command, admin ou group.admin.


Journal Discord

Services, livraisons avec leur paie, remplissages automatiques et changements des admins. Mettez le webhook dans le server.cfg, jamais dans config.lua (les joueurs peuvent lire ce fichier) :

set hzf_delivery_webhook "https://discord.com/api/webhooks/..."


Sites

data/delivery.lua contient les lieux du job :

SectionContenu
depotsOù un service commence et finit : la position du répartiteur et les places du camion et de la remorque
refineriesOù la citerne se remplit : la colonne de chargement (valve), ou une vanne de la carte elle-même (arm), la place où se gare la remorque, et en option les carburants vendus
stationTanksPar identifiant de station de data/stations.lua : les colonnes de remplissage (tank, dos à un mur) et la place où se gare la remorque
Les 17 stations modernes ont leurs colonnes de remplissage. Une station n'entre dans les tournées que si elle a une entrée dans stationTanks.

La tenue de travail du service est dans delivery.outfit (peds freemode seulement), les voix du répartiteur et de l'employé du quai dans delivery.voice ('en', 'fr' ou 'auto'), et l'employé du quai lui-même dans delivery.yardWorker.