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.
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
- Parlez au répartiteur (E). Il y en a un à chaque raffinerie : El Burro Heights, Elysian Island, Palmer-Taylor, Grand Senora et Paleto Bay.
- 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.
- 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.
- 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.
- 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.
- 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.
/hzfuelordersrouvre 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).
| Camion | Valeur |
|---|---|
| Camion / remorque | phantom / tanker |
| Capacité de la citerne | 12 000 L, tous carburants confondus |
| Chargement / livraison | 150 L/s à la raffinerie, 100 L/s dans une station |
| Flexible de livraison | 12 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
| Fin | Caution | Fiche de paie |
|---|---|---|
| Camion rendu dans une raffinerie | Rendue, selon l'état du camion | Payée, +15 % avec une citerne vide |
Départ du métier, ou hors service avec requireDuty | Rendue seulement si vous êtes à un dépôt avec le camion | Payée, sans bonus |
Inactivité : aucun transfert et le camion garé pendant 20 min (shift.idleMinutes) | Perdue | Payée, sans bonus |
| Le jeu du joueur se ferme en plein service | Perdue | Payée à la connexion suivante |
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églage | Effet |
|---|---|
pay.account | 'bank' ou 'cash' |
pay.perLiter | Paie de base au litre : Regular 0.10, Plus 0.12, Premium 0.14, Diesel 0.11 |
pay.perKm | 25 par km depuis la raffinerie, pour une citerne pleine (au prorata des litres) |
pay.gradeBonus | Part 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.tax | Part retenue sur chaque paie, retirée de l'économie |
pay.maxPerHour | Le maximum qu'un livreur gagne en 60 minutes. 0 = sans plafond |
pay.payout | Votre propre fonction de paiement, par exemple payée depuis un compte de société |
deposit | 1000, prélevée au début, rendue avec le camion |
pay.maxPerHour. Il n'y en a pas par défaut.Stock et demande
| Réglage | Défaut | Effet |
|---|---|---|
stock.enabled | true | false = les stations ne sont jamais à sec |
stock.capacity | Regular 8 000 L, Plus 5 000 L, Premium 4 000 L, Diesel 6 000 L | Taille de la cuve par station |
stock.startLevel | 30 à 70 % | Niveau aléatoire de chaque carburant au tout premier démarrage |
stock.drainPerHour | Regular 400, Plus 200, Premium 150, Diesel 250 | Litres achetés par heure par les clients PNJ, par station |
stock.drainFloor | 0.15 | Les clients PNJ n'achètent plus sous cette part de la cuve |
stock.drainOnlyWithPlayers | true | Les 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 / maxPlayerFactor | 0.02 / 2.0 | +2 % de ventes par joueur connecté, au plus deux fois plus |
stock.perDriver | 0 | Litres en plus par heure et par livreur en service, pour qu'il y ait toujours du travail. Crée de l'argent |
stock.lowLevel | 0.5 | Sous 50 %, un carburant devient une commande |
orders.maxStops / orders.maxHop | 5 / 4000 | Stations dans une tournée, et mètres au plus entre deux d'entre elles |
orders.reserveMinutes | 30 | Les stations d'une tournée restent réservées ce temps après le dernier transfert du livreur |
orders.noWorkWhenFull | true | Pas de nouveau service tant que toutes les stations sont au-dessus de lowLevel |
shift.maxDrivers / cooldownMinutes / minGrade | 0 / 5 / 0 | Livreurs 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 :
| Section | Contenu |
|---|---|
depots | Où un service commence et finit : la position du répartiteur et les places du camion et de la remorque |
refineries | Où 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 |
stationTanks | Par identifiant de station de data/stations.lua : les colonnes de remplissage (tank, dos à un mur) et la place où se gare la remorque |
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.
