Aller au contenu
Toute la documentation

Rental

Location de véhicules : aux stations de location, le joueur choisit le véhicule, la couleur et la durée de location, paie à la minute et reçoit le véhicule directement à l'emplacement de retrait – voitures, bateaux ou aéronefs. Une fois le temps écoulé, il disparaît ; celui qui a fini plus tôt le rend avant.

Prérequis
  • ESX Legacy (es_extended)
  • OneSync

Fonctionnalités

  • Plusieurs stations avec PNJ ou marker, leur propre emplacement de retrait et, en option, leur propre sélection de véhicules.
  • Trois types de stations : location de voitures, location de bateaux (emplacement de retrait dans l'eau) et location d'aéronefs (piste ou héliport) – chacune avec sa propre liste de véhicules, son propre blip et ses propres textes dans le menu.
  • Prix à la minute, paiement en liquide ou par banque, affichage du temps restant avec avertissements avant la fin.
  • Retour anticipé : si le véhicule est en état de rouler et sur l'emplacement de retrait, une partie des minutes non utilisées est remboursée. Sinon, la location se termine sans remboursement. Log Discord de chaque retour.
  • Une location par joueur. Si le spawn échoue, l'argent est remboursé.

Installation

  1. Place le dossier off_rental dans ton dossier resources.
  2. Dans le server.cfg – après ESX :
cfg
ensure es_extended
ensure off_rental
  1. Optionnel : renseigne le webhook des retours dans config/settings/config.server.lua.

Configuration

config/settings/config.lua

OptionPar défautDescription
serverInfo.name'OFF SCRIPTS'Nom du serveur, affiché dans l'interface à la place de « OFF SCRIPTS »
serverInfo.locale'de'Langue : de, en, pl, fr, es, it ou nl
serverInfo.color{ 155, 89, 255 }Couleur de l'UI (RGB)
serverInfo.design3Design de l'interface : 1 = Classique, 2 = Ticket, 3 = Storefront
blurtrueFond flou tant que le menu est ouvert
payment'both''cash', 'bank' ou 'both' (le joueur choisit)
rentalMinutes1–120, pas de 5, départ 30min, max, step et default de la durée de location en minutes
warningMinutes{ 5, 1 }Un avertissement arrive ce nombre de minutes avant la fin
refundPercent50Retour anticipé : ce pourcentage des minutes non utilisées est remboursé, 0 = aucun remboursement
platePrefix'RENT'Début de la plaque (max. 4 caractères), p. ex. RENT4821
ped / marker / blipMécanicien / disque, 2 m / activéApparence du PNJ, du marker et du blip – marker.size est aussi la zone pour E, blip.sprite se règle par type (car, boat, aircraft)

config/settings/config.stations.lua – Stations de location

ChampDescription
labelNom dans le menu
typeOptionnel : 'car' (par défaut), 'boat' ou 'aircraft' – définit la liste de véhicules, le blip et les textes
interactionType'ped' (PNJ, position = vec4 avec orientation) ou 'marker' (cercle, position = vec3)
spawnvec4 – emplacement de retrait et de retour. Doit être libre : route ou parking, dans l'eau pour boat, sur une piste ou un héliport pour aircraft
vehiclesOptionnel : quels model de la liste du type sont disponibles ici. Omis = tous

config/settings/config.vehicles.lua – Véhicules et couleurs

  • Config.vehicles contient une liste par type : car, boat et aircraft.
  • Par véhicule : model, label, category (onglet dans le menu), price (prix par minute) et seats.
  • S'il manque une image de véhicule (p. ex. véhicules addon), place-la dans web/dist/assets/vehicles/<model>.png.
  • Config.colors : label = nom dans le menu, rgb = couleur de peinture ({ r, g, b }, chacun 0–255).

config/functions.lua

FonctionUtilité
Notify(message, type)Notify personnalisé (avertissements, fin de location …) · Serveur : Notify(source, message, type)
HelpNotify(text)Texte d'aide à la station
ClientVehicleRented(vehicle, plate)Après le spawn – p. ex. clés ou essence

Logs Discord

Tu indiques le webhook dans config/settings/config.server.lua (côté serveur uniquement) : returns logue chaque retour anticipé avec le véhicule, la station, les minutes non utilisées et le remboursement. Une url vide ('') désactive le log. S'y ajoutent name (nom du bot), color (RGB) ainsi que avatar et image (URL d'image, '' = aucune).

Langues

Tous les textes se trouvent dans config/locales/<langue>.json. Pour ta propre langue, copie un fichier, traduis-le et définis serverInfo.locale – garde les placeholders comme %d et {price}.

En jeu

À la station, appuie sur E, choisis le véhicule, la couleur et la durée de location, puis paie en liquide ou par banque – tu es directement assis dans le véhicule. La location se termine quand le temps est écoulé, quand le joueur quitte le serveur ou quand le véhicule est supprimé. Les locations ne sont pas sauvegardées : au redémarrage du script, tous les véhicules de location disparaissent sans remboursement.

Retour anticipé – uniquement à une station du même type :

  • Conduis le véhicule sur l'emplacement de retrait marqué, arrête-toi et appuie sur E.
  • Ou appuie sur E à la station : le menu affiche la location en cours, le temps restant et le remboursement. Rendre le véhicule termine la location.

Remboursement = minutes entières non utilisées × prix par minute × refundPercent, sur le même compte que le paiement. Si le véhicule n'est pas sur l'emplacement de retrait, est détruit ou a disparu, la location ne peut être terminée que dans le menu – après une confirmation et sans remboursement. Le véhicule est ensuite supprimé ; avec un bateau, le joueur est ramené à terre.

Problèmes fréquents

ProblèmeSolution
[ERROR] dans la console du serveurLe script vérifie l'installation au démarrage. Lis le message, corrige, redémarre le script.
« L'emplacement de retrait est actuellement occupé »Quelque chose se trouve sur spawn. Libère la place ou déplace spawn – rien n'est débité.
« Ce véhicule n'est pas disponible ici »model incorrect, non installé, absent de la liste du type ou des vehicles de la station.
Le bateau ou l'aéronef apparaît malspawn n'est pas dans l'eau ou pas libre sur une piste ou un héliport – relève la position à nouveau.
Le retour n'est pas possibleUniquement à une station du même type ; dans le véhicule, arrête-toi d'abord.
Pas de clé pour le véhicule de locationIndique ton script de clés dans ClientVehicleRented.
Le PNJ est dans un mur ou flotteAdapte position – z est la hauteur sur laquelle se tient le joueur.

Pas encore acheté ?

Voir Rental dans la boutique